Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Sample application illustrating multiple aspects of observability with OpenTelemetry

NotificationsYou must be signed in to change notification settings

trstringer/otel-shopping-cart

Repository files navigation

Sample application to highlight distributed tracing and other aspects withOpenTelemetry including:

  • Microservices
  • Traffic generator
  • Quality of service interruptor
  • Traces, metrics, and logs all through OpenTelemetry
  • A variety of observability backends for consumption

Why?

OpenTelemetry can be thought of as observability middleware:

Middleware

These three "layers" can be considered a full implementation. This repo aims at providing all of them (the microservices applications, the OpenTelemetry implementation, and observability backends).

Instead of taking an opinionated approach on what observability backends should be included, this ships multiple:

  • Metrics - Prometheus
  • Traces - Jaeger and Grafana Tempo
  • Logs - Elasticsearch and Grafana Loki

Usage

There are a few ways to "use" this repository...

Everything running local in a new kind cluster

make run-local

Everything in an existing cluster

make install-tools-and-app

Just the sample application

make install-app

Just the observability tools

make install-tools

Viewing telemetry

Traces

Jaeger

$ make port-forward-jaeger

Jaeger

Tempo

$ make port-forward-grafana

Tempo

Metrics

$ make port-forward-grafana

Prometheus

Logs

Elasticsearch

$ make port-forward-kibana

Elasticsearch

Loki

$ make port-forward-grafana

Loki

Cleanup

To cleanup the local environment:

$ make stop-local

Application design

Application design

There are three services in this application:

  • Cart - Service handling user requests for shopping cart data (written in Go)
  • User - Handles user verification and lookup requests from the cart service (written in Go)
  • Price - Serves update pricing information for products (written in Python)

The backend persistent application data storage is withPostgreSQL.

Instrumentation is entirely with OpenTelemetry's APIs and SDKs. Telemetry collection is achieved through theOpenTelemetry Collector sending trace data to Jaeger.

About

Sample application illustrating multiple aspects of observability with OpenTelemetry

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors2

  •  
  •  

[8]ページ先頭

©2009-2025 Movatter.jp