Send OpenTelemetry traces and metrics data to Tanzu Observability.

Sending Data to Tanzu Observability by Wavefront

If your application uses an OpenTelemetry SDK, you can configure the application to send traces or metrics to Tanzu Observability using the Wavefront Proxy or the OpenTelemetry Collector.

Send Trace Data

If your application uses an OpenTelemetry SDK, you can configure the application to send trace data to Tanzu Observability using any of the following options:

A data flow diagram that shows how the data flows from your application to the proxy, and then to Tanzu Observability

Follow these steps:

  1. Install the Wavefront Proxy version 11.3 or higher.
  2. Open the port on the Wavefront Proxy to send OpenTelemetry spans to Tanzu Observability.
    • port 4317 (recommended) with otlpGrpcListenerPorts
    • or port 4318 (recommended) with otlpHttpListenerPorts

    See the Wavefront proxy settings for OpenTelemetry.
    For example, on Linux, Mac, and Windows, open the wavefront.conf file, add the line otlpGrpcListenerPorts=4317, and save the file.

  3. Configure your application to send trace data to the Wavefront Proxy.
    By default, OpenTelemetry SDKs send data over gRPC to http://localhost:4317.
  4. Explore the trace data using our tracing dashboards.

Send Data Using the OpenTelemetry Collector and the Wavefront Proxy

If you have already configured your application to send data to the OpenTelemetry Collector, the data flows from your application to Tanzu Observability as shown in the diagram:

Shows how the data flows from your application to the OpenTelemetry Collector to Tanzu Observability

Follow these steps:

  1. Install the Wavefront Proxy version 11.3 or higher.
    • Open port 30001, with customTracingListenerPorts=30001, for the proxy to generate span-level RED metrics.
    • Ensure that port 2878 is open to send spans and metrics to the Wavefront service. For example, on Linux, Mac, and Windows, open the wavefront.conf file and confirm that pushListenerPorts is set to 2878, and that this configuration is uncommented.
  2. Configure your application to send trace data to the OpenTelemetry Collector. See the OpenTelemetry documentation for details.
  3. Export the data from the OpenTelemetry Collector to the Tanzu Observability (Wavefront) trace exporter:
    1. Download the otelcol-contrib binary from the latest release of the OpenTelemetry Collector project. Note: You need to use OpenTelemetry Collector Contrib version v0.28.0 or later to export traces to Tanzu Observability.
    2. In the same directory, create a file named otel_collector_config.yaml.
    3. Copy the configurations in the preconfigured YAML file to the file you just created. For details on OpenTelemetry configurations, see OpenTelemetry Collector Configuration.
    4. On your console, navigate to the directory you downloaded in the step above and run the following command to start OpenTelemetry Collector:
       ./otelcol-contrib --config otel_collector_config.yaml
      
  4. Explore the trace data sent using our tracing dashboards.

You can then use our tracing dashboards to visualize the requests as traces, which consists of a hierarchy of spans. This visualization helps you pinpoint where the request is spending most of its time and discover problems.

Send Metrics Data

If your application uses an OpenTelemetry SDK, you can configure the application to send metrics data to Tanzu Observability using any of the following options listed below. Metrics data includes time series, counters, and histograms. When the data is in Tanzu Observability, you can use charts and dashboards to visualize the data and create alerts.

A data flow diagram that shows how the data flows from your application to the proxy, and then to Tanzu Observability

Follow these steps:

  1. Install the Wavefront Proxy version 11.3 or higher.
  2. Proxy configurations
    • Open the port on the Wavefront Proxy to send OpenTelemetry spans to Tanzu Observability.
      • Port 4317 (recommended) with otlpGrpcListenerPorts
      • Or port 4318 (recommended) with otlpHttpListenerPorts
      • Ensure that port 2878 is open to send metrics to Tanzu Observability. For example, on Linux, Mac, and Windows, open the wavefront.conf file and confirm that pushListenerPorts is set to 2878, and that this configuration is uncommented.
    • To receive the OpenTelemetry resource attributes that your application sends for metrics data, set otlpResourceAttrsOnMetricsIncluded to true. For example, the command to start the proxy on Docker:
       docker run -d \
       -e WAVEFRONT_URL=https://<INSTANCE>.wavefront.com/api/ \
       -e WAVEFRONT_TOKEN=<TOKEN> \
       -e JAVA_HEAP_USAGE=512M \
       -e WAVEFRONT_PROXY_ARGS="--otlpGrpcListenerPorts 4317 --otlpResourceAttrsOnMetricsIncluded true" \
       -p 2878:2878 \
       -p 4317:4317 \
       wavefronthq/proxy:latest
      

    See the Wavefront proxy settings for OpenTelemetry.
    For example, on Linux, Mac, and Windows,

    • Open the wavefront.conf file
    • Add otlpGrpcListenerPorts=4317
    • Add otlpResourceAttrsOnMetricsIncluded=true
    • Save the file.
  3. Configure your application to send trace data to the Wavefront Proxy.
    By default, OpenTelemetry SDKs send data over gRPC to http://localhost:4317.
  4. Explore the metrics data you sent with charts and dashboards.

Send Data Using the OpenTelemetry Collector and the Wavefront Proxy

If you have already configured your application to send data to the OpenTelemetry Collector, the data flows from your application to Tanzu Observability as shown in the diagram: The diagram shows how the data flows from an application to OpenTelemetry collector, which has the OpenTelemetry exporter, to the wavefront proxy, which has the OpenTelemetry receiver, and finally to Tanzu Observability.

Follow these steps:

  1. Install the Wavefront Proxy.
    • If you have already installed the Wavefront proxy, make sure it is version 10.14 or later.
    • Ensure that port 2878 is open to send metrics to Tanzu Observability. For example, on Linux, Mac, and Windows, open the wavefront.conf file and confirm that pushListenerPorts is set to 2878, and that this configuration is uncommented.
  2. Configure your application to send the metrics data to the OpenTelemetry Collector.
  3. Export the data from the OpenTelemetry Collector to the Tanzu Observability (Wavefront) metrics exporter:
    1. Download the otelcol-contrib binary from the latest release of the OpenTelemetry Collector project. Note: You need to use OpenTelemetry Collector Contrib version v0.51.0 or later to export metrics to Tanzu Observability.
    2. In the same directory, create a file named otel_collector_config.yaml.
    3. Copy the configurations in the preconfigured YAML file to the file you just created. For details on OpenTelemetry configurations, see OpenTelemetry Collector Configuration.
    4. On your console, navigate to the directory you downloaded in the step above and run the following command to start OpenTelemetry Collector:
       ./otelcol-contrib --config otel_collector_config.yaml
      
  4. Explore the metrics data you sent with charts and dashboards.

    Example: shows the OpenTelemetry collector data in a chart

Metrics Conversion

The OpenTelemetry metrics your applications send are converted to the Wavefront data format as follows:

There is a table that shows how the OpenTelemetry metrics are converted to the Wavefront metrics format

For more information on the Tanzu Observability metrics, see Metric Types.

Tutorials

The Wavefront OpenTelemetry GitHub repository includes specific examples for using the OpenTelemetry collector in Java, Python, .NET, and more.

  • If you are on Wavefront Documentation, expand the tutorials section under OpenTelemetry, and try out a tutorial.
  • If you are on the GitHub repository, for example, go to the java-examples folder and follow the steps in the README to instrument Java Apps with OpenTelemetry.

Getting Support