<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Unable to end counters to Dynatrace via OTLP in Dynatrace Managed Q&amp;A</title>
    <link>https://community.dynatrace.com/t5/Dynatrace-Managed-Q-A/Unable-to-end-counters-to-Dynatrace-via-OTLP/m-p/264335#M3738</link>
    <description>&lt;DIV class=""&gt;
&lt;P&gt;am using an Open Telemtery JAVA SDK to publish some metrics an OTEL sink like Dynatrace. I am sending gauges, updown counters etc. to dynatrace and see that UpDown Counters are successuflly pushed, but the counters are not. Could you kindly help me understand where I could be going wrong?&lt;/P&gt;
&lt;P&gt;The code that I am using OTLP SDK Meter Provider&lt;/P&gt;
&lt;PRE&gt;    @Bean
    public SdkMeterProvider sdkMeterProvider(){
        return SdkMeterProvider.builder()
                .registerMetricReader(
                        PeriodicMetricReader.builder(
                            OtlpHttpMetricExporter.builder()
                                .setEndpoint(otlpApiUrlPrefix+"/v2/otlp/v1/metrics")
                                .addHeader("Authorization", "Api-Token "+otlpApiToken).build())
                            .setInterval(15, TimeUnit.SECONDS)  /** determines the frequency of publishing metrics **/
                        .build())
                .build();
    }&lt;/PRE&gt;
&lt;P&gt;Initializing Updown Counter with callback (This works successfully)&lt;/P&gt;
&lt;PRE&gt;        meter
                .upDownCounterBuilder("otlp.demo.updown.counter.with.callback")
                .setDescription("Demo updown counter with callback")
                .setUnit("boxes")
                .buildWithCallback(result -&amp;gt; result.record(currentvalue, attributes));&lt;/PRE&gt;
&lt;P&gt;Initializing Counter with Callback&lt;/P&gt;
&lt;PRE&gt;      meter
                .counterBuilder("otlp.demo.counter.with.callback")
                .setDescription("Counter with callback")
                .setUnit("count")
                .buildWithCallback(result -&amp;gt; result.record(currentvalue, attributes));&lt;/PRE&gt;
&lt;P&gt;This does not get transmitted to the downstream OTEL Sink (Dyantrace)&lt;/P&gt;
&lt;P&gt;Initializing Counter without Callback&lt;/P&gt;
&lt;PRE&gt;        longCounterWithoutCallback = meter
                .counterBuilder("otlp.demo.counter.without.callback")
                .setDescription("Counter without callback")
                .setUnit("count")
                .build();&lt;/PRE&gt;
&lt;P&gt;I am incrementing this counter as follows:&lt;/P&gt;
&lt;PRE&gt;    /** Random increment/ decrement of the counter. Does not control the frequency of metrics export **/
    @Scheduled(cron = "${otlp.metrics.cron}")
    public void processCounter(){
        currentvalue = currentvalue + (-5L + (long) (Math.random() * (20L)));
        logger.info("Successfully modified counter value {}", currentvalue);
        longCounterWithoutCallback.add(1L); // Only increment the counter
    }&lt;/PRE&gt;
&lt;P&gt;I am trying to use this as an example &lt;A href="https://github.com/open-telemetry/opentelemetry-java-examples/blob/main/metrics/src/main/java/io/opentelemetry/example/metrics/LongCounterExample.java" target="_blank" rel="nofollow noopener noreferrer"&gt;https://github.com/open-telemetry/opentelemetry-java-examples/blob/main/metrics/src/main/java/io/opentelemetry/example/metrics/LongCounterExample.java&lt;/A&gt;&lt;/P&gt;
&lt;/DIV&gt;
&lt;DIV class=""&gt;
&lt;DIV class=""&gt;
&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;</description>
    <pubDate>Fri, 06 Dec 2024 07:27:56 GMT</pubDate>
    <dc:creator>prabalr</dc:creator>
    <dc:date>2024-12-06T07:27:56Z</dc:date>
    <item>
      <title>Unable to end counters to Dynatrace via OTLP</title>
      <link>https://community.dynatrace.com/t5/Dynatrace-Managed-Q-A/Unable-to-end-counters-to-Dynatrace-via-OTLP/m-p/264335#M3738</link>
      <description>&lt;DIV class=""&gt;
&lt;P&gt;am using an Open Telemtery JAVA SDK to publish some metrics an OTEL sink like Dynatrace. I am sending gauges, updown counters etc. to dynatrace and see that UpDown Counters are successuflly pushed, but the counters are not. Could you kindly help me understand where I could be going wrong?&lt;/P&gt;
&lt;P&gt;The code that I am using OTLP SDK Meter Provider&lt;/P&gt;
&lt;PRE&gt;    @Bean
    public SdkMeterProvider sdkMeterProvider(){
        return SdkMeterProvider.builder()
                .registerMetricReader(
                        PeriodicMetricReader.builder(
                            OtlpHttpMetricExporter.builder()
                                .setEndpoint(otlpApiUrlPrefix+"/v2/otlp/v1/metrics")
                                .addHeader("Authorization", "Api-Token "+otlpApiToken).build())
                            .setInterval(15, TimeUnit.SECONDS)  /** determines the frequency of publishing metrics **/
                        .build())
                .build();
    }&lt;/PRE&gt;
&lt;P&gt;Initializing Updown Counter with callback (This works successfully)&lt;/P&gt;
&lt;PRE&gt;        meter
                .upDownCounterBuilder("otlp.demo.updown.counter.with.callback")
                .setDescription("Demo updown counter with callback")
                .setUnit("boxes")
                .buildWithCallback(result -&amp;gt; result.record(currentvalue, attributes));&lt;/PRE&gt;
&lt;P&gt;Initializing Counter with Callback&lt;/P&gt;
&lt;PRE&gt;      meter
                .counterBuilder("otlp.demo.counter.with.callback")
                .setDescription("Counter with callback")
                .setUnit("count")
                .buildWithCallback(result -&amp;gt; result.record(currentvalue, attributes));&lt;/PRE&gt;
&lt;P&gt;This does not get transmitted to the downstream OTEL Sink (Dyantrace)&lt;/P&gt;
&lt;P&gt;Initializing Counter without Callback&lt;/P&gt;
&lt;PRE&gt;        longCounterWithoutCallback = meter
                .counterBuilder("otlp.demo.counter.without.callback")
                .setDescription("Counter without callback")
                .setUnit("count")
                .build();&lt;/PRE&gt;
&lt;P&gt;I am incrementing this counter as follows:&lt;/P&gt;
&lt;PRE&gt;    /** Random increment/ decrement of the counter. Does not control the frequency of metrics export **/
    @Scheduled(cron = "${otlp.metrics.cron}")
    public void processCounter(){
        currentvalue = currentvalue + (-5L + (long) (Math.random() * (20L)));
        logger.info("Successfully modified counter value {}", currentvalue);
        longCounterWithoutCallback.add(1L); // Only increment the counter
    }&lt;/PRE&gt;
&lt;P&gt;I am trying to use this as an example &lt;A href="https://github.com/open-telemetry/opentelemetry-java-examples/blob/main/metrics/src/main/java/io/opentelemetry/example/metrics/LongCounterExample.java" target="_blank" rel="nofollow noopener noreferrer"&gt;https://github.com/open-telemetry/opentelemetry-java-examples/blob/main/metrics/src/main/java/io/opentelemetry/example/metrics/LongCounterExample.java&lt;/A&gt;&lt;/P&gt;
&lt;/DIV&gt;
&lt;DIV class=""&gt;
&lt;DIV class=""&gt;
&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Fri, 06 Dec 2024 07:27:56 GMT</pubDate>
      <guid>https://community.dynatrace.com/t5/Dynatrace-Managed-Q-A/Unable-to-end-counters-to-Dynatrace-via-OTLP/m-p/264335#M3738</guid>
      <dc:creator>prabalr</dc:creator>
      <dc:date>2024-12-06T07:27:56Z</dc:date>
    </item>
  </channel>
</rss>

