You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: docs/_edot-collector/index.md
-16
Original file line number
Diff line number
Diff line change
@@ -30,21 +30,5 @@ To request a component to be added to EDOT Collector, please submit a [github is
30
30
## Collector Limitations
31
31
The EDOT collector has some limitations which are mostly inherited from the upstream components, see the [full list](_edot-collector/edot-collector-limitations.md) here before troubleshooting.
32
32
33
-
## 🔧 Troubleshooting Quick Reference
34
-
35
-
***Check Logs**: Review the Collector’s logs for error messages.
36
-
***Validate Configuration:** Use the `--dry-run` option to test configurations.
37
-
* Enable Debug Logging: Run the Collector with `--log-level=debug` for detailed logs.
38
-
***Check Service Status:** Ensure the Collector is running with `systemctl status <collector-service>` (Linux) or `tasklist` (Windows).
39
-
***Test Connectivity:** Use `telnet <endpoint> <port>` or `curl` to verify backend availability.
40
-
***Check Open Ports:** Run netstat `-tulnp or lsof -i` to confirm the Collector is listening.
41
-
***Monitor Resource Usage:** Use top/htop (Linux) or Task Manager (Windows) to check CPU & memory.
42
-
***Validate Exporters:** Ensure exporters are properly configured and reachable.
43
-
***Verify Pipelines:** Use `otelctl` diagnose (if available) to check pipeline health.
44
-
***Check Permissions:** Ensure the Collector has the right file and network permissions.
45
-
***Review Recent Changes:** Roll back recent config updates if the issue started after changes.
46
-
47
-
For in-depth details on troubleshooting refer to the [OpenTelemetry Collector troubleshooting documentation](https://opentelemetry.io/docs/collector/troubleshooting/)
48
-
49
33
### 📄 License
50
34
View details of license for [EDOT Collector](https://github.com/elastic/elastic-agent/blob/main/LICENSE.txt).
Copy file name to clipboardexpand all lines: docs/_edot-collector/troubleshooting.md
+17-1
Original file line number
Diff line number
Diff line change
@@ -4,4 +4,20 @@ layout: default
4
4
nav_order: 6
5
5
---
6
6
7
-
# Troubleshooting the EDOT Collector
7
+
# Troubleshooting the EDOT Collector
8
+
9
+
## 🔧 Troubleshooting Quick Reference
10
+
11
+
***Check Logs**: Review the Collector’s logs for error messages.
12
+
***Validate Configuration:** Use the `--dry-run` option to test configurations.
13
+
* Enable Debug Logging: Run the Collector with `--log-level=debug` for detailed logs.
14
+
***Check Service Status:** Ensure the Collector is running with `systemctl status <collector-service>` (Linux) or `tasklist` (Windows).
15
+
***Test Connectivity:** Use `telnet <endpoint> <port>` or `curl` to verify backend availability.
16
+
***Check Open Ports:** Run netstat `-tulnp or lsof -i` to confirm the Collector is listening.
17
+
***Monitor Resource Usage:** Use top/htop (Linux) or Task Manager (Windows) to check CPU & memory.
18
+
***Validate Exporters:** Ensure exporters are properly configured and reachable.
19
+
***Verify Pipelines:** Use `otelctl` diagnose (if available) to check pipeline health.
20
+
***Check Permissions:** Ensure the Collector has the right file and network permissions.
21
+
***Review Recent Changes:** Roll back recent config updates if the issue started after changes.
22
+
23
+
For in-depth details on troubleshooting refer to the [OpenTelemetry Collector troubleshooting documentation](https://opentelemetry.io/docs/collector/troubleshooting/)
Copy file name to clipboardexpand all lines: docs/_edot-sdks/index.md
+32-2
Original file line number
Diff line number
Diff line change
@@ -4,6 +4,36 @@ layout: default
4
4
nav_order: 1
5
5
---
6
6
7
-
##EDOT Language SDKs
7
+
# EDOT Language SDKs
8
8
9
-
Put some content here
9
+
The Elastic Distributions of OpenTelemetry (EDOT) Language SDKs (aka. application agents) are thin wrappers around corresponding upstream [OpenTelemetry SDKs](https://opentelemetry.io/docs/languages/), preconfigured for best experience with Elastic Observability.
10
+
EDOT Language SDKs are fully compatible with and can be used as a drop in replacement for upstream OTel SDKs.
11
+
In addition, EDOT SDKs provide some popular, enterprise add-on features Elastic APM users might know from classic Elastic APM agents.
| Go |[Vanilla OTel Go SDK/API](https://opentelemetry.io/docs/languages/go/)|
35
+
| C++ |[Vanilla OTel C++ SDK/API](https://opentelemetry.io/docs/languages/cpp/)|
36
+
37
+
## Elastic Support for EDOT SDKs
38
+
39
+
Elastic provides technical support for EDOT Language SDKs according to Elastic's [Support Policy](https://www.elastic.co/support_policy). EDOT SDKs are meant to be used in combination with the [EDOT Collector](../edot-collector/index) or Elastic's managed OTLP endpoint (on Elastic Cloud Serverless) to ingest data into Elastic solutions from the EDOT SDKs. Other ingestion paths are not officially supported by Elastic.
# Instrumenting Java applications with EDOT SDKs on Kubernetes
10
10
11
-
This document focuses on instrumenting Java applications on Kubernetes, using the OpenTelemetry Operator, Elastic Distribution of OpenTelemetry (EDOT) Collectors, and the [EDOT Java](https://github.com/elastic/elastic-otel-java) SDK.
11
+
This document focuses on instrumenting Java applications on Kubernetes, using the OpenTelemetry Operator, Elastic Distribution of OpenTelemetry (EDOT) Collectors, and the EDOT Java SDK.
12
12
13
-
- For general knowledge about the EDOT Java SDK, refer to the [getting started guide](https://github.com/elastic/elastic-otel-java/blob/main/docs/get-started.md).
13
+
- For general knowledge about the EDOT Java SDK, refer to the [EDOT Java Intro page](../index).
14
14
- For Java auto-instrumentation specifics, refer to [OpenTelemetry Operator Java auto-instrumentation](https://opentelemetry.io/docs/kubernetes/operator/automatic/#java).
15
-
- For general information about instrumenting applications on kubernetes, refer to [instrumenting applications](./instrumenting-applications.md).
15
+
- For general information about instrumenting applications on kubernetes, refer to [instrumenting applications on Kubernetes](../../../use-cases/kubernetes/instrumenting-applications).
16
16
17
17
## Java agent extensions consideration
18
18
@@ -30,134 +30,134 @@ In this example, you'll learn how to:
30
30
31
31
For this example, we assume the application you're instrumenting is a deployment named `java-app` running in the `java-ns` namespace.
32
32
33
-
1. Ensure you have successfully [installed the OpenTelemetry Operator](./README.md), and confirm that the following `Instrumentation` object exists in the system:
33
+
1. Ensure you have successfully [installed the OpenTelemetry Operator](../../../use-cases/kubernetes/deployment), and confirm that the following `Instrumentation` object exists in the system:
34
34
35
-
```bash
36
-
$ kubectl get instrumentation -n opentelemetry-operator-system
> If your `Instrumentation` object has a different name or is created in a different namespace, you will have to adapt the annotation value in the next step.
41
+
{: .note }
42
+
> If your `Instrumentation` object has a different name or is created in a different namespace, you will have to adapt the annotation value in the next step.
43
43
44
44
2. Enable auto-instrumentation of your Java application using one of the following methods:
45
45
46
-
- Edit your application workload definition and include the annotation under `spec.template.metadata.annotations`:
46
+
- Edit your application workload definition and include the annotation under `spec.template.metadata.annotations`:
- The Pod has an `EmptyDir` volume named `opentelemetry-auto-instrumentation-java` mounted in both the main and the init containers in path `/otel-auto-instrumentation-java`.
128
-
129
-
```bash
130
-
Init Containers:
131
-
opentelemetry-auto-instrumentation-java:
132
-
...
133
-
Mounts:
134
-
/otel-auto-instrumentation-java from opentelemetry-auto-instrumentation-java (rw)
135
-
Containers:
136
-
java-app:
137
-
...
138
-
Mounts:
139
-
/otel-auto-instrumentation-java from opentelemetry-auto-instrumentation-java (rw)
140
-
...
141
-
Volumes:
142
-
...
143
-
opentelemetry-auto-instrumentation-java:
144
-
Type: EmptyDir (a temporary directory that shares a pod's lifetime)
145
-
```
146
-
147
-
Ensure the environment variable `OTEL_EXPORTER_OTLP_ENDPOINT` points to a valid endpoint and there's network communication between the Pod and the endpoint.
77
+
4. Verify the [auto-instrumentation resources](../../../use-cases/kubernetes/instrumenting-applications#how-auto-instrumentation-works) are injected in the Pod:
78
+
79
+
Run a `kubectl describe` of one of your application Pods and check:
80
+
81
+
- There should be an init container named `opentelemetry-auto-instrumentation-java`in the Pod:
82
+
83
+
```bash
84
+
$ kubectl describe pod java-app-8d84c47b8-8h5z2 -n java-ns
- The Pod has an `EmptyDir` volume named `opentelemetry-auto-instrumentation-java` mounted in both the main and the init containers in path `/otel-auto-instrumentation-java`.
128
+
129
+
```bash
130
+
Init Containers:
131
+
opentelemetry-auto-instrumentation-java:
132
+
...
133
+
Mounts:
134
+
/otel-auto-instrumentation-java from opentelemetry-auto-instrumentation-java (rw)
135
+
Containers:
136
+
java-app:
137
+
...
138
+
Mounts:
139
+
/otel-auto-instrumentation-java from opentelemetry-auto-instrumentation-java (rw)
140
+
...
141
+
Volumes:
142
+
...
143
+
opentelemetry-auto-instrumentation-java:
144
+
Type: EmptyDir (a temporary directory that shares a pod's lifetime)
145
+
```
146
+
147
+
Ensure the environment variable `OTEL_EXPORTER_OTLP_ENDPOINT` points to a valid endpoint and there's network communication between the Pod and the endpoint.
148
148
149
149
5. Confirm data is flowing to **Kibana**:
150
150
151
-
- Open **Observability** -> **Applications** -> **Service inventory**, and determine if:
152
-
- The application appears in the list of services.
153
-
- The application shows transactions and metrics.
151
+
- Open **Observability** ->**Applications** ->**Service inventory**, and determine if:
152
+
- The application appears in the list of services.
153
+
- The application shows transactions and metrics.
154
154
155
-
- For application container logs, open **Kibana Discover** and filter for your Pods' logs. In the provided example, we could filter for them with either of the following:
156
-
- `k8s.deployment.name: "java-app"` (**adapt the query filter to your use case**)
157
-
- `k8s.pod.name: java-app*` (**adapt the query filter to your use case**)
155
+
- For application container logs, open **Kibana Discover** and filter for your Pods' logs. In the provided example, we could filter for them with either of the following:
156
+
- `k8s.deployment.name: "java-app"` (**adapt the query filter to your use case**)
157
+
- `k8s.pod.name: java-app*` (**adapt the query filter to your use case**)
158
158
159
-
Note that the container logs are not provided by the instrumentation library, but by the DaemonSet collector deployed as part of the [operator installation](./README.md).
159
+
Note that the container logs are not provided by the instrumentation library, but by the DaemonSet collector deployed as part of the [operator installation](../../../use-cases/kubernetes/deployment).
160
160
161
161
## Troubleshooting
162
162
163
-
- Refer to [troubleshoot auto-instrumentation](./troubleshoot-auto-instrumentation.md) for further analysis.
163
+
Refer to [troubleshoot auto-instrumentation](../../../use-cases/kubernetes/instrumenting-applications#troubleshooting-auto-instrumentation) for further analysis.
0 commit comments