Menggunakan PutLogEvents API untuk mengirim log format metrik tertanam yang dibuat secara manual - Amazon CloudWatch

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menggunakan PutLogEvents API untuk mengirim log format metrik tertanam yang dibuat secara manual

Anda dapat mengirim log format metrik yang disematkan ke CloudWatch Log menggunakan CloudWatch Log PutLogEventsAPI. Saat memanggil PutLogEvents, Anda memiliki opsi untuk menyertakan HTTP header berikut, yang memberi tahu CloudWatch Log bahwa metrik harus diekstraksi, tetapi tidak diperlukan.

x-amzn-logs-format: json/emf

Berikut ini adalah contoh lengkap menggunakan AWS SDKuntuk Java 2.x:

package org.example.basicapp; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.cloudwatchlogs.CloudWatchLogsClient; import software.amazon.awssdk.services.cloudwatchlogs.model.DescribeLogStreamsRequest; import software.amazon.awssdk.services.cloudwatchlogs.model.DescribeLogStreamsResponse; import software.amazon.awssdk.services.cloudwatchlogs.model.InputLogEvent; import software.amazon.awssdk.services.cloudwatchlogs.model.PutLogEventsRequest; import java.util.Collections; public class EmbeddedMetricsExample { public static void main(String[] args) { final String usage = "To run this example, supply a Region code (eg. us-east-1), log group, and stream name as command line arguments" + "Ex: PutLogEvents <region-id> <log-group-name> <stream-name>"; if (args.length != 3) { System.out.println(usage); System.exit(1); } String regionId = args[0]; String logGroupName = args[1]; String logStreamName = args[2]; CloudWatchLogsClient logsClient = CloudWatchLogsClient.builder().region(Region.of(regionId)).build(); // Build a JSON log using the EmbeddedMetricFormat. long timestamp = System.currentTimeMillis(); String message = "{" + " \"_aws\": {" + " \"Timestamp\": " + timestamp + "," + " \"CloudWatchMetrics\": [" + " {" + " \"Namespace\": \"MyApp\"," + " \"Dimensions\": [[\"Operation\"], [\"Operation\", \"Cell\"]]," + " \"Metrics\": [{ \"Name\": \"ProcessingLatency\", \"Unit\": \"Milliseconds\", \"StorageResolution\": 60 }]" + " }" + " ]" + " }," + " \"Operation\": \"Aggregator\"," + " \"Cell\": \"001\"," + " \"ProcessingLatency\": 100" + "}"; InputLogEvent inputLogEvent = InputLogEvent.builder() .message(message) .timestamp(timestamp) .build(); // Specify the request parameters. PutLogEventsRequest putLogEventsRequest = PutLogEventsRequest.builder() .logEvents(Collections.singletonList(inputLogEvent)) .logGroupName(logGroupName) .logStreamName(logStreamName) .build(); logsClient.putLogEvents(putLogEventsRequest); System.out.println("Successfully put CloudWatch log event"); } }
catatan

Dengan format metrik yang disematkan, Anda dapat melacak pemrosesan EMF log berdasarkan metrik yang dipublikasikan di AWS/Logs namespace akun Anda. Ini dapat digunakan untuk melacak pembuatan metrik yang gagalEMF, serta apakah kegagalan terjadi karena penguraian atau validasi. Untuk detail selengkapnya lihat Pemantauan dengan CloudWatch metrik.