Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion content/en/docs/zero-code/obi/cilium-compatibility.md
Original file line number Diff line number Diff line change
Expand Up @@ -299,7 +299,7 @@ data:
- k8s_deployment_name: "ruby-service"
trace_printer: text
ebpf:
enable_context_propagation: true
context_propagation: all
traffic_control_backend: tcx
disable_blackbox_cp: true
track_request_headers: true
Expand Down
91 changes: 43 additions & 48 deletions content/en/docs/zero-code/obi/configure/export-data.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,49 @@

OBI can export OpenTelemetry metrics and traces to a OTLP endpoint.

## Common metrics configuration

YAML section: `metrics`.

The `metrics` section contains the common configuration for the OpenTelemetry
metrics and traces exporters.

It currently supports selecting the different sets of metrics to export.

Example:

```yaml
metrics:
features: ['network', 'network_inter_zone']
```
| YAML<br>environment variable | Description | Type | Default |
|------------------------------------------------------------------------------------------| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------- | --------------------------- |
| `features`<br>`OTEL_EBPF_METRICS_FEATURES` | The list of metric groups OBI exports data for, refer to [metrics export features](#metrics-export-features). Accepted values `application`, `application_span`, `application_host`, `application_service_graph`, `network` and `network_inter_zone`. | list of strings | `["application"]` |

### Metrics export features

The OBI metrics exporter can export the following metrics data groups for
processes matching entries in the [metrics discovery](./) configuration.

- `application`: Application-level metrics
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- `application`: Application-level metrics
- `application`: Application-level metrics.

- `application_host`: Application-level host metrics for host-based pricing.
- `application_span`: Application-level trace span metrics in legacy format
(like `traces_spanmetrics_latency`, `spanmetrics` is not separate).

Check warning on line 40 in content/en/docs/zero-code/obi/configure/export-data.md

View workflow job for this annotation

GitHub Actions / SPELLING check

Unknown word (spanmetrics) Suggestions: (scanmetric, spinmetric, spalmetric, spaymetric, psnametries)

Check warning on line 40 in content/en/docs/zero-code/obi/configure/export-data.md

View workflow job for this annotation

GitHub Actions / SPELLING check

Unknown word (spanmetrics) Suggestions: (scanmetric, spinmetric, spalmetric, spaymetric, psnametries)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can add this line to the front matter of this page. (I'd leave a suggestion there, but it's outside the commentable range.)

cSpell:ignore: spanmetrics

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
(like `traces_spanmetrics_latency`, `spanmetrics` is not separate).
(like `traces_spanmetrics_latency`); `spanmetrics` is not separate.

- `application_span_otel`: Application-level trace span metrics in OpenTelemetry
format (like `traces_span_metrics_calls_total`), `span_metrics` is separate.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
format (like `traces_span_metrics_calls_total`), `span_metrics` is separate.
format (like `traces_span_metrics_calls_total`); `span_metrics` is separate.

- `application_span_sizes`: Application-level trace span metrics reporting information
about request and response sizes.
- `application_service_graph`: Application-level service graph metrics. It's
recommended to use a DNS for service discovery and to ensure the DNS names
match the OpenTelemetry service names OBI uses. In Kubernetes environments,
the OpenTelemetry service name set by the service name discovery is the best
choice for service graph metrics.
- `network`: Network-level metrics, refer to the
[network metrics](../../network) configuration documentation to learn more
- `network_inter_zone`: Network inter-zone metrics, refer to the
[network metrics](../../network/) configuration documentation to learn more
Comment on lines +51 to +53
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
[network metrics](../../network) configuration documentation to learn more
- `network_inter_zone`: Network inter-zone metrics, refer to the
[network metrics](../../network/) configuration documentation to learn more
[network metrics](../../network) configuration documentation to learn more.
- `network_inter_zone`: Network inter-zone metrics, refer to the
[network metrics](../../network/) configuration documentation to learn more.


## OpenTelemetry metrics exporter component

YAML section: `otel_metrics_export`
Expand All @@ -31,7 +74,6 @@
ttl: 5m
endpoint: http://otelcol:4318
protocol: grpc
features: ['network', 'network_inter_zone']
buckets:
duration_histogram: [0, 1, 2]
histogram_aggregation: base2_exponential_bucket_histogram
Expand All @@ -45,7 +87,6 @@
| `OTEL_EXPORTER_OTLP_PROTOCOL` | Similar to the shared endpoint, the protocol for metrics and traces. | string | Inferred from port usage |
| `insecure_skip_verify`<br>`OTEL_EBPF_INSECURE_SKIP_VERIFY` | If `true`, OBI skips verifying and accepts any server certificate. Only override this setting for non-production environments. | boolean | `false` |
| `interval`<br>`OTEL_EBPF_METRICS_INTERVAL` | The duration between exports. | Duration | `60s` |
| `features`<br>`OTEL_EBPF_METRICS_FEATURES` | The list of metric groups OBI exports data for, refer to [metrics export features](#metrics-export-features). Accepted values `application`, `application_span`, `application_host`, `application_service_graph`, `application_process`, `network` and `network_inter_zone`. | list of strings | `["application"]` |
| `allow_service_graph_self_references`<br>`OTEL_EBPF_ALLOW_SERVICE_GRAPH_SELF_REFERENCES` | Controls if OBI includes self-referencing services in service graph generation, for example a service that calls itself. Self referencing reduces service graph usefulness and increases data cardinality. | boolean | `false` |
| `instrumentations`<br>`OTEL_EBPF_METRICS_INSTRUMENTATIONS` | The list of metrics instrumentation OBI collects data for, refer to [metrics instrumentation](#metrics-instrumentation) section. | list of strings | `["*"]` |
| `buckets` | Sets how you can override bucket boundaries of diverse histograms, refer to [override histogram buckets](../metrics-histograms/). | (n/a) | Object |
Expand All @@ -59,26 +100,6 @@
- `http/protobuf`: if the port ends in `4318`, for example `4318`, `14318`, or
`24318`.

### Metrics export features

The OBI metrics exporter can export the following metrics data groups for
processes matching entries in the [metrics discovery](./) configuration.

- `application`: Application-level metrics
- `application_span` Application-level trace span metrics
- `application_host` Application-level host metrics for host based pricing
- `application_service_graph`: Application-level service graph metrics. It's
recommended to use a DNS for service discovery and to ensure the DNS names
match the OpenTelemetry service names OBI uses. In Kubernetes environments,
the OpenTelemetry service name set by the service name discovery is the best
choice for service graph metrics.
- `application_process`: Metrics about the processes that runs the instrumented
application
- `network`: Network-level metrics, refer to the
[network metrics](../../network) configuration documentation to learn more
- `network_inter_zone`: Network inter-zone metrics, refer to the
[network metrics](../../network/) configuration documentation to learn more

### Metrics instrumentation

The list of instrumentation areas OBI can collection data from:
Expand Down Expand Up @@ -160,12 +181,6 @@
buckets:
request_size_histogram: [0, 10, 20, 22]
response_size_histogram: [0, 10, 20, 22]
features:
- application
- network
- application_process
- application_span
- application_service_graph
instrumentations: ["http, "sql"]
```

Expand All @@ -176,7 +191,6 @@
| `extra_resource_attributes`<br>`OTEL_EBPF_PROMETHEUS_EXTRA_RESOURCE_ATTRIBUTES` | A list of additional resource attributes to be added to the reported `target_info` metric. Refer to [extra resource attributes](#prometheus-extra-resource-attributes) for important details about runtime discovered attributes. | list of strings | |
| `ttl`<br>`OTEL_EBPF_PROMETHEUS_TTL` | The duration after which metric instances are not reported if they haven't been updated. Used to avoid reporting indefinitely finished application instances. | Duration | `5m` |
| `buckets` | Sets how you can override bucket boundaries of diverse histograms, refer to [override histogram buckets](../metrics-histograms/). | Object | |
| `features`<br>`OTEL_EBPF_PROMETHEUS_FEATURES` | The list of metric groups OBI exports data for, refer to [Prometheus export features](#prometheus-export-features). | list of strings | `["application"]` |
| `allow_service_graph_self_references`<br>`OTEL_EBPF_PROMETHEUS_ALLOW_SERVICE_GRAPH_SELF_REFERENCES` | Does OBI include self-referencing service in service graph generation. Self referencing isn't useful for service graphs and increases data cardinality. | boolean | `false` |
| `instrumentations`<br>`OTEL_EBPF_PROMETHEUS_INSTRUMENTATIONS` | The list of instrumentation OBI collects data for, refer to [Prometheus instrumentation](#prometheus-instrumentation) section. | list of strings | `["*"]` |

Expand All @@ -198,25 +212,6 @@
To make `deployment_environment` visible in Prometheus, you need to add it to
the `extra_resource_attributes` list.

### Prometheus export features

The Prometheus metrics exporter can export the following metrics data groups:

- `application`: Application-level metrics
- `application_span`: Application-level trace span metrics
- `application_host` Application-level host metrics for host based pricing
- `application_service_graph`: Application-level service graph metrics. It's
recommended to use a DNS for service discovery and to ensure the DNS names
match the OpenTelemetry service names OBI uses. In Kubernetes environments,
the OpenTelemetry service name set by the service name discovery is the best
choice for service graph metrics.
- `application_process`: Metrics about the processes that runs the instrumented
application
- `network`: Network-level metrics, refer to the
[network metrics](../../network/) configuration documentation to learn more
- `network_inter_zone`: Network inter-zone metrics, refer to the
[network metrics](../../network/) configuration documentation to learn more

### Prometheus instrumentation

The list of instrumentation areas OBI can collection data from:
Expand Down
8 changes: 4 additions & 4 deletions content/en/docs/zero-code/obi/network/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ endpoints, from the application point of view.
- `obi.network.flow.bytes`, if it is exported via OpenTelemetry.
- `obi_network_flow_bytes_total`, if it is exported by a Prometheus endpoint.
- To enable it, add the `network` option to the
[OBI_OTEL_METRICS_FEATURES or OBI_PROMETHEUS_FEATURES](../configure/export-data/)
[OTEL_EBPF_METRICS_FEATURES](../configure/export-data/)
configuration option.

**Inter-zone metrics**: capture the bytes sent and received between different
Expand All @@ -36,7 +36,7 @@ availability zones, from the application point of view.
- `obi_network_inter_zone_bytes_total`, if it is exported by a Prometheus
endpoint.
- To enable it, add the `network` option to the
[OBI_OTEL_METRICS_FEATURES or OBI_PROMETHEUS_FEATURES](../configure/export-data/)
[OTEL_EBPF_METRICS_FEATURES](../configure/export-data/)
configuration option.

{{< alert type="note" >}} The metrics are captured from the host perspective, so
Expand Down Expand Up @@ -73,7 +73,7 @@ Network metrics are labeled with the following attributes:
| `k8s.dst.owner.type` / `k8s_dst_owner_type` | Destination workload owner type: `replicaset`, `deployment`, `statefulset`, `daemonset`, `job`, `cronjob`, `node` |
| `k8s.dst.node.ip` / `k8s_dst_node_ip` | Destination node IP address |
| `k8s.dst.node.name` / `k8s_dst_node_name` | Destination node name |
| `k8s.cluster.name` / `k8s_cluster_name` | Name of the Kubernetes cluster. OBI can auto-detect it on Google Cloud, Microsoft Azure, and Amazon Web Services. For other providers, set the `OBI_KUBE_CLUSTER_NAME` property |
| `k8s.cluster.name` / `k8s_cluster_name` | Name of the Kubernetes cluster. OBI can auto-detect it on Google Cloud, Microsoft Azure, and Amazon Web Services. For other providers, set the `OTEL_EBPF_KUBE_CLUSTER_NAME` property |

## Metric reduction

Expand Down Expand Up @@ -125,7 +125,7 @@ You can configure OBI to also break down metrics by CIDR ranges. This is useful
for tracking traffic to specific network ranges, such as cloud provider IP
ranges, or internal/external traffic.

The `cidrs` YAML subsection in `network` (or the `OBI_NETWORK_CIDRS` environment
The `cidrs` YAML subsection in `network` (or the `OTEL_EBPF_NETWORK_CIDRS` environment
variable) accepts a list of CIDR ranges, and the corresponding name. For
example:

Expand Down
10 changes: 5 additions & 5 deletions content/en/docs/zero-code/obi/network/inter-az.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,14 +53,14 @@ Using a separate metric for inter-zone traffic reduces the metric cardinality
impact of collecting this data, because the `src.zone` and `dst.zone` attributes
are not added to the regular network metrics.

To enable the `obi.network.inter.zone` metric, add the `network_inter_zone`
option to the
[OTEL_EBPF_METRICS_FEATURES or OTEL_EBPF_PROMETHEUS_FEATURES](../../configure/export-data/)
configuration option, or its equivalent YAML options. For example, if OBI is
To enable the `obi.network.inter.zone` metric, add the
`network_inter_zone` option to the
[OTEL_EBPF_METRICS_FEATURES](../../configure/export-data/)
configuration option, or its equivalent YAML option. For example, if OBI is
configured to export metrics via OpenTelemetry:

```yaml
otel_metrics_export:
metrics:
features:
- network
- network_inter_zone
Expand Down
8 changes: 4 additions & 4 deletions content/en/docs/zero-code/obi/network/quickstart.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ To enable network metrics, set the following option in your OBI configuration:
Environment variables:

```bash
export OBI_NETWORK_METRICS=true
export OTEL_EBPF_NETWORK_METRICS=true
```

Network metrics requires metrics to be decorated with Kubernetes metadata. To
Expand All @@ -34,7 +34,7 @@ enable this feature, set the following option in your OBI configuration:
Environment variables:

```bash
export OBI_KUBE_METADATA_ENABLE=true
export OTEL_EBPF_KUBE_METADATA_ENABLE=true
```

For more configuration options, refer to the
Expand Down Expand Up @@ -99,7 +99,7 @@ spec:
- mountPath: /config
name: obi-config
env:
- name: OBI_CONFIG_PATH
- name: OTEL_EBPF_CONFIG_PATH
value: '/config/obi-config.yml'
```

Expand Down Expand Up @@ -182,7 +182,7 @@ You can configure OBI to also break down metrics by CIDR ranges. This is useful
for tracking traffic to specific network ranges, such as cloud provider IP
ranges, or internal/external traffic.

The `cidrs` YAML subsection in `network` (or the `OBI_NETWORK_CIDRS` environment
The `cidrs` YAML subsection in `network` (or the `OTEL_EBPF_NETWORK_CIDRS` environment
variable) accepts a list of CIDR ranges, and the corresponding name.

For example, to track metrics by predefined networks:
Expand Down
10 changes: 5 additions & 5 deletions content/en/docs/zero-code/obi/security.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ time=2025-01-27T17:21:20.197-06:00 level=WARN msg="Required system capabilities
OBI then attempts to continue running, but missing capabilities may lead to
errors later on.

You can set `OBI_ENFORCE_SYS_CAPS=1`, which causes OBI to fail immediately if
You can set `OTEL_EBPF_ENFORCE_SYS_CAPS=1`, which causes OBI to fail immediately if
the required capabilities are not available.

## List of capabilities required by OBI
Expand Down Expand Up @@ -188,7 +188,7 @@ Set the required capabilities and start OBI:

```shell
sudo setcap cap_bpf,cap_net_raw+ep ./bin/obi
OBI_NETWORK_METRICS=1 OBI_NETWORK_PRINT_FLOWS=1 bin/obi
OTEL_EBPF_NETWORK_METRICS=1 OTEL_EBPF_NETWORK_PRINT_FLOWS=1 bin/obi
```

### Network metrics via traffic control
Expand All @@ -203,7 +203,7 @@ Set the required capabilities and start OBI:

```shell
sudo setcap cap_bpf,cap_net_admin,cap_perfmon+ep ./bin/obi
OBI_NETWORK_METRICS=1 OBI_NETWORK_PRINT_FLOWS=1 OBI_NETWORK_SOURCE=tc bin/obi
OTEL_EBPF_NETWORK_METRICS=1 OTEL_EBPF_NETWORK_PRINT_FLOWS=1 OTEL_EBPF_NETWORK_SOURCE=tc bin/obi
```

### Application observability
Expand All @@ -221,7 +221,7 @@ Set the required capabilities and start OBI:

```shell
sudo setcap cap_bpf,cap_dac_read_search,cap_perfmon,cap_net_raw,cap_sys_ptrace+ep ./bin/obi
OBI_OPEN_PORT=8080 OBI_TRACE_PRINTER=text bin/obi
OTEL_EBPF_OPEN_PORT=8080 OTEL_EBPF_TRACE_PRINTER=text bin/obi
```

### Application observability with trace context propagation
Expand All @@ -240,7 +240,7 @@ Set the required capabilities and start OBI:

```shell
sudo setcap cap_bpf,cap_dac_read_search,cap_perfmon,cap_net_raw,cap_sys_ptrace,cap_net_admin+ep ./bin/obi
OBI_ENABLE_CONTEXT_PROPAGATION=all OBI_OPEN_PORT=8080 OBI_TRACE_PRINTER=text bin/obi
OTEL_EBPF_CONTEXT_PROPAGATION=all OTEL_EBPF_OPEN_PORT=8080 OTEL_EBPF_TRACE_PRINTER=text bin/obi
```

## Internal eBPF tracer capability requirement reference
Expand Down
Loading