Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OpenTelemetry – ein offener Standard für den Durchblick in Anwendungslandschaften (OOP 2022)

OpenTelemetry – ein offener Standard für den Durchblick in Anwendungslandschaften (OOP 2022)

Um in verteilten Anwendungslandschaften den Überblick zu behalten, gibt es schon seit einiger Zeit unterschiedliche Ansätze, um Daten wie Metriken, Traces und Logs zentralisiert zu analysieren. Die Uneinheitlichkeit machte es bislang aufwendig, wirklich alle Komponenten einfach zu berücksichtigen. Im Jahr 2019 wurde unter dem Dach der Cloud Native Computing Foundation (CNCF) OpenTelemetry als herstellerneutrales, quelloffenes Ökosystem mit dem Ziel geschaffen, die Erfassung und Übertragung von Telemetriedaten zu standardisieren.

Zielpublikum: Architects, Developers, Process Owners, DevOps, Decision Makers
Voraussetzungen: Keine
Schwierigkeitsgrad: Anfänger

Extended Abstract
In dieser Session werden die Spezifikation von OpenTelemetry und deren Bestandteile kurz vorgestellt. Es wird gezeigt, wie eine Integration bei Java-Anwendungen und die Verknüpfung mit gängigen Bibliotheken (Drop-In Instrumentation) erfolgt, so dass sich am Ende ein Business-Prozess bzw. die Anfrage eines Nutzers systemübergreifend verfolgen lässt. Die Beispiele lassen sich auf die z. Zt. zehn weiteren unterstützten Programmiersprachen übertragen. Zuletzt wird auf die Interaktion mit Cloud-Infrastruktur eingegangen, da OpenTelemetry sich insbesondere auf cloud-native Anwendungen fokussiert.

Dennis Kieselhorst

February 03, 2022
Tweet

More Decks by Dennis Kieselhorst

Other Decks in Programming

Transcript

  1. © 2022, Amazon Web Services, Inc. or its affiliates.
    © 2022, Amazon Web Services, Inc. or its affiliates.
    OpenTelemetry
    Ein offener Standard für den Durchblick
    in Anwendungslandschaften
    Dennis Kieselhorst
    Sr. Solutions Architect
    Amazon Web Services

    View Slide

  2. © 2022, Amazon Web Services, Inc. or its affiliates.
    Agenda
    • Observability
    • CNCF Cloud Native Landscape
    • What is OpenTelemetry?
    • OpenTelemetry architecture
    • Tracing concepts in a nutshell
    • OpenTelemetry in Java
    • Demo
    • OpenTelemetry Collector
    • AWS Distro for OpenTelemetry
    • Q&A
    2

    View Slide

  3. © 2022, Amazon Web Services, Inc. or its affiliates.
    What is observability?
    DETECT
    INVESTIGATE
    REMEDIATE

    View Slide

  4. © 2022, Amazon Web Services, Inc. or its affiliates.
    Logs
    Traces
    Metrics
    Foundation of Observability

    View Slide

  5. © 2022, Amazon Web Services, Inc. or its affiliates.
    Logs
    Traces
    Metrics
    Foundation of Observability
    ✓Discrete events
    ✓Usually timestamped
    ✓Can be structured

    View Slide

  6. © 2022, Amazon Web Services, Inc. or its affiliates.
    Logs
    Traces
    Metrics
    grafana.com/grafana/dashboards/1244
    ✓ Regularly sampled data
    points (timestamped)
    ✓ Numeric value
    ✓ Dimension/Labels

    View Slide

  7. © 2022, Amazon Web Services, Inc. or its affiliates.
    Logs
    Traces
    Metrics
    Foundation of Observability
    jaegertracing.io/docs/1.18/
    Request path across
    a number of services

    View Slide

  8. © 2022, Amazon Web Services, Inc. or its affiliates.
    CNCF Cloud Native Landscape http://l.cncf.io

    View Slide

  9. © 2022, Amazon Web Services, Inc. or its affiliates.
    CNCF Cloud Native Landscape http://l.cncf.io

    View Slide

  10. © 2022, Amazon Web Services, Inc. or its affiliates.
    CNCF end-user technology radar
    „1. The most
    commonly adopted
    tools are open source.
    2. There’s no
    consolidation in the
    observability space.
    3. Prometheus and
    Grafana are
    frequently used
    together.”
    https://radar.cncf.io/2020-09-observability
    https://www.cncf.io/blog/2020/09/11/cncf-end-user-technology-radar-observability-september-2020/

    View Slide

  11. © 2022, Amazon Web Services, Inc. or its affiliates.
    What is OpenTelemetry
    OpenTelemetry is a collection of tools, APIs, and SDKs.
    You can use it to instrument, generate, collect, and export
    telemetry data (metrics, logs, and traces) for analysis in order to
    understand your software's performance and behavior.
    A N O B S E R V A B I L I T Y F R A M E W O R K F O R C L O U D - N A T I V E S O F T W A R E
    Broad Language Support
    Java | C# | Go | JavaScript | PHP | Python |
    Rust | C++ | Erlang/Elixir | .NET | Swift
    Integrates With Popular
    Frameworks and Libraries
    MySQL | Redis | Django | Kafka | Jetty | Akka |
    RabbitMQ | Spring | Flask | net/http | gorilla/mux |
    WSGI | JDBC | PostgreSQL
    https://opentelemetry.io

    View Slide

  12. © 2022, Amazon Web Services, Inc. or its affiliates.
    OpenTelemetry Reference architecture
    https://opentelemetry.io/docs/

    View Slide

  13. © 2022, Amazon Web Services, Inc. or its affiliates.
    OpenTelemetry Architecture
    Application Code
    Auto-Instrumentation Agent
    OpenTelemetry Collector (Receivers/Exporters)
    OpenTelemetry Extension/Processing
    OpenTelemetry In-Process Exporter
    OpenTelemetry API/SDK
    Monitoring Services (Observability back-ends)
    Clients
    In application process
    Outside application process

    View Slide

  14. © 2022, Amazon Web Services, Inc. or its affiliates.
    Logs
    Traces
    Metrics
    OpenTelemetry status
    API: stable
    SDK: feature-freeze
    Protocol: stable
    API: draft
    SDK: draft
    Protocol: beta
    API: stable
    SDK: stable
    Protocol: stable
    https://opentelemetry.io/status/

    View Slide

  15. © 2022, Amazon Web Services, Inc. or its affiliates.
    Tracing concepts in a nutshell
    • Span represents an operation within a transaction. Typically encapsulates:
    operation name, a start and finish timestamp, attributes (a list of key-value
    pairs), events, a parent span identifier, links to other spans, and a
    SpanContext.
    • Trace defined implicitly by its spans. A trace can be thought of as a directed
    acyclic graph (DAG) of spans where the edges between spans are defined as
    parent/child relationships.
    • SpanContext represents all the information that identifies Span in the
    Trace and MUST be propagated to child Spans and across process
    boundaries. A SpanContext contains the tracing identifiers and the options
    that are propagated from parent to child Spans.
    • Tracer is responsible for tracking the currently active span.
    https://github.com/open-telemetry/opentelemetry-
    specification/blob/main/specification/overview.md#tracing-signal

    View Slide

  16. © 2022, Amazon Web Services, Inc. or its affiliates.
    © 2022, Amazon Web Services, Inc. or its affiliates. 18
    Demo
    https://aws.amazon.com/blogs/opensource/aws-
    one-observability-demo-workshop-whats-new-
    with-prometheus-grafana-and-opentelemetry/

    View Slide

  17. © 2022, Amazon Web Services, Inc. or its affiliates.

    View Slide

  18. © 2022, Amazon Web Services, Inc. or its affiliates.
    Getting started: OpenTelemetry with Java applications
    Manual instrumentation
    opentelemetry-api and opentelemetry-sdk
    libraries available to e.g. create spans
    programmatically
    https://opentelemetry.io/docs/java/manual_instrumentation/
    Auto instrumentation
    Java agent attached to the JVM
    https://github.com/open-telemetry/opentelemetry-java-
    instrumentation#getting-started
    https://github.com/open-telemetry/opentelemetry-java-
    instrumentation/blob/main/docs/supported-libraries.md
    https://opentelemetry.io/docs/java/

    View Slide

  19. © 2022, Amazon Web Services, Inc. or its affiliates.
    Collector
    Vendor-agnostic way to receive, process and export telemetry data
    Deployment
    • Agent: A Collector instance running with the application or on the same host as
    the application (e.g. binary, sidecar, or daemonset).
    • Gateway: One or more Collector instances running as a standalone service (e.g.
    container or deployment) typically per cluster, datacenter or region.
    Components
    • Receivers: How to get data into the Collector; these can be push or pull based
    • Processors: What to do with received data
    • Exporters: Where to send received data; these can be push or pull based
    • Pipelines: Enable the components
    https://opentelemetry.io/docs/concepts/data-collection/

    View Slide

  20. © 2022, Amazon Web Services, Inc. or its affiliates.

    View Slide

  21. © 2022, Amazon Web Services, Inc. or its affiliates.
    Collector

    View Slide

  22. © 2022, Amazon Web Services, Inc. or its affiliates.
    Collector configuration
    https://github.com/aws-observability/aws-otel-
    lambda/blob/main/adot/collector/config.yaml
    https://github.com/open-
    telemetry/opentelemetry-
    collector/blob/main/examples/de
    mo/otel-collector-config.yaml
    https://opentelemetry.io/docs/collector/configuration/

    View Slide

  23. © 2022, Amazon Web Services, Inc. or its affiliates.
    A secure, production-ready open source distribution supported by AWS
    One-click deploy and configure from AWS Container and AWS
    Lambda consoles
    Exporters for AWS monitoring solutions including - CloudWatch, X-
    Ray, Elasticsearch Service, and Partner Solutions
    AWS Distro for OpenTelemetry

    View Slide

  24. © 2022, Amazon Web Services, Inc. or its affiliates.
    AWS Distro for OpenTelemetry Architecture
    Application Code
    Auto-Instrumentation Agent
    OpenTelemetry Collector
    OpenTelemetry Extension/Processing
    OpenTelemetry In-Process Exporter
    OpenTelemetry API/SDK
    Monitoring Services
    Clients
    In application process
    Outside application process
    AWS resource metadata
    X-Ray Trace ID Support
    Correlation between metrics
    and traces
    AWS SDK Support
    X-Ray Trace ID Support
    Format conversion between
    OT and AWS
    Correlation between metrics
    and traces
    Traces Metrics
    X-Ray
    CloudWatch
    Metrics
    Prometheus
    Partners

    View Slide

  25. © 2022, Amazon Web Services, Inc. or its affiliates.
    © 2022, Amazon Web Services, Inc. or its affiliates. 35
    Q&A
    Bitte die Feedbackumfrage ausfüllen!

    View Slide

  26. © 2022, Amazon Web Services, Inc. or its affiliates.
    AWS Resources
    • Overview page: http://aws.amazon.com/otel
    • Developer Portal: https://aws-otel.github.io
    • Roadmap: https://github.com/orgs/aws-observability/projects/4
    • Feature requests, bugs: https://github.com/aws-observability/aws-otel-
    community/issues
    • OpenTelemetry spec https://github.com/open-telemetry/opentelemetry-
    specification/tree/main/specification
    • Contact us on Gitter: https://gitter.im/aws-otel-distro/community

    View Slide