diff --git a/.github/workflows/auto-update-community-members.yml b/.github/workflows/auto-update-community-members.yml index 402545a20011..c53e24f027e4 100644 --- a/.github/workflows/auto-update-community-members.yml +++ b/.github/workflows/auto-update-community-members.yml @@ -17,7 +17,7 @@ jobs: uses: actions/checkout@v4 - name: Set up Node.js - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: '22' @@ -35,6 +35,9 @@ jobs: uses: peter-evans/create-pull-request@v7 with: add-paths: 'data/community/members.yaml' + author: + opentelemetrybot + <107717825+opentelemetrybot@users.noreply.github.com> committer: opentelemetrybot <107717825+opentelemetrybot@users.noreply.github.com> diff --git a/content/en/blog/2024/prometheus-compatibility-survey/index.md b/content/en/blog/2024/prometheus-compatibility-survey/index.md index 83a6fa8e2cca..85352faadf43 100644 --- a/content/en/blog/2024/prometheus-compatibility-survey/index.md +++ b/content/en/blog/2024/prometheus-compatibility-survey/index.md @@ -121,7 +121,7 @@ should not generally be included in the metric name. Prometheus conventions [recommend](https://prometheus.io/docs/practices/naming/#metric-names) that the unit be included as a suffix of the metric name. OpenMetrics goes a step further and -[requires this unit suffix](https://github.com/OpenObservability/OpenMetrics/blob/main/specification/OpenMetrics.md#unit). +[requires this unit suffix](https://github.com/prometheus/OpenMetrics/blob/v1.0.0/specification/OpenMetrics.md#unit). Currently, when exporting in Prometheus format from an OpenTelemetry SDK, the unit is added as a suffix to the metric name. diff --git a/content/en/docs/demo/services/cart/exemplars.png b/content/en/docs/demo/services/cart/exemplars.png new file mode 100644 index 000000000000..6bb7a08973df Binary files /dev/null and b/content/en/docs/demo/services/cart/exemplars.png differ diff --git a/content/en/docs/demo/services/cart.md b/content/en/docs/demo/services/cart/index.md similarity index 53% rename from content/en/docs/demo/services/cart.md rename to content/en/docs/demo/services/cart/index.md index 075f250e838c..29edafef087c 100644 --- a/content/en/docs/demo/services/cart.md +++ b/content/en/docs/demo/services/cart/index.md @@ -31,8 +31,8 @@ Action appResourceBuilder = builder.Services.AddOpenTelemetry() .ConfigureResource(appResourceBuilder) .WithTracing(tracerBuilder => tracerBuilder + .AddSource("OpenTelemetry.Demo.Cart") .AddRedisInstrumentation( - cartStore.GetConnection(), options => options.SetVerboseDatabaseStatements = true) .AddAspNetCoreInstrumentation() .AddGrpcClientInstrumentation() @@ -87,12 +87,85 @@ Action appResourceBuilder = builder.Services.AddOpenTelemetry() .ConfigureResource(appResourceBuilder) .WithMetrics(meterBuilder => meterBuilder + .AddMeter("OpenTelemetry.Demo.Cart") .AddProcessInstrumentation() .AddRuntimeInstrumentation() .AddAspNetCoreInstrumentation() + .SetExemplarFilter(ExemplarFilterType.TraceBased) .AddOtlpExporter()); ``` +### Exemplars + +[Exemplars](/docs/specs/otel/metrics/data-model/#exemplars) are configured in +the Cart service with trace-based exemplar filter, which enables the +OpenTelemetry SDK to attach exemplars to metrics. + +First it creates a `CartActivitySource`, `Meter` and two `Histograms`. The +histogram keeps track from the latency of the methods `AddItem` and `GetCart`, +as those are two important methods in the Cart service. + +Those two methods are critical to the Cart service as users shouldn't wait too +long when adding an item to the cart, or when viewing their cart before moving +to the checkout process. + +```cs +private static readonly ActivitySource CartActivitySource = new("OpenTelemetry.Demo.Cart"); +private static readonly Meter CartMeter = new Meter("OpenTelemetry.Demo.Cart"); +private static readonly Histogram addItemHistogram = CartMeter.CreateHistogram( + "app.cart.add_item.latency", + advice: new InstrumentAdvice + { + HistogramBucketBoundaries = [ 500000, 600000, 700000, 800000, 900000, 1000000, 1100000 ] + }); +private static readonly Histogram getCartHistogram = CartMeter.CreateHistogram( + "app.cart.get_cart.latency", + advice: new InstrumentAdvice + { + HistogramBucketBoundaries = [ 300000, 400000, 500000, 600000, 700000, 800000, 900000 ] + }); +``` + +Note that a custom bucket boundary is also defined, as the default values don't +fit the microseconds results Cart service has. + +Once the variables are defined, the latency of the execution of each method is +tracked with a `StopWatch` as follows: + +```cs +var stopwatch = Stopwatch.StartNew(); + +(method logic) + +addItemHistogram.Record(stopwatch.ElapsedTicks); +``` + +To connect it all together, in the Traces pipeline, it is required to add the +created source. (Already present in the snippet above, but added here to +reference): + +```cs +.AddSource("OpenTelemetry.Demo.Cart") +``` + +And, in the Metrics pipeline, the `Meter` and the `ExemplarFilter`: + +```cs +.AddMeter("OpenTelemetry.Demo.Cart") +.SetExemplarFilter(ExemplarFilterType.TraceBased) +``` + +To visualize the Exemplars, navigate to Grafana + > Dashboards > Demo > Cart Service Exemplars. + +Exemplars appear as special "diamond-shaped dots" on the 95th percentile chart +or as small squares on the heatmap chart. Select any exemplar to view its data, +which includes the timestamp of the measurement, the raw value, and the trace +context at the time of recording. The `trace_id` enables navigation to the +tracing backend (Jaeger, in this case). + +![Cart Service Exemplars](exemplars.png) + ## Logs Logs are configured in the .NET dependency injection container on diff --git a/content/en/docs/languages/java/_index.md b/content/en/docs/languages/java/_index.md index cbfa6a1ba438..7027329a3bbc 100644 --- a/content/en/docs/languages/java/_index.md +++ b/content/en/docs/languages/java/_index.md @@ -8,7 +8,7 @@ cascade: vers: instrumentation: 2.10.0 otel: 1.45.0 - contrib: 1.41.0 + contrib: 1.42.0 semconv: 1.28.0 weight: 18 --- diff --git a/content/en/docs/zero-code/java/spring-boot-starter/getting-started.md b/content/en/docs/zero-code/java/spring-boot-starter/getting-started.md index 19aec24686e0..ebf99c6a66e6 100644 --- a/content/en/docs/zero-code/java/spring-boot-starter/getting-started.md +++ b/content/en/docs/zero-code/java/spring-boot-starter/getting-started.md @@ -111,20 +111,16 @@ The OpenTelemetry starter uses OpenTelemetry Spring Boot {{< tabpane text=true >}} {{% tab header="Maven (`pom.xml`)" lang=Maven %}} ```xml - - + io.opentelemetry.instrumentation opentelemetry-spring-boot-starter - - + ``` {{% /tab %}} {{% tab header="Gradle (`gradle.build`)" lang=Gradle %}} ```kotlin -dependencies { - implementation("io.opentelemetry.instrumentation:opentelemetry-spring-boot-starter") -} +implementation("io.opentelemetry.instrumentation:opentelemetry-spring-boot-starter") ``` {{% /tab %}} {{< /tabpane>}} diff --git a/data/community/members.yaml b/data/community/members.yaml index 161173be1b77..d1c31b80f287 100644 --- a/data/community/members.yaml +++ b/data/community/members.yaml @@ -413,7 +413,6 @@ maintainers: - helm-approvers - helm-maintainers - helm-triagers - - operator-approvers - semconv-container-approvers - semconv-k8s-approvers - semconv-system-approvers @@ -487,6 +486,16 @@ maintainers: - profiling-triagers html_url: https://github.com/felixge avatar_url: https://avatars.githubusercontent.com/u/15000?v=4 + - name: frzifus + teams: + - collector-contrib-triagers + - operator-approvers + - operator-maintainers + - semconv-container-approvers + - semconv-k8s-approvers + - semconv-system-approvers + html_url: https://github.com/frzifus + avatar_url: https://avatars.githubusercontent.com/u/10403402?v=4 - name: hauleth teams: - erlang-approvers @@ -605,6 +614,7 @@ maintainers: - specs-semconv-maintainers - specs-triagers - sqlcommenter-approvers + - weaver-approvers - weaver-maintainers html_url: https://github.com/jsuereth avatar_url: https://avatars.githubusercontent.com/u/29006?v=4 @@ -700,6 +710,7 @@ maintainers: teams: - arrow-approvers - arrow-maintainers + - weaver-approvers - weaver-maintainers html_url: https://github.com/lquerel avatar_url: https://avatars.githubusercontent.com/u/657994?v=4 @@ -1404,15 +1415,6 @@ approvers: - ebpf-profiler-approvers html_url: https://github.com/florianl avatar_url: https://avatars.githubusercontent.com/u/1132494?v=4 - - name: frzifus - teams: - - collector-contrib-triagers - - operator-approvers - - semconv-container-approvers - - semconv-k8s-approvers - - semconv-system-approvers - html_url: https://github.com/frzifus - avatar_url: https://avatars.githubusercontent.com/u/10403402?v=4 - name: grcevski teams: - go-instrumentation-approvers @@ -1472,6 +1474,11 @@ approvers: - java-instrumentation-triagers html_url: https://github.com/jeanbisutti avatar_url: https://avatars.githubusercontent.com/u/14811066?v=4 + - name: jerbly + teams: + - weaver-approvers + html_url: https://github.com/jerbly + avatar_url: https://avatars.githubusercontent.com/u/1909032?v=4 - name: jeremydvoss teams: - opentelemetry-python-contrib-approvers diff --git a/data/registry/exporter-js-sap-cloud-logging.yml b/data/registry/exporter-js-sap-cloud-logging.yml index 667df759bc2a..f22bd08d10b0 100644 --- a/data/registry/exporter-js-sap-cloud-logging.yml +++ b/data/registry/exporter-js-sap-cloud-logging.yml @@ -24,4 +24,4 @@ isFirstParty: false package: registry: npm name: '@sap/opentelemetry-exporter-for-sap-cloud-logging' - version: 0.2.0 + version: 0.3.0 diff --git a/static/refcache.json b/static/refcache.json index 3c42bd47e024..0d980cd2cd78 100644 --- a/static/refcache.json +++ b/static/refcache.json @@ -5531,6 +5531,10 @@ "StatusCode": 200, "LastSeen": "2024-01-18T19:12:13.077443-05:00" }, + "https://github.com/jerbly": { + "StatusCode": 200, + "LastSeen": "2024-12-16T09:49:23.729890443Z" + }, "https://github.com/jeremydvoss": { "StatusCode": 200, "LastSeen": "2024-08-06T15:16:01.174042+02:00"