Instrumenting OpenTelemetry Demo with Instana

The OpenTelemetry Demo is a sample application that is published by the OpenTelemetry CNCF project. The application features an Astronomy Shop with a set of microservices in different languages, which communicate over gRPC and HTTP with OpenTelemetry enabled. The OpenTelemetry Demo application serves as a general example for OpenTelemetry instrumentation and observability.

Installing OpenTelemetry Demo

You can download, build, and install the OpenTelemetry Demo by using Docker and Kubernetes deployments. For more information, see the following topics:

Connecting OpenTelemetry Demo to Instana

You can configure Instana to receive the telemetry data from the OTEL collector either through the Instana agent or directly to the Instana backend.

For more information, see the following sections:

Viewing OpenTelemetry metric data

To view the otel metric data that is received from the OTEL collector in Instana, complete the following steps:

  1. On the Instana navigation menu, click Infrastructure.

  2. On the Infrastructure page, click Analyze Infrastructure.

  3. From the list of entity types, select OpenTelemetry to see the default metrics.

  4. To filter the microservices based on the language they are written, click Add filter and use the filter parameter otel.attribute.telemetry.sdk.language.

    For example, to filter by Java services, use parameter otel.attribute.telemetry.sdk.language=java. See the following image:

    Microservices filtered by Java language
    Figure 1: Microservices filtered by Java language

    Similarly, for Node.js services, use otel.attribute.telemetry.sdk.language=nodejs, and for Go services, use otel.attribute.telemetry.sdk.language=go.

    In addition to Java, Node.js, and Go, you can filter microservices by languages such as Python (python), PHP (php), .Net (dotnet), C++ (cpp), Ruby (ruby), and Rust (rust).

  5. Click the required language service to view the OTel custom metrics with metric information including their type, name, and value. See the following sample image:

    Node.JS front end service
    Figure 2: Node.JS front end service

Viewing OpenTelemetry Trace Data

To view the otel trace data that is received from the OTEL collector in Instana, complete the following steps:

  1. On the Instana navigation menu, click Analytics.

  2. On the Analytics page, click Analyze Trace.

  3. To filter the microservices based on their language, click Add filter and select OpenTelemetry resource.tag. In the Key field, select or manually enter telemetry.sdk.language, and in the Value field, select or manually enter the required programming language (e.g.: nodejs).

  4. To filter the microservices based on the groups they are in, click Add group and select Service Name. You can also filter by Service Type to organize the filtered traces by their service type.

  5. Click on a service group from the results list to expand it, and then select a specific trace. See the following sample image:

    Node.js service trace group.

Viewing OpenTelemetry Log Data

To view the otel log data that is received from the OTEL collector in Instana, complete the following steps:

  1. On the Instana navigation menu, click Analytics.

  2. On the Analytics page, click Analyze Logs.

  3. To filter the microservices based on the language, click Add filter and select ** Custom Tags**. In the Key field, select or manually enter telemetry.sdk.language, and in the Value field, select or manually enter the required programming language (e.g.: java).

  4. Review log entries, including errors, warnings, and informational messages. Click on any log entry to expand it and view detailed information, including the full log line and its associated attributes. See the following sample image:

    Java service logs.

For more information about walkthroughs for specific programming language microservices, see the following topics: