外部 exit コールの作成
createExitCallexitCall メソッドは オブジェクトを取得するために使用されます。exit コールオブジェクトは、外部 exit コールで費やした時間を記録し、ダウンストリーム アクティビティの相関を許可します。
exit コールタイプおよび識別プロパティ
コントローラでは、すべての exit コールに個別のタイプがあり、一連の識別プロパティによって決定されます。
次の表に、exitCall のタイプと識別プロパティを示します。
| exit コールタイプ | 識別プロパティ |
|---|---|
| HTTP |
HOST PORT URL QUERY STRING |
| JDBC |
URL HOST PORT データベース VERSION VENDOR |
| WEB SERVICE |
SERVICE URL OPERATION SOAP ACTION VENDOR |
| カスタム | ユーザ定義のプロパティセット |
外部 exit コールの作成
トランザクション オブジェクトで createExitCall() を呼び出します。
次のコード例は、外部 exit コールを実行する方法を示しています。
public void makeExitCall(URL url){
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
String outgoingHeader = null;
String callType = null;
Map<String, String> identifyingProperties = new HashMap<>();
//Below properties are appropriate for an inter-AWS Lambda call
identifyingProperties.put("DESTINATION", functionName);
identifyingProperties.put("DESTINATION_TYPE", "LAMBDA");
callType="CUSTOM";
//Below properties are appropriate for an external HTTP call
identifyingProperties.put("HOST", url.getHost());
identifyingProperties.put("PORT", String.valueOf(url.getPort()));
callType="HTTP";
//Define the createExitCall method to obtain an exitCall object.
ExitCall exitCall = transaction.createExitCall(callType, identifyingProperties);
outgoingHeader = exitCall.getCorrelationHeader();
exitCall.start();
try {
// Tracer.APPDYNAMICS_TRANSACTION_CORRELATION_HEADER_KEY is the name of the header that should be set
if (outgoingHeader != null) {
conn.setRequestProperty(Tracer.APPDYNAMICS_TRANSACTION_CORRELATION_HEADER_KEY, outgoingHeader); // set the correlation header on an HttpURLConnection
}
// Make the exit call here
} finally {
exitCall.stop();
}
}複数の外部 exit コールの実行
1exitCall1 つの AWS Lambda 関数が複数の終了コールを行う場合、各関数は一意の オブジェクトによって識別される必要があります。複数の終了コールを行うには、個別の終了コールごとに新しい exitCall オブジェクトを作成します。exitCall オブジェクトは再利用できません。