diff --git a/content/en/conf24/1-zero-config-k8s/1-architecture/_index.md b/content/en/conf24/1-zero-config-k8s/1-architecture/_index.md index 6f0b3d1546..0817c15526 100644 --- a/content/en/conf24/1-zero-config-k8s/1-architecture/_index.md +++ b/content/en/conf24/1-zero-config-k8s/1-architecture/_index.md @@ -5,11 +5,11 @@ weight: 2 time: 5 minutes --- -The diagram below details the architecture of the Spring PetClinic Java application running in Kubernetes with the Splunk OpenTelemetry Operator and Auto Instrumentation enabled. +The diagram below details the architecture of the Spring PetClinic Java application running in Kubernetes with the Splunk OpenTelemetry Operator and automatic discovery and configuration enabled. The Spring PetClinic Java application is a simple microservices application that consists of a frontend and backend services. The frontend service is a Spring Boot application that serves a web interface to interact with the backend services. The backend services are Spring Boot applications that serve RESTful API's to interact with a MySQL database. -By the end of this workshop, you will have a better understanding of how to enable **Splunk OpenTelemetry Zero Configuration Auto Instrumentation** for your Java-based applications running in Kubernetes. +By the end of this workshop, you will have a better understanding of how to enable **Splunk OpenTelemetry automatic discovery and configuration** for your Java-based applications running in Kubernetes. ![Splunk Otel Architecture](../images/auto-instrumentation-java-diagram.png) diff --git a/content/en/conf24/1-zero-config-k8s/2-preparation/1-otel.md b/content/en/conf24/1-zero-config-k8s/2-preparation/1-otel.md index 71d910dd9f..116c0a9672 100644 --- a/content/en/conf24/1-zero-config-k8s/2-preparation/1-otel.md +++ b/content/en/conf24/1-zero-config-k8s/2-preparation/1-otel.md @@ -32,9 +32,9 @@ Update Complete. ⎈Happy Helming!⎈ {{% /tab %}} {{< /tabs >}} -**Splunk Observability Cloud** offers wizards in the UI to walk you through the setup of the OpenTelemetry Collector on Kubernetes, but in the interest of time, we will use the Helm command below. Some additional parameters are set to enable the operator and Zero Configuration Auto Instrumentation. +**Splunk Observability Cloud** offers wizards in the UI to walk you through the setup of the OpenTelemetry Collector on Kubernetes, but in the interest of time, we will use the Helm command below. Some additional parameters are set to enable the operator and automatic discovery and configuration. -* `--set="operator.enabled=true"` - this will install the Opentelemetry operator that will be used to handle Auto Instrumentation. +* `--set="operator.enabled=true"` - this will install the Opentelemetry operator that will be used to handle automatic discovery and configuration. * `--set="certmanager.enabled=true"` - this will install the required certificate manager for the operator. * `--set="splunkObservability.profilingEnabled=true"` - this enables Code Profiling via the operator. diff --git a/content/en/conf24/1-zero-config-k8s/2-preparation/2-petclinic.md b/content/en/conf24/1-zero-config-k8s/2-preparation/2-petclinic.md index 89c3b67ff7..f72527ff62 100644 --- a/content/en/conf24/1-zero-config-k8s/2-preparation/2-petclinic.md +++ b/content/en/conf24/1-zero-config-k8s/2-preparation/2-petclinic.md @@ -84,7 +84,7 @@ Once they are running, the application will take a few minutes to fully start up #### Verify the local Private Registry -Later on, when we test our **Zero Configuration Auto Instrumentation** we are going to build new containers to highlight some of the additional features of Splunk Observability Cloud. +Later on, when we test our **automatic discovery and configuration** we are going to build new containers to highlight some of the additional features of Splunk Observability Cloud. As configuration files and source code will be changed, the containers will need to be built and stored in a local private registry (which has already been enabled for you). diff --git a/content/en/conf24/1-zero-config-k8s/4-zero-config/1-zero-config.md b/content/en/conf24/1-zero-config-k8s/4-zero-config/1-zero-config.md index 6ea801f1a6..8fc8b3192d 100644 --- a/content/en/conf24/1-zero-config-k8s/4-zero-config/1-zero-config.md +++ b/content/en/conf24/1-zero-config-k8s/4-zero-config/1-zero-config.md @@ -1,10 +1,10 @@ --- -title: Zero Configuration Setup -linkTitle: 1. Zero Configuration Setup +title: Automatic Discovery and Configuration +linkTitle: 1. Automatic Discovery and Configuration weight: 1 --- -To see how Zero Configuration works with a single pod we will patch the `api-gateway`. Once patched, the OpenTelemetry Collector will inject the Auto Instrumentation library and the Pod will be restarted in order to start sending traces and profiling data. To show what happens when you enable Auto Instrumentation, let's do a *before and after* of the configuration: +To see how automatic discovery and configuration works with a single pod we will patch the `api-gateway`. Once patched, the OpenTelemetry Collector will inject the automatic discovery and configuration library and the Pod will be restarted in order to start sending traces and profiling data. To show what happens when you enable automatic discovery and configuration, let's do a *before and after* of the configuration: {{< tabs >}} {P}{{% tab title="Describe api-gateway" %}} @@ -23,7 +23,7 @@ Image: quay.io/phagen/spring-petclinic-api-gateway:0.0.2 {{% /tab %}} {{< /tabs >}} -This container was pulled from a remote repository `quay.io` and was not built to send traces to **Splunk Observability Cloud**. To enable the Java auto instrumentation on the api-gateway service add the `inject-java` annotation to Kubernetes with the `kubectl patch deployment` command. +This container was pulled from a remote repository `quay.io` and was not built to send traces to **Splunk Observability Cloud**. To enable the Java automatic discovery and configuration on the api-gateway service add the `inject-java` annotation to Kubernetes with the `kubectl patch deployment` command. {{< tabs >}} {{% tab title="Patch api-gateway" %}} @@ -90,6 +90,6 @@ deployment.apps/api-gateway patched (no change) {{% /tab %}} {{< /tabs >}} -Navigate back to the Kubernetes Navigator in **Splunk Observability Cloud**. After a couple of minutes you will see that the Pods are being restarted by the operator and the Zero config container will be added. This will look similar to the screenshot below: +Navigate back to the Kubernetes Navigator in **Splunk Observability Cloud**. After a couple of minutes you will see that the Pods are being restarted by the operator and the automatic discovery and configuration container will be added. This will look similar to the screenshot below: ![restart](../../images/k8s-navigator-restarted-pods.png) diff --git a/content/en/conf24/1-zero-config-k8s/4-zero-config/_index.md b/content/en/conf24/1-zero-config-k8s/4-zero-config/_index.md index 41a29cccc3..af523af91e 100644 --- a/content/en/conf24/1-zero-config-k8s/4-zero-config/_index.md +++ b/content/en/conf24/1-zero-config-k8s/4-zero-config/_index.md @@ -1,15 +1,15 @@ --- -title: Setting up Zero configuration Auto instrumentation for APM -linkTitle: 4. Auto Instrumentation & Metrics +title: Setting up automatic discovery and configuration for APM +linkTitle: 4. automatic discovery and configuration & Metrics weight: 5 time: 10 minutes --- -In this section we will enable **Zero Configuration Auto Instrumentation** for the Java services running in Kubernetes. This means that the OpenTelemetry Collector will look for Pod annotations that indicate that the Java application should be instrumented with the Splunk OpenTelemetry Java agent. This will allow us to get traces, spans, and profiling data from the Java services running on the cluster. +In this section we will enable **automatic discovery and configuration** for the Java services running in Kubernetes. This means that the OpenTelemetry Collector will look for Pod annotations that indicate that the Java application should be instrumented with the Splunk OpenTelemetry Java agent. This will allow us to get traces, spans, and profiling data from the Java services running on the cluster. -{{% notice title="Zero Configuration Auto Instrumentation" style="note" %}} +{{% notice title="automatic discovery and configuration" style="note" %}} -It is important to understand that Zero Configuration Auto Instrumentation is designed to get **trace, span & profiling** data out of your application, without requiring code changes or recompilation. +It is important to understand that automatic discovery and configuration is designed to get **trace, span & profiling** data out of your application, without requiring code changes or recompilation. This is a great way to get started with APM, but it is **not** a replacement for manual instrumentation. Manual instrumentation allows you to add custom spans, tags, and logs to your application, which can provide more context and detail to your traces. diff --git a/content/en/conf24/1-zero-config-k8s/5-traces/2-spans.md b/content/en/conf24/1-zero-config-k8s/5-traces/2-spans.md index 4d83741b6a..b3564de8d1 100644 --- a/content/en/conf24/1-zero-config-k8s/5-traces/2-spans.md +++ b/content/en/conf24/1-zero-config-k8s/5-traces/2-spans.md @@ -4,7 +4,7 @@ linkTitle: 2. APM Spans weight: 2 --- -While we examine our spans, let's look at several features that you get out of the box without code modifications when using **Zero Configuration Auto Instrumentation** on top of tracing: +While we examine our spans, let's look at several features that you get out of the box without code modifications when using **automatic discovery and configuration** on top of tracing: Due to the fact there are several different routes First, in the Waterfall Pane, make sure the `customers-service:SELECT petclinic.owners` or similar span is selected as shown in the screenshot below: @@ -14,7 +14,7 @@ First, in the Waterfall Pane, make sure the `customers-service:SELECT petclinic. * The basic latency information is shown as a bar for the instrumented function or call, in our example, it took 6.3 Milliseconds. * Several similar Spans **(1**)**, are only visible if the span is repeated multiple times. In this case, there are 10 repeats in our example. (You can show/hide them all by clicking on the `10x` and all spans will show in order) * Inferred Services, Calls done to external systems that are not instrumented, show up as a gray 'inferred' span. The Inferred Service or span in our case here is a call to the Mysql Database `mysql:petclinic SELECT petclinic` **(2)** as shown below our selected span. -* Span Tags in the Tag Pane, standard tags produced by the auto instrumentation agent. In this case, the span is calling a Database, so it includes the `db.statement` tag **(3)**. This tag will hold the DB query statement and is used by the Database call performed during this span. This will be used by the DB-Query Performance feature. We look at DB-Query Performance in the next section. +* Span Tags in the Tag Pane, standard tags produced by the automatic discovery and configuration. In this case, the span is calling a Database, so it includes the `db.statement` tag **(3)**. This tag will hold the DB query statement and is used by the Database call performed during this span. This will be used by the DB-Query Performance feature. We look at DB-Query Performance in the next section. * Always-on Profiling, **IF** the system is configured to, and has captured Profiling data during a Spans life cycle, it will show the number of Call Stacks captured in the Spans timeline. (15 Call Stacks for the `customers-service:SELECT petclinic.`owners` Span shown above). We will look at Profiling in the next section.