Skip to content

Commit ba135ec

Browse files
bjraramusa-asad
authored andcommitted
Add Application Signals runtime metrics (aws-observability#881)
## Feature request Add runtime metrics collection into Application Signals. ## Description of changes: 1. Add JMX metrics template. 1. The JMX template is taken from aws-observability#817. The template is updated with bug fixes and added with additional CPU metrics. The author of the original PR is notified with the changes. 2. Introduce `CloudWatchTemporalitySelector` to set temporality of Application Signals exporter to `alwaysDelta`. 3. Add `ScopeBasedPeriodicMetricReader` to copy metrics from `io.opentelemetry.jmx` instrumentation scope to Application Signals exporter. 4. Set `aws.local.service` into resource attributes. ## Result example ``` { resource=Resource{ schemaUrl=https: //opentelemetry.io/schemas/1.21.0, attributes={ aws.local.service="ec2-runtime-demo", cloud.account.id="633750930120", cloud.availability_zone="us-east-1a", cloud.platform="aws_ec2", cloud.provider="aws", cloud.region="us-east-1", host.arch="amd64", host.id="i-03ff80a878a803e0e", host.image.id="ami-0ae8f15ae66fe8cda", host.name="ip-172-31-25-215.ec2.internal", host.type="t2.medium", os.description="Linux 6.1.102-108.177.amzn2023.x86_64", os.type="linux", process.command_args=[ /usr/lib/jvm/java-21-amazon-corretto.x86_64/bin/java, -Dotel.instrumentation.micrometer.enabled=false, -jar, spring-petclinic-all-in-one.jar ], process.executable.path="/usr/lib/jvm/java-21-amazon-corretto.x86_64/bin/java", process.pid=445291, process.runtime.description="Amazon.com Inc. OpenJDK 64-Bit Server VM 21.0.4+7-LTS", process.runtime.name="OpenJDK Runtime Environment", process.runtime.version="21.0.4+7-LTS", service.name="ec2-runtime-demo", service.version="3.1.0-SNAPSHOT", telemetry.auto.version="1.33.0-aws-SNAPSHOT", telemetry.sdk.language="java", telemetry.sdk.name="opentelemetry", telemetry.sdk.version="1.34.1" } }, instrumentationScopeInfo=InstrumentationScopeInfo{ name=io.opentelemetry.jmx, version=null, schemaUrl=null, attributes={ } }, name=jvm.gc.collections.elapsed, description=Theapproximateaccumulatedcollectionelapsedtimeinmilliseconds, unit=ms, type=LONG_SUM, data=ImmutableSumData{ points=[ ImmutableLongPointData{ startEpochNanos=1724126549515601332, epochNanos=1724126609522082935, attributes={ name="G1 Old Generation" }, value=0, exemplars=[ ] }, ImmutableLongPointData{ startEpochNanos=1724126549515601332, epochNanos=1724126609522082935, attributes={ name="G1 Concurrent GC" }, value=49, exemplars=[ ] }, ImmutableLongPointData{ startEpochNanos=1724126549515601332, epochNanos=1724126609522082935, attributes={ name="G1 Young Generation" }, value=332, exemplars=[ ] } ], monotonic=true, aggregationTemporality=CUMULATIVE } } ``` By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
1 parent 9b88290 commit ba135ec

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

awsagentprovider/src/test/java/software/amazon/opentelemetry/javaagent/providers/AwsTracerConfigurerTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ private AutoConfiguredOpenTelemetrySdkBuilder createSdkBuilder() {
3939
return tracerProviderBuilder.addSpanProcessor(
4040
SimpleSpanProcessor.create(spanExporter));
4141
})
42+
.addPropertiesSupplier(
43+
() -> singletonMap("otel.aws.application.signals.runtime.enabled", "false"))
4244
.addPropertiesSupplier(() -> singletonMap("otel.metrics.exporter", "none"))
4345
.addPropertiesSupplier(() -> singletonMap("otel.traces.exporter", "none"))
4446
.addPropertiesSupplier(() -> singletonMap("otel.logs.exporter", "none"));

0 commit comments

Comments
 (0)