Docs » Splunk Observability Cloud でサポートされているインテグレーション » バックエンドアプリケーションをインストルメンテーションして、スパンを Splunk APM に送信する » Splunk Observability Cloud 用 Java アプリケーションのインストルメンテーション » Splunk Observability Cloud 用に Java アプリケーションの手動でインストルメンテーションする

Splunk Observability Cloud 用に Java アプリケーションの手動でインストルメンテーションする 🔗

Splunk Distribution of OpenTelemetry Java のエージェントを使用してアプリケーションを自動的にインストルメンテーションすることで、ほとんどのニーズに対応できます。アプリケーションを手動でインストルメンテーションする必要があるのは、たとえばスパンにカスタム属性を追加する必要がある場合や、スパンとメトリクスを手動で生成する必要がある場合のみです。

注釈

手動 OTel インストルメンテーションは Splunk 自動 JVM インストルメンテーションと完全に互換性があり、Splunk によって完全にサポートされています。

Send custom Java application traces 🔗

カスタムのスパンとトレースを作成するには、以下の手順に従ってください:

  1. Install the Splunk Distribution of OpenTelemetry Java. See Splunk Observability Cloud に Java アプリケーションをインストルメンテーションする.

  2. Acquire a tracer using the getTracer method:

    import io.opentelemetry.api.trace.Tracer;
    
    Tracer tracer = openTelemetry.getTracer("instrumentation-scope-name", "instrumentation-scope-version");
    
  3. Create a span. The following example shows how to create and end a span in a sample application:

    import io.opentelemetry.api.trace.Span;
    import io.opentelemetry.context.Scope;
    
    // ...
    @GetMapping("/rolldice")
    public List<Integer> index(@RequestParam("player") Optional<String> player,
          @RequestParam("rolls") Optional<Integer> rolls) {
       Span span = tracer.spanBuilder("rollTheDice")
          .setAttribute("player.name", player.orElse("unknown"))
          .startSpan();
    
       // Make the span the current span
       try (Scope scope = span.makeCurrent()) {
    
          //.. Application logic
    
       } catch(Throwable t) {
          span.recordException(t);
          throw t;
       } finally {
          span.end();
       }
    }
    

For more examples, see the manual instrumentation docs in the OpenTelemetry Java Instrumentation repository at https://opentelemetry.io/docs/java/manual_instrumentation .

カスタムJavaアプリケーション・メトリクスの送信 🔗

カスタムメトリクスを作成するには、以下の手順に従います:

  1. Install the Splunk Distribution of OpenTelemetry Java. See Splunk Observability Cloud に Java アプリケーションをインストルメンテーションする.

  2. メーターを作ります:

    OpenTelemetry openTelemetry = GlobalOpenTelemetry.get();
    Meter sampleMeter = openTelemetry.getMeter("foo.example.metrics");
    
  3. Build a specific metric type. The following example shows how to create a gauge metric:

    sampleMeter
       .gaugeBuilder("player.hitpoints")
       .setDescription("A player's currently remaining hit points.")
       .setUnit("HP")
       .ofLongs()
       .buildWithCallback(res -> {
           long hitpoints = currentPlayer.hitpoints();
           String playerName = currentPlayer.name();
           res.record(hitpoints, Attributes.of(stringKey("name"), playerName)));
       });
       .buildWithCallback(
          result -> result.record(Runtime.getRuntime().totalMemory(), Attributes.empty()));
    

For more examples, see the manual instrumentation docs in the OpenTelemetry Java Instrumentation repository at https://opentelemetry.io/docs/java/manual_instrumentation .

This page was last updated on 2024年06月25日.