Skip to content

Latest commit

 

History

History
99 lines (63 loc) · 5.79 KB

cloud-services.md

File metadata and controls

99 lines (63 loc) · 5.79 KB

Cloud Services and Infrastructure

What are you looking to do?
Use existing telemetry from your service
Add new telemetry to your service
Add new telemetry to your SDK or library
See example integrations

Use Existing Telemetry from your Product or Service

The goal here is to give your team a unified data pipeline where your cloud services and infrastructure are "speaking the same language" so that your teams and tools ll see the same data.

Configure Collector

  1. Determine existing metrics, traces, and logs that are available via API.
  2. Determine existing metric or tracing formats that are already supported by your product (i.e. OpenTracing, Prometheus exporters).
  3. Review the OpenTelemetry collector and -contrib respositories: does an integration already exists, or is it possible to use an existing integration (i.e. prometheus sidecar if your product already outputs prometheus metrics)?
  4. If no prior work exists, use the OpenTelemetry Collector Builder to start a new golang project that pulls data from your service and converts it into an OpenTelemetry-compatible metric, log, or trace.

Pull Data

  • Via API, pull in relevant logs, metrics or traces telemetry to an OpenTelemetry collector receiver that's configured to ingest data from your service.

Run and Verify

  1. Send data from your product to an OpenTelemetry collector that outputs to the console and verify output.
  2. Optional: verify in an OpenTelemetry production tool of your choice

Contribute your integration to the OpenTelemetry ecosystem

Make your code usable to as many people as possible! If you're looking for help here, contact us at [email protected]. We'd love to help support you!


Add New Instrumention to your Product or Service

Instrument

  1. Find the OpenTelemetry SDK for the language(s) used by your solution (i.e. nginx is written in C++)

  2. Import the language-specific OpenTelemetry API and start creating metrics, logs, or traces

Run and Verify

  1. Send data from your product to an OpenTelemetry collector that outputs to the console and verify output.
  2. Optional: verify in an OpenTelemetry production tool of your choice

Add New Instrumention to your SDK or library

Instrument

  1. Find the OpenTelemetry SDK for the language(s) or framework(s) used by your SDK

  2. Import the language-specific OpenTelemetry API and patch your library method(s)

  3. Use the OpenTelemetry docs to add spans, metrics, and logs to annotate requests to your cloud service from customer code with more actionable context

Run and Verify

  1. Send data from your product to an OpenTelemetry collector that outputs to the console and verify output.
  2. Optional: verify in an OpenTelemetry production tool of your choice

Example Integrations

Native Instrumentation

Integration Description
CockroachDB Instructions for using CockroachDB's native OpenTracing support with Lightstep.
nginx Instructions for instrumenting nginx with OpenTelemetry.
Jenkins X Publish Jenkins performance metrics and traces to an OpenTelemetry endpoint
Ambassador k8s Initializer Automatically configure a Kubernetes cluster to emit traces using Ambassador's k8s initializer.

Collector-based Integration

Integration Description
AWS Distro for OpenTelemetry OpenTelemetry distribution for multiple AWS services.
Lightstep Prometheus Sidecar Convert existing Prometheus metrics into OpenTelemetry metrics.
donut shop demo (EKS) Example AWS Kubernetes environment that forwards Prometheus metrics to an OpenTelemetry collector.

SDK or Library Integration

Instrumentation Package Description
AWS SDK Instrumentation (Node.js) Node.js AWS SDK Instrumentation from Aspecto.
MongoDB Python SDK (pymongo) pymongo library instrumentation (open-source).
MySQL Instrumentation MySQL client instrumentation for Javascript/Node.js.