Skip to content

Commit 2373170

Browse files
authored
Merge branch 'main' into fix-path-zero-code-instrumentation
2 parents c43e622 + 8da0445 commit 2373170

File tree

60 files changed

+667
-84
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+667
-84
lines changed

.gitmodules

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1+
# cSpell:ignore docsy javaexamples
12
[submodule "themes/docsy"]
23
path = themes/docsy
34
url = https://github.com/google/docsy.git
4-
docsy-pin = v0.11.0-2-g68aa7b3
5+
docsy-pin = v0.11.0-22-g2f361b2b
56
docsy-note = "2024-04-01 Switching to google/docsy.git from cncf/docsy.git since we don't have any CNCF customizations."
67
docsy-reminder = "Ensure that any tag referenced by `docsy-pin` is present in the remote repo (url), otherwise add (push) the tags to the repo."
78
[submodule "content-modules/opentelemetry-specification"]

.htmltest.yml

+2
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ IgnoreDirs:
1010
# DO NOT EDIT! IgnoreDirs list is auto-generated from markdown file front matter.
1111
# Ignore blog index pages for all locales and in all blog sections (top-level and years)
1212
- ^(../)?blog/(\d+/)?page/\d+
13+
# Ignore old blog posts
14+
- ^(../)?blog/20(19|21|22|23)/
1315
# TODO drop next lines after https://github.com/open-telemetry/opentelemetry.io/issues/5555 is fixed for these pages:
1416
- ^zh/docs/concepts/signals/baggage/
1517
- ^zh/docs/zero-code/php/

content/en/blog/2023/otel-arrow/index.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ aligning OpenTelemetry more closely with modern data pipelines that are
140140
increasingly pivoting towards Apache Arrow.
141141

142142
A specification for this protocol (OTEP 0156) can be found
143-
[here](https://github.com/open-telemetry/oteps/blob/main/text/0156-columnar-encoding.md).
143+
[here](https://github.com/open-telemetry/opentelemetry-specification/blob/main/oteps/0156-columnar-encoding.md).
144144
A reference implementation of the encoding/decoding function can be accessed
145145
[here](https://github.com/open-telemetry/otel-arrow).
146146

@@ -269,7 +269,7 @@ invaluable assistance.
269269
## Links
270270

271271
- OpenTelemetry Protocol with Apache Arrow Specification -
272-
[OTEP 0156](https://github.com/open-telemetry/oteps/blob/main/text/0156-columnar-encoding.md)
272+
[OTEP 0156](https://github.com/open-telemetry/opentelemetry-specification/blob/main/oteps/0156-columnar-encoding.md)
273273
- OpenTelemetry Protocol with Apache Arrow (encoder/decoder)
274274
[repository](https://github.com/open-telemetry/otel-arrow).
275275
- Receiver
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
---
2+
title: OpenTelemetry Collector Completes Fuzzing Audit
3+
linkTitle: Fuzzing Audit Results
4+
date: 2024-12-20
5+
author: '[Adam Korczynski](https://github.com/AdamKorcz)'
6+
issue: 5798
7+
sig: GC
8+
cSpell:ignore: containerd Korczynski
9+
---
10+
11+
OpenTelemetry is happy to announce the completion of the Collector's fuzzing
12+
audit [sponsored by the CNCF] and carried out by
13+
[Ada Logics](https://adalogics.com/). The audit marks a significant step in the
14+
OpenTelemetry project, ensuring the security and reliability of the Collector
15+
for its users.
16+
17+
[sponsored by the CNCF]:
18+
https://contribute.cncf.io/resources/project-services/audits/
19+
20+
## What is fuzzing?
21+
22+
Fuzzing is a testing technique that executes an API with a high amount of
23+
pseudo-random inputs and observes the API's behavior. The technique has
24+
increased in popularity due to its empirical success in finding security
25+
vulnerabilities and reliability issues. Fuzzing initially developed with a focus
26+
on testing software implemented in memory-unsafe languages, where it has been
27+
most productive. However, in recent years, fuzzing has expanded to memory-safe
28+
languages as well.
29+
30+
Over several years, the CNCF has invested in fuzzing for its ecosystem. This
31+
testing has found numerous security vulnerabilities in widely used projects such
32+
as Helm (CVE-2022-36055, CVE-2022-23524, CVE-2022-23526, CVE-2022-23525), the
33+
Notary project (CVE-2023-25656), containerd (CVE-2023-25153), Crossplane
34+
(CVE-2023-28494, CVE-2023-27483) and Flux (CVE-2022-36049).
35+
36+
## OSS-Fuzz
37+
38+
To initiate the audit, Ada Logics auditors integrated the OpenTelemetry
39+
Collector into [OSS-Fuzz](https://github.com/google/oss-fuzz). OSS-Fuzz is a
40+
service offered by Google to critical open source projects, free of charge. The
41+
service runs a project's fuzzers with excess resources multiple times per week.
42+
If OSS-Fuzz finds a crash, it notifies the project. It then checks if the
43+
project has fixed the crash upstream and if so, marks the issue(s) as fixed. The
44+
whole workflow happens continuously on Google's fuzzing infrastructure,
45+
supported by thousands of CPU cores. These testing resources outperform what
46+
developers or malicious threat actors can muster.
47+
48+
## The tests
49+
50+
After the Ada Logics team integrated OpenTelemetry into OSS-Fuzz, the next step
51+
was to write a series of fuzz tests for the OpenTelemetry Collector. The
52+
auditors wrote 49 fuzz tests for core components of the Collector, as well as
53+
several receivers and processors in the `opentelemetry-collector-contrib`
54+
repository.
55+
56+
The fuzz tests were left to run while the audit team observed their health in
57+
production. At the completion of the fuzzing audit, the 49 fuzz tests on the
58+
OSS-Fuzz platform were healthy.
59+
60+
To ensure continued reliability, the fuzz testing continues on the Collector
61+
even though the audit is complete.
62+
63+
## The results so far
64+
65+
Fuzz testing for the Collector is ongoing, allowing for changes to the project
66+
to be tested as well. As of the date of this post, no crashes have been
67+
detected.
68+
69+
But the work is not done! The Ada Logics team created the Collector's fuzzing
70+
setup as a reference implementation that other OpenTelemetry subprojects can
71+
rely on to create their own fuzz testing, ensuring greater stability for the
72+
project as a whole.
73+
74+
For more insight into the audit process, see the
75+
[published summary](https://github.com/open-telemetry/community/blob/main/reports/ADA_Logics-collector-fuzzing-audit-2024.pdf).

content/en/blog/2024/humans-of-otel-na-2024.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: The Humans OpenTelemetry - KubeCon NA 2024
2+
title: The Humans of OpenTelemetry - KubeCon NA 2024
33
linkTitle: Humans of OTel NA 2024
44
date: 2024-12-19
55
author: >-

content/en/blog/2024/otel-arrow-production/index.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ The compression bridge consists of two OpenTelemetry Collectors labeled exporter
5454
and receiver, or they could equally be two pools of load-balanced collectors.
5555

5656
As described in the
57-
[OTEP 0156 design document](https://github.com/open-telemetry/oteps/blob/main/text/0156-columnar-encoding.md#mapping-otel-entities-to-arrow-records),
57+
[OTEP 0156 design document](https://github.com/open-telemetry/opentelemetry-specification/blob/main/oteps/0156-columnar-encoding.md#mapping-otel-entities-to-arrow-records),
5858
the exporter converts arbitrary OpenTelemetry data into an Arrow record batch.
5959
The Arrow record batch is a block of memory, with a standardized layout, making
6060
it possible to exchange data across address spaces and virtual process

content/en/blog/2024/profiling.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ utilization at a code-level and allows for this profiling data to be stored,
5858
queried, and analyzed over time and across different attributes. It’s an
5959
important technique for developers and performance engineers to understand
6060
exactly what’s happening in their code. OpenTelemetry’s
61-
[profiling signal](https://github.com/open-telemetry/oteps/blob/main/text/profiles/0239-profiles-data-model.md)
61+
[profiling signal](https://github.com/open-telemetry/opentelemetry-specification/blob/main/oteps/profiles/0239-profiles-data-model.md)
6262
expands upon the work that has been done in this space and, as a first for the
6363
industry, connects profiles with other telemetry signals from applications and
6464
infrastructure. This allows developers and operators to correlate resource

content/en/blog/2024/year-in-review.md

+5
Original file line numberDiff line numberDiff line change
@@ -217,8 +217,13 @@ You can also join us:
217217

218218
Together, we can make 2025 another amazing year for [opentelemetry.io](/)!
219219

220+
_[Cross-posted] to the [CNCF blog]._
221+
222+
[CNCF blog]: https://www.cncf.io/blog/
220223
[Comms meetings]:
221224
https://docs.google.com/document/d/1wW0jLldwXN8Nptq2xmgETGbGn9eWP8fitvD5njM-xZY
225+
[Cross-posted]:
226+
https://www.cncf.io/blog/2024/12/20/opentelemetry-io-2024-review/
222227
[discussions]: https://github.com/open-telemetry/opentelemetry.io/discussions
223228
[get involved]: /docs/contributing/
224229
[issues]: https://github.com/open-telemetry/opentelemetry.io/issues

content/en/blog/2025/_index.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
title: 2025
3+
weight: -2025
4+
outputs: [HTML, RSS]
5+
---

content/en/blog/_index.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,10 @@ redirects:
88
- { from: 'index.xml', to: '2024/index.xml 302!' }
99
outputs: [HTML, RSS]
1010
htmltest:
11-
# 2024-11-07 DO NOT COPY the following IgnoreDirs to non-en pages because handles all locales.
11+
# 2024-11-07 DO NOT COPY the following IgnoreDirs to non-en pages because it handles all locales.
1212
IgnoreDirs:
1313
# Ignore blog index pages for all locales and in all blog sections (top-level and years)
1414
- ^(../)?blog/(\d+/)?page/\d+
15+
# Ignore old blog posts
16+
- ^(../)?blog/20(19|21|22|23)/
1517
---

content/en/docs/collector/architecture.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ service:
8383
```
8484
8585
The previous example defines a pipeline for the traces type of telemetry data,
86-
with three receivers, two processors, and three exporters.
86+
with two receivers, two processors, and two exporters.
8787
8888
### Receivers
8989

content/en/docs/collector/internal-telemetry.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ journalctl | grep otelcol | grep Error
122122
{{% /tab %}} {{< /tabpane >}}
123123

124124
The following configuration can be used to emit internal logs from the Collector
125-
to an OTLP/gRPC backend:
125+
to an OTLP/HTTP backend:
126126

127127
```yaml
128128
service:
@@ -132,7 +132,7 @@ service:
132132
- batch:
133133
exporter:
134134
otlp:
135-
protocol: grpc/protobuf
135+
protocol: http/protobuf
136136
endpoint: https://backend:4317
137137
```
138138

content/en/docs/concepts/instrumentation/libraries.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ to help you decide how to minimize dependency conflicts:
115115
- While your instrumentation stabilizes, consider shipping it as a separate
116116
package, so that it never causes issues for users who don't use it. You can
117117
keep it in your repository, or
118-
[add it to OpenTelemetry](https://github.com/open-telemetry/oteps/blob/main/text/0155-external-modules.md#contrib-components),
118+
[add it to OpenTelemetry](https://github.com/open-telemetry/opentelemetry-specification/blob/main/oteps/0155-external-modules.md#contrib-components),
119119
so it ships with other instrumentation libraries.
120120
- Semantic conventions are [stable, but subject to evolution][]: while this does
121121
not cause any functional issues, you might need to update your instrumentation

content/en/docs/concepts/signals/_index.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ OpenTelemetry currently supports [traces](/docs/concepts/signals/traces),
2020
[metrics](/docs/concepts/signals/metrics), [logs](/docs/concepts/signals/logs)
2121
and [baggage](/docs/concepts/signals/baggage). _Events_ are a specific type of
2222
log, and
23-
[_profiles_ are being worked on](https://github.com/open-telemetry/oteps/blob/main/text/profiles/0212-profiling-vision.md)
23+
[_profiles_ are being worked on](https://github.com/open-telemetry/opentelemetry-specification/blob/main/oteps/profiles/0212-profiling-vision.md)
2424
by the Profiling Working Group.
2525

2626
[signals]: /docs/specs/otel/glossary/#signals

content/en/docs/concepts/signals/traces.md

+3
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,9 @@ trace. Now, they are causally associated with one another.
312312
Links are optional but serve as a good way to associate trace spans with one
313313
another.
314314

315+
For more information regarding Span Links, see
316+
[Link](/docs/specs/otel/trace/api/#link).
317+
315318
### Span Status
316319

317320
Each span has a status. The three possible values are:

content/en/docs/demo/services/recommendation.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ cSpell:ignore: cpython instrumentor NOTSET
88
This service is responsible to get a list of recommended products for the user
99
based on existing product IDs the user is browsing.
1010

11-
[Recommendation service source](https://github.com/open-telemetry/opentelemetry-demo/blob/main/src/recommendationservice/)
11+
[Recommendation service source](https://github.com/open-telemetry/opentelemetry-demo/blob/main/src/recommendation/)
1212

1313
## Auto-instrumentation
1414

content/en/docs/languages/java/_index.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ description: >-
66
aliases: [/java, /java/metrics, /java/tracing]
77
cascade:
88
vers:
9-
instrumentation: 2.10.0
9+
instrumentation: 2.11.0
1010
otel: 1.45.0
1111
contrib: 1.42.0
1212
semconv: 1.29.0

content/en/docs/languages/java/configuration.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -704,6 +704,6 @@ alone dictate SDK configuration. {{% /alert %}}
704704

705705
For additional details, consult the following resources:
706706

707-
- [Usage documentation](https://github.com/open-telemetry/opentelemetry-java/tree/main/sdk-extensions/incubator#file-configuration)
708-
- [Example with Java agent](https://github.com/open-telemetry/opentelemetry-java-examples/tree/main/javaagent#file-configuration)
709-
- [Example without Java agent](https://github.com/open-telemetry/opentelemetry-java-examples/tree/main/file-configuration)
707+
- [Usage documentation](https://github.com/open-telemetry/opentelemetry-java/tree/main/sdk-extensions/incubator#declarative-configuration)
708+
- [Example with Java agent](https://github.com/open-telemetry/opentelemetry-java-examples/tree/main/javaagent#declarative-configuration)
709+
- [Example without Java agent](https://github.com/open-telemetry/opentelemetry-java-examples/tree/main/declarative-configuration)

content/en/docs/languages/php/sdk.md

+18
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,14 @@ $meter = OpenTelemetry\API\Globals::meterProvider()->getMeter('name', 'version',
9898

9999
SDK autoloading happens as part of the composer autoloader.
100100

101+
### Configuration from php.ini
102+
103+
When providing configuration through `php.ini`, be sure to protect boolean
104+
values by double-quoting them, eg `"true"`, `"false"` so that PHP doesn't
105+
convert them to numbers.
106+
107+
`php.ini`:
108+
101109
### Excluded URLs
102110

103111
You can disable SDK autoloading if the request URL matches a regular expression.
@@ -134,3 +142,13 @@ There are also a number of PHP-specific configurations:
134142

135143
Configurations can be provided as environment variables, or via `php.ini` (or a
136144
file included by `php.ini`)
145+
146+
{{% alert title="Boolean values in php.ini" %}} Boolean values in `php.ini`
147+
should be protected by double-quoting them, for example `"true"` or `"false"`,
148+
so that PHP doesn't convert them to numbers {{% /alert %}}
149+
150+
```ini
151+
OTEL_PHP_AUTOLOAD_ENABLED="true"
152+
OTEL_EXPORTER_OTLP_PROTOCOL=grpc
153+
OTEL_EXPORTER_OTLP_ENDPOINT=http://collector:4317
154+
```

content/en/docs/zero-code/java/_index.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ aliases:
66
- /docs/languages/java/automatic_instrumentation
77
cascade:
88
vers:
9-
instrumentation: 2.10.0
9+
instrumentation: 2.11.0
1010
otel: 1.45.0
1111
---
1212

content/en/docs/zero-code/java/agent/annotations.md

+14-8
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,18 @@ cSpell:ignore: Flowable javac reactivestreams reactivex
77
---
88

99
For most users, the out-of-the-box instrumentation is completely sufficient and
10-
nothing more has to be done. Sometimes, however, users wish to create
10+
nothing more needs to be done. Sometimes, however, users wish to create
1111
[spans](/docs/concepts/signals/traces/#spans) for their own custom code without
12-
doing too much code change.
12+
having to change much code. The `WithSpan` and `WithAttribute` annotations
13+
support those use cases.
1314

1415
## Dependencies
1516

1617
You'll need to add a dependency on the
1718
`opentelemetry-instrumentation-annotations` library to use the `@WithSpan`
1819
annotation.
1920

20-
### Maven
21+
{{< tabpane text=true >}} {{% tab "Maven" %}}
2122

2223
```xml
2324
<dependencies>
@@ -29,6 +30,8 @@ annotation.
2930
</dependencies>
3031
```
3132

33+
{{% /tab %}} {{% tab "Gradle" %}}
34+
3235
### Gradle
3336

3437
```groovy
@@ -37,10 +40,12 @@ dependencies {
3740
}
3841
```
3942

43+
{{% /tab %}} {{< /tabpane >}}
44+
4045
## Creating spans around methods with `@WithSpan`
4146

42-
To create a [span](/docs/concepts/signals/traces/#spans) corresponding to one of
43-
your method, annotate the method with `@WithSpan`.
47+
To create a [span](/docs/concepts/signals/traces/#spans) that instruments a
48+
particular method, annotate the method with `@WithSpan`.
4449

4550
```java
4651
import io.opentelemetry.instrumentation.annotations.WithSpan;
@@ -78,9 +83,10 @@ types listed below, then the span will not be ended until the future completes.
7883
## Adding attributes to the span with `@SpanAttribute`
7984

8085
When a [span](/docs/concepts/signals/traces/#spans) is created for an annotated
81-
method the values of the arguments to the method invocation can be automatically
82-
added as [attributes](/docs/concepts/signals/traces/#attributes) to the created
83-
span by annotating the method parameters with the `@SpanAttribute` annotation.
86+
method, the values of the arguments to the method invocation can be
87+
automatically added as [attributes](/docs/concepts/signals/traces/#attributes)
88+
to the created span. Simply annotate the method parameters with the
89+
`@SpanAttribute` annotation:
8490

8591
```java
8692
import io.opentelemetry.instrumentation.annotations.SpanAttribute;

content/en/docs/zero-code/java/agent/configuration.md

+8-8
Original file line numberDiff line numberDiff line change
@@ -21,24 +21,24 @@ The agent can consume configuration from one or more of the following sources
2121

2222
## Configuring with Environment Variables
2323

24-
In some environments, configuring via Environment Variables is more preferred.
25-
Any setting configurable with a System Property can also be configured with an
26-
Environment Variable. Many settings below include both options, but where they
27-
don't apply the following steps to determine the correct name mapping of the
28-
desired System Property:
24+
In certain environments, configuring settings through environment variables is
25+
often preferred. Any setting that can be configured using a system property can
26+
also be set using an environment variable. While many of the settings below
27+
provide examples for both formats, for those that do not, use the following
28+
steps to determine the correct name mapping for the desired system property:
2929

30-
- Convert the System Property to uppercase.
30+
- Convert the system property name to uppercase.
3131
- Replace all `.` and `-` characters with `_`.
3232

3333
For example `otel.instrumentation.common.default-enabled` would convert to
3434
`OTEL_INSTRUMENTATION_COMMON_DEFAULT_ENABLED`.
3535

3636
## Configuration file
3737

38-
You can provide a path to agent configuration file by setting the following
38+
You can provide a path to an agent configuration file by setting the following
3939
property:
4040

41-
{{% config_option name="otel.javaagent.configuration-file" %}} Path to valid
41+
{{% config_option name="otel.javaagent.configuration-file" %}} Path to a valid
4242
Java properties file which contains the agent configuration.
4343
{{% /config_option %}}
4444

content/en/docs/zero-code/java/agent/disable.md

+5-4
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,11 @@ to have more control of which instrumentation is applied.
2626
{{% config_option name="otel.instrumentation.[name].enabled" %}} Set to `true`
2727
to enable each desired instrumentation individually. {{% /config_option %}}
2828

29-
> **Note**: Some instrumentation relies on other instrumentation to function
30-
> properly. When selectively enabling instrumentation, be sure to enable the
31-
> transitive dependencies too. Determining this dependency relationship is left
32-
> as an exercise to the user.
29+
{{% alert title="Note" color="warning" %}} Some instrumentation relies on other
30+
instrumentation to function properly. When selectively enabling instrumentation,
31+
be sure to enable the transitive dependencies too. Determining this dependency
32+
relationship is left as an exercise to the user. This is considered advanced
33+
usage and is not recommended for most users. {{% /alert %}}
3334

3435
## Enable manual instrumentation only
3536

0 commit comments

Comments
 (0)