Skip to content

Commit eab7e7b

Browse files
committed
Update and improve OpenTelemetry documentation
1 parent 950cfe3 commit eab7e7b

27 files changed

Lines changed: 1030 additions & 454 deletions

.gitbook/assets/otel/aws_nodejs_otel_proxy_collector_configuration.svg

Lines changed: 0 additions & 16 deletions
This file was deleted.
202 KB
Loading
210 KB
Loading
127 KB
Loading

SUMMARY.md

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -92,16 +92,21 @@
9292
* [Certificates for sidecar injection](setup/agent/k8sTs-agent-request-tracing-certificates.md)
9393

9494
## 🔭 Open Telemetry
95-
* [Getting started](setup/otel/getting-started.md)
95+
* [Overview](setup/otel/overview.md)
96+
* [Getting started](setup/otel/getting-started/README.md)
97+
* [Rancher & Kubernetes](setup/otel/getting-started/getting-started-k8s.md)
98+
* [AWS Lambda](setup/otel/getting-started/getting-started-lambda.md)
99+
* [Linux](setup/otel/getting-started/getting-started-linux.md)
100+
* [Concepts](setup/otel/concepts.md)
96101
* [Open telemetry collector](setup/otel/collector.md)
97-
* [Collector as a proxy](setup/otel/proxy-collector.md)
98-
* [Languages](setup/otel/languages/README.md)
99-
* [Generic Exporter configuration](setup/otel/languages/sdk-exporter-config.md)
100-
* [Java](setup/otel/languages/java.md)
101-
* [Node.js](setup/otel/languages/node.js.md)
102-
* [Auto-instrumentation of Lambdas](setup/otel/languages/node.js/auto-instrumentation-of-lambdas.md)
103-
* [.NET](setup/otel/languages/dot-net.md)
104-
* [Verify the results](setup/otel/languages/verify.md)
102+
* [Sampling](setup/otel/sampling.md)
103+
* [Instrumentation](setup/otel/instrumentation/README.md)
104+
* [Java](setup/otel/instrumentation/java.md)
105+
* [Node.js](setup/otel/instrumentation/node.js.md)
106+
* [Auto-instrumentation of Lambdas](setup/otel/instrumentation/node.js/auto-instrumentation-of-lambdas.md)
107+
* [.NET](setup/otel/instrumentation/dot-net.md)
108+
* [SDK Exporter configuration](setup/otel/instrumentation/sdk-exporter-config.md)
109+
* [SUSE Observability OTLP APIs](setup/otel/otlp-apis.md)
105110
* [Troubleshooting](setup/otel/troubleshooting.md)
106111

107112
## CLI
@@ -171,7 +176,7 @@
171176
## 🔐 Security
172177

173178
* [Service Tokens](use/security/k8s-service-tokens.md)
174-
* [Ingestion API Keys](use/security/k8s-ingestion-api-keys.md)
179+
* [API Keys](use/security/k8s-ingestion-api-keys.md)
175180

176181
## ☁️ SaaS
177182
* [User Management](saas/user-management.md)

setup/install-stackstate/kubernetes_openshift/ingress.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ This step assummes that [Generate `baseConfig_values.yaml` and `sizing_values.ya
5555
{% endhint %}
5656

5757

58-
## Configure Ingress Rule for Open Telemetry Traces via the SUSE Observability Helm chart
58+
## Configure Ingress Rule for Open Telemetry
5959

6060
The SUSE Observability Helm chart exposes an `opentelemetry-collector` service in its values where a dedicated `ingress` can be created. This is disabled by default. The ingress needed for `opentelemetry-collector` purposed needs to support GRPC protocol. The example below shows how to use the Helm chart to configure an nginx-ingress controller with GRPC and TLS encryption enabled. Note that setting up the controller itself and the certificates is beyond the scope of this document.
6161

setup/otel/collector.md

Lines changed: 164 additions & 199 deletions
Large diffs are not rendered by default.

setup/otel/concepts.md

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
---
2+
description: SUSE Observability
3+
---
4+
5+
# Open Telemetry concepts
6+
7+
This is a summary of the most important concepts in Open Telemetry and should be sufficient to get started. For a more detailed introduction use the [Open Telemetry documentation](https://opentelemetry.io/docs/concepts/)
8+
9+
## Signals
10+
11+
Open Telemetry recognizes 3 telemetry signals:
12+
13+
* Traces
14+
* Metrics
15+
* Logs
16+
17+
At the momemt SUSE Observability supports traces and metrics, logs will be supported in a future version. For Kubernetes logs it is possible to use the [SUSE Observability agent](/k8s-quick-start-guide.md) instead.
18+
19+
### Traces
20+
21+
Traces allow us to visualize the path of a request through your application. A trace consists of one or more spans that together form a tree, a single trace can be entirely within a single service, but it can also go across many services. Each span represents an operation in the processing of the request and has:
22+
* a name
23+
* start and end time, from that a duration can be calculated
24+
* status
25+
* attributes
26+
* resource attributes (see [resources](#resources))
27+
* events
28+
29+
Span attributes are used to provide metadata for the span, for example a span that for an operation that places an order can have the `orderId` as an attribute, or a span for an HTTP operation can have the HTTP method and URL as attributes.
30+
31+
Span events can be used to represent a point in time where something important happened within the operation of the span. For example if the span failed there can be an `exception` or an `error` event that captures the error message, a stacktrace and the exact point in time the error occurred.
32+
33+
### Metrics
34+
35+
Metrics are measurements captured at runtime and they result in a metric event. Metrics are important indicators for application performance and availability and are often used to alert on an outage or performance problem. Metrics have:
36+
* a name
37+
* a timestamp
38+
* a kind (counter, gauge, histogram, etc.)
39+
* attributes
40+
* resource attributes (see [resources](#resources))
41+
42+
Attributes provide the metadata for a metric.
43+
44+
## Resources
45+
46+
A resource is the entity that produces the telemetry data. The resource attributes provide the metadata for the resource. For example a process running in a container, in a pod, in a namespace in a Kubernetes cluster can have resource attributes for all these entities.
47+
48+
Resource attributes are often automatically assigned by the SDKs. However it is recommended to always set the `service.name` and `service.namespace` attributes explicitly. The first one is the logical name for the service, if not set the SDK will set an `unknown_service` value making it very hard to use the data later in SUSE Observability. The namespace is a convenient way to organize your services, especially useful if you have the same services running in multiple locations.
49+
50+
## Semantic conventions
51+
52+
Open Telemetry defines common names for operations and data, they call this the semantic conventions. Semantic conventions follow a naming scheme that allows for standardizing processing of data across languages, libraries and code bases. There are semantic conventions for all signals and for resource attributes. They are defined for many different platforms and operations on the [Open Telemetry website](https://opentelemetry.io/docs/specs/semconv/attributes-registry/). SDKs make use of the semantic convetions to assign these attributes and SUSE Observability also respects the semantic conventions and relies on them, for example to recognize Kubernetes resources.
53+

setup/otel/getting-started.md

Lines changed: 0 additions & 22 deletions
This file was deleted.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
description: SUSE Observability
3+
---
4+
5+
# Getting started
6+
7+
There are multiple platforms that are supported by Open Telemetry and SUSE Observability. Follow the getting started guide that matches best with your setup:
8+
* [Kubernetes or Rancher](./getting-started-k8s.md)
9+
* [Linux host](./getting-started-linux.md)
10+
* [AWS Lambda functions](./getting-started-lambda.md)

0 commit comments

Comments
 (0)