Overview

PlayerZero is built with first party support for OpenTelemetry. OpenTelemetry is a large open-source, portable, and vendor-agnostic telemetry and observability package.

Integrating with OpenTelemetry enables a few core features:

  • The ability to connect user actions on the front end to logs and network calls on the backend
  • The ability to understand how distributed systems are talking to each other
  • The ability to correlate front end to backend activity

OtelArchitecture

Enabling OpenTelemetry on the WebSDK

For this reason, PlayerZero’s Web SDK is compatible with OpenTelemetry as well. Once you have enabled OpenTelemetry on the backend, enable the auto-instrumentation + OTEL compatibility by navigating to Settings > Web SDK > Enable OpenTelemetry Headers. When you enable this, PlayerZero’s web script will automatically associate user identities and user actions with traces. It will also automatically link and propagate the trace header needed for open telemetry to connect the dots with distributed tracing.

If you have a web application, we highly recommend using PlayerZero with the WebSDK + a backend OpenTelemetry instrumentation.

Setting up OpenTelemetry

The PlayerZero exporter is an otlphttp exporter for logs, spans, and traces. You can configure it through environment/system variables, a config file, or however else you have setup your OpenTelemetry agent. At the end of the day, OpenTelemetry configurations are stack and deployment specific. We recommend taking a look through the open telemetry docs for your specific language. We also have created specific recipes for common stacks among our customers.

Configuration

At the end of the day, once your open telemetry instrumentation is in place, you’ll want to set the following properties. For many, you will create a .properties file that looks like this. Other stacks might have a .yml file or another config file. This is a guidance for the properties you’ll need to set to send data to PlayerZero.

otel-config.properties
otel.service.name=My Dataset Name
otel.exporter.otlp.endpoint=https://sdk.playerzero.app/otlp
otel.exporter.otlp.headers=Authorization=Bearer <your api token>
otel.traces.exporter=otlp
otel.logs.exporter=otlp
otel.metrics.exporter=otlp

Once you have this setup, this should enable forwarding traces, spans, logs, and metrics to PlayerZero automatically.