-
Notifications
You must be signed in to change notification settings - Fork 30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Observability otel demo #185
Open
YANG-DB
wants to merge
21
commits into
opensearch-project:main
Choose a base branch
from
YANG-DB:observability-otel-demo
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 7 commits
Commits
Show all changes
21 commits
Select commit
Hold shift + click to select a range
6c00761
Adding an Observability OTEL based demo for Observability playground
YANG-DB 60b43e2
Adding an Observability OTEL based demo for Observability playground
YANG-DB 2a51fe9
Merge remote-tracking branch 'origin/observability-otel-demo' into ob…
YANG-DB c0e22d2
update service names and otelcol config
YANG-DB 14ac9b2
Merge remote-tracking branch 'origin/observability-otel-demo' into ob…
YANG-DB 336b154
Merge branch 'main' into observability-otel-demo
YANG-DB c00039e
update service names and otelcol config
YANG-DB 193fad3
update integration service to load all schema and dashboards into the…
YANG-DB c544a01
update integration service to load all schema and dashboards into the…
YANG-DB cbb0abb
Merge remote-tracking branch 'origin/observability-otel-demo' into ob…
YANG-DB 7aa4905
Merge remote-tracking branch 'origin/observability-otel-demo' into ob…
YANG-DB 9e44934
Merge remote-tracking branch 'origin/observability-otel-demo' into ob…
YANG-DB f9eb4b5
Merge remote-tracking branch 'origin/observability-otel-demo' into ob…
YANG-DB d5f5333
Merge remote-tracking branch 'origin/observability-otel-demo' into ob…
YANG-DB 1a6d50f
Merge remote-tracking branch 'origin/observability-otel-demo' into ob…
YANG-DB caa94d0
Merge remote-tracking branch 'origin/observability-otel-demo' into ob…
YANG-DB fff5e3a
Merge branch 'main' into observability-otel-demo
YANG-DB c16ffbb
Merge remote-tracking branch 'origin/observability-otel-demo' into ob…
YANG-DB b05e3eb
update recent otel-demo changes
YANG-DB 9c175cd
update otel-pipeline documentations
YANG-DB 027a859
Merge branch 'main' into observability-otel-demo
YANG-DB File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
# Opensearch OTEL Demo Architecture | ||
This document will review the OpenSearch architecture for the [OTEL demo](https://opentelemetry.io/docs/demo/) and will review how to use the new Observability capabilities | ||
implemented into OpenSearch. | ||
--- | ||
This diagram provides an overview of the system components, showcasing the configuration derived from the OpenTelemetry Collector (otelcol) configuration file utilized by the OpenTelemetry demo application. | ||
|
||
Additionally, it highlights the observability data (traces and metrics) flow within the system. | ||
|
||
 | ||
|
||
--- | ||
[OTEL DEMO](https://opentelemetry.io/docs/demo/architecture/) Describes the list of services that are composing the Astronomy Shop. | ||
|
||
They are combined of: | ||
- [Accounting](https://opentelemetry.io/docs/demo/services/accounting/) | ||
- [Ad](https://opentelemetry.io/docs/demo/services/ad/) | ||
- [Cart](https://opentelemetry.io/docs/demo/services/cart/) | ||
- [Checkout](https://opentelemetry.io/docs/demo/services/checkout/) | ||
- [Currency](https://opentelemetry.io/docs/demo/services/currency/) | ||
- [Email](https://opentelemetry.io/docs/demo/services/email/) | ||
- [Feature Flag](https://opentelemetry.io/docs/demo/services/feature-flag/) | ||
- [Fraud Detection](https://opentelemetry.io/docs/demo/services/fraud-detection/) | ||
- [Frontend](https://opentelemetry.io/docs/demo/services/frontend/) | ||
- [Kafka](https://opentelemetry.io/docs/demo/services/kafka/) | ||
- [Payment](https://opentelemetry.io/docs/demo/services/payment/) | ||
- [Product Catalog](https://opentelemetry.io/docs/demo/services/product-catalog/) | ||
- [Quote](https://opentelemetry.io/docs/demo/services/quote/) | ||
- [Recommendation](https://opentelemetry.io/docs/demo/services/recommendation/) | ||
- [Shipping](https://opentelemetry.io/docs/demo/services/shipping/) | ||
- [Fluent-Bit]() *(Nginx's otel log exported)* | ||
- [Integrations]() *(Pre-canned OpenSearch assets)* | ||
- [DataPrepper]() *(OpenSearch's ingestion pipeline)* | ||
|
||
Backend supportive services | ||
- [Load Generator]() | ||
- See [description]() | ||
- [Frontend Nginx Proxy]() *(Replacement for _Frontend-Proxy_)* | ||
- [OpenSearch]() | ||
- [Dashboards]() | ||
- [Prometheus]() | ||
- [Feature-Flag]() | ||
|
||
### Services Topology | ||
The next diagram shows the docker compose services dependencies | ||
|
||
 | ||
--- | ||
|
||
## Purpose | ||
The purpose of this demo is to demonstrate the different capabilities of OpenSearch Observability to investigate and reflect your system. | ||
|
||
### Ingestion | ||
The ingestion capabilities for OpenSearch is to be able to support multiple pipelines: | ||
- [Data-Prepper](https://github.com/opensearch-project/data-prepper/) is an OpenSearch ingestion project that allows ingestion of OTEL standard signals using Otel-Collector | ||
- [Jaeger](https://opensearch.org/docs/latest/observing-your-data/trace/trace-analytics-jaeger/) is an ingestion framework which has a build in capability for pushing OTEL signals into OpenSearch | ||
- [Fluent-Bit](https://docs.fluentbit.io/manual/pipeline/outputs/opensearch) is an ingestion framework which has a build in capability for pushing OTEL signals into OpenSearch | ||
|
||
### Integrations - | ||
The integration service is a list of pre-canned assets that are loaded in a combined manner to allow users the ability for simple and automatic way to discover and review their services topology. | ||
|
||
These (demo-sample) integrations contain the following assets: | ||
- components & index template mapping | ||
- datasources | ||
- data-stream & indices | ||
- queries | ||
- dashboards | ||
|
||
Once they are loaded, the user can imminently review his OTEL demo services and dashboards that reflect the system state. | ||
- [Nginx Dashboard]() - reflects the Nginx Proxy server that routes all the network communication to/from the frontend | ||
- [Prometheus datasource]() - reflects the connectivity to the prometheus metric storage that allows us to federate metrics analytics queries | ||
- [Logs Datastream]() - reflects the data-stream used by nginx logs ingestion and dashboards representing a well-structured [log schema](../src/integrations/mapping-templates/logs.mapping) | ||
|
||
Once these assets are loaded - the user can start reviewing its Observability dashboards and traces | ||
|
||
 | ||
|
||
 | ||
|
||
 | ||
|
||
 | ||
|
||
 | ||
|
||
 | ||
--- | ||
|
||
### **Scenarios** | ||
|
||
How can you solve problems with OpenTelemetry? These scenarios walk you through some pre-configured problems and show you how to interpret OpenTelemetry data to solve them. | ||
|
||
- Generate a Product Catalog error for GetProduct requests with product id: OLJCESPC7Z using the Feature Flag service | ||
- Discover a memory leak and diagnose it using metrics and traces. Read more | ||
|
||
### **Reference** | ||
Project reference documentation, like requirements and feature matrices [here](https://opentelemetry.io/docs/demo/#reference) | ||
|
98 changes: 98 additions & 0 deletions
98
config/playground/demo/observability/otel_demo/data-prepper.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,98 @@ | ||
# Copyright The OpenTelemetry Authors | ||
# SPDX-License-Identifier: Apache-2.0 | ||
--- | ||
# Data Prepper Deployment | ||
apiVersion: apps/v1 | ||
kind: Deployment | ||
metadata: | ||
name: data-prepper | ||
namespace: otel-demo | ||
spec: | ||
replicas: 1 | ||
selector: | ||
matchLabels: | ||
app: data-prepper | ||
template: | ||
metadata: | ||
labels: | ||
app: data-prepper | ||
spec: | ||
containers: | ||
- name: data-prepper | ||
image: opensearchproject/data-prepper:latest | ||
ports: | ||
- containerPort: 21890 | ||
volumeMounts: | ||
YANG-DB marked this conversation as resolved.
Show resolved
Hide resolved
|
||
- name: config-volume | ||
mountPath: /usr/share/data-prepper/pipelines/pipelines.yaml | ||
subPath: pipelines.yaml | ||
- name: config-volume | ||
mountPath: /usr/share/data-prepper/config/data-prepper-config.yaml | ||
subPath: data-prepper-config.yaml | ||
volumes: | ||
- name: config-volume | ||
configMap: | ||
name: data-prepper-config | ||
restartPolicy: Always | ||
--- | ||
# Data Prepper config-map | ||
apiVersion: v1 | ||
kind: ConfigMap | ||
metadata: | ||
name: data-prepper-config | ||
namespace: otel-demo | ||
data: | ||
trace_analytics_no_ssl_2x.yml: | | ||
YANG-DB marked this conversation as resolved.
Show resolved
Hide resolved
|
||
entry-pipeline: | ||
delay: "100" | ||
source: | ||
otel_trace_source: | ||
ssl: false | ||
sink: | ||
- pipeline: | ||
name: "raw-pipeline" | ||
- pipeline: | ||
name: "service-map-pipeline" | ||
raw-pipeline: | ||
source: | ||
pipeline: | ||
name: "entry-pipeline" | ||
processor: | ||
- otel_trace_raw: | ||
sink: | ||
- opensearch: | ||
hosts: [ "https://opensearch-cluster-leader.default.svc:9200" ] | ||
insecure: true | ||
username: "{USR}" | ||
password: "{PSWD}" | ||
index_type: trace-analytics-raw | ||
service-map-pipeline: | ||
delay: "100" | ||
source: | ||
pipeline: | ||
name: "entry-pipeline" | ||
processor: | ||
- service_map_stateful: | ||
sink: | ||
- opensearch: | ||
hosts: [ "https://opensearch-cluster-leader.default.svc:9200" ] | ||
insecure: true | ||
username: "{USR}" | ||
password: "{PSWD}" | ||
index_type: trace-analytics-service-map | ||
pipelines.yaml: | | ||
ssl: false | ||
--- | ||
# Data Prepper Service | ||
apiVersion: v1 | ||
kind: Service | ||
metadata: | ||
name: data-prepper-service | ||
namespace: otel-demo | ||
spec: | ||
selector: | ||
app: data-prepper | ||
ports: | ||
- protocol: TCP | ||
port: 21890 | ||
targetPort: 21890 |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+162 KB
config/playground/demo/observability/otel_demo/img/docker-services-topology.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+395 KB
config/playground/demo/observability/otel_demo/img/nginx_dashboard.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+145 KB
config/playground/demo/observability/otel_demo/img/otelcol-data-flow-overview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+538 KB
...ig/playground/demo/observability/otel_demo/img/prometheus_federated_metrics.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+476 KB
config/playground/demo/observability/otel_demo/img/trace_analytics.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the user can imminently review the OTEL demo services, should we remove 'his' here.