Skip to content

Commit cc190ac

Browse files
committed
STAC-22435 Update getting started
1 parent 68fbe3f commit cc190ac

4 files changed

Lines changed: 26 additions & 14 deletions

File tree

setup/install-stackstate/kubernetes_openshift/ingress.md

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

5454

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

5757
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.
5858

setup/otel/collector.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ To install and configure the collector for usage with SUSE Observability we'll u
2727
2. generating metrics from traces
2828
3. sending the data to SUSE Observability
2929
4. combine it all together in pipelines
30-
2. [Create a Kubernetes secret for the SUSE Observability API key](#create-secret-for-the-api-key)
30+
2. [Create a Kubernetes secret for the SUSE Observability API key](#create-a-secret-for-the-api-key)
3131
3. [Deploy the collector](#deploy-the-collector)
3232
4. [Configure your instrumented applicatins to send telemetry to the collector](#configure-applications)
3333

@@ -166,7 +166,7 @@ The `service` section determines what components of the collector are enabled. T
166166
The `pipelines` section defines pipelines for the traces and metrics. The metrics pipeline defines:
167167
* `receivers`, to receive metrics from instrumented applications (via the OTLP protocol, `otlp`), from spans (the `spanmetrics` connector) and by scraping Prometheus endpoints (the `prometheus` receiver). The latter is configured by default in the collector Helm chart to scrape the collectors own metrics
168168
* `processors`: The `memory_limiter` helps to prevent out-of-memory errors. The `batch` processor helps better compress the data and reduce the number of outgoing connections required to transmit the data. The `resource` processor adds additional resource attributes (discussed separately)
169-
* `exporters`: The `debug` exporter simply logs to stdout which helps when troubleshooting. The `otlp/stackstate` exporter sends telemetry data to SUSE Observability using the OTLP protocol via GRPC (Default). The `otlphttp/stackstate` exporter sends telemetry data to SUSE Observability using the OTLP protocol via HTTP and is meant to be used where there area some impediments to use the GRPC one (needs to be activated in the pipelines). Both OTLP exporters are configured to use the bearertokenauth extension for authentication to send data to the SUSE Observability OTLP endpoint.
169+
* `exporters`: The `debug` exporter simply logs to stdout which helps when troubleshooting. The `otlp/stackstate` exporter sends telemetry data to SUSE Observability using the OTLP protocol via GRPC (Default). The `otlphttp/stackstate` exporter sends telemetry data to SUSE Observability using the OTLP protocol via HTTP and is meant to be used where there area some impediments to use the GRPC one (needs to be activated in the pipelines). Both OTLP exporters are configured to use the bearertokenauth extension for authentication to send data to the SUSE Observability OTLP endpoint. You only need to use one of them, the examle uses the `otlp/stackstate` exporter which uses the GRCP protocol. Uf you find that this doesn't work (for example because a proxy server that is used doesn't properly support GRPC traffic) you can switch to the `otlphttp/stackstate` protocol instead. For more configuration options (for example to disable TLS validation) see the [exporter configuration docs](https://github.com/open-telemetry/opentelemetry-collector/blob/main/exporter/otlpexporter/README.md).
170170

171171
For traces, there are 3 pipelines that are connected:
172172
* `traces`: The pipeline that receives traces from SDKs (via the `otlp` receiver) and does the initial processing using the same processors as for metrics. It exports into a router which routes all spans to both other traces pipelines. This setup makes it possible to calculate span metrics for all spans while applying sampling to the traces that are exported.

setup/otel/getting-started.md

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,33 @@ description: SUSE Observability
44

55
# Getting Started with Open Telemetry
66

7-
![Open Telemetry collector and 2 instrumented applications sending metrics and traces to SUSE Observability](/.gitbook/assets/otel/open-telemetry.svg)
7+
To get started we'll setup monitoring for:
88

9-
SUSE Observability supports [Open Telemetry](https://opentelemetry.io/docs/what-is-opentelemetry/). Open Telemetry is a set of standardized protocols and an open-source framework to collect, transform and ship telemetry data such as traces, metrics and logs. Open telemetry supports a wide variety of programming languages and platforms.
9+
* An application / workload running in cluster A
10+
* The Open Telemetry collector running near the observed application(s), so in cluster A, and sending the data to SUSE Observability
11+
* Using SUSE Observability running in cluster B, or SUSE Cloud Observability
1012

11-
SUSE Observability has support for both metrics and traces and adds the Open Telemetry metrics and traces to the (Kubernetes) topology data that is provided by the SUSE Observability agent. Therefore it is still needed to also install the SUSE Observability agent. Support for logs and using Open Telemetry without the SUSE Observability agent is coming soon.
13+
DIAGRAM...
1214

13-
Open Telemetry consists of several different components. For usage with SUSE Observability, the [SDKs](./languages/README.md) to instrument your application and the [Open Telemetry collector](./collector.md) are the most important parts. We'll show how to configure both for usage with SUSE Observability.
15+
## Install the Open Telemetry collector
1416

15-
If your application is already instrumented with Open Telemetry or with any other library that is supported by Open Telemetry, like Jaeger or Zipkin, the collector can be used to ship that data to SUSE Observability and no additional instrumentation is needed.
17+
First we'll install the collector in cluster A. It handles several tasks:
1618

17-
SUSE Observability requires the collector to be configured with specific processors and authentication to make sure all data used by SUSE Observability is available.
19+
* Enrich collected data with Kubernetes attributes
20+
* Sampling of traces
21+
* Forward the data to SUSE Observability, including authentication using the API key
1822

19-
## References
23+
To configure the collector you'll need the OTLP or OTLP over HTTP endpoint of SUSE Observability to be securely accessible. The SUSE Observability Helm chart allows you to set that up via an ingress configuration. If you didn't do that during installation now is the time to [add that ingress configuration](/setup/install-stackstate/kubernetes_openshift/ingress.md#configure-ingress-rule-for-open-telemetry). If you're using SUSE Cloud Observability these are the applicable URLs:
24+
* https://otel-<your-suse-observabillity>.app.stackstate.com - For the OTLP protocol
25+
* https://otel-http-<your-suse-observabillity>.app.stackstate.com - For OTLP over HTTP
2026

21-
* [Open Telemetry collector](https://opentelemetry.io/docs/collector/) on the Open Telemetry documentation
22-
* [SDKs to instrument your application](https://opentelemetry.io/docs/languages/) on the Open Telemetry documentation
27+
Follow the steps [here](collector.md) to get it up and running.
28+
29+
## Collect telemetry data from your application
30+
31+
The common way to collect telemetry data is to instrument your application using the Open Telemetry SDK's. We've documented some quick start guides for a few languages, but there are many more:
32+
* [Java](languages/java.md)
33+
* [.NET](languages/dot-net.md)
34+
* [Node.js](languages/node.js.md)
35+
36+
For other languages follow the documentation on [opentelemetry.io](https://opentelemetry.io/docs/languages/) and make sure to configure the SDK exporter to ship data to the collector you just installed by following [these instructions](languages/sdk-exporter-config.md).

setup/otel/overview.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@ The recommended setup for usage with SUSE Observability, is to instrument applic
1414

1515
Follow the [getting started](./getting-started.md) guide to set up everything such that it works best with SUSE Observability.
1616

17-
18-
1917
## References
2018

2119
* [Open Telemetry collector](https://opentelemetry.io/docs/collector/) on the Open Telemetry documentation

0 commit comments

Comments
 (0)