Skip to content

Commit

Permalink
Enable Prettier check over 2022 blog (#2398)
Browse files Browse the repository at this point in the history
Co-authored-by: Phillip Carter <pcarter@fastmail.com>
  • Loading branch information
chalin and cartermp committed Feb 26, 2023
1 parent ffe4e59 commit 4dc478d
Show file tree
Hide file tree
Showing 33 changed files with 552 additions and 434 deletions.
1 change: 0 additions & 1 deletion .prettierignore
Expand Up @@ -17,7 +17,6 @@ package-lock.json
/assets/**/*.js
/content/en/blog/2019
/content/en/blog/2021
/content/en/blog/2022
/content/en/docs/demo
/data
/resources
Expand Down
42 changes: 35 additions & 7 deletions content/en/blog/2022/announcing-community-manager.md
Expand Up @@ -2,17 +2,45 @@
title: Announcing the OpenTelemetry Community Manager
linkTitle: Community Manager
date: 2022-10-06
author: "[Austin Parker](https://github.com/austinlparker)"
author: '[Austin Parker](https://github.com/austinlparker)'
---

OpenTelemetry has demonstrated massive growth since its inception in 2019. What started as a handful of OpenTracing and OpenCensus maintainers and collaborators meeting at the Google campus and over Zoom, has now grown into the second-most popular project in the CNCF behind Kubernetes itself. Over [5400 contributors and 700 companies](https://opentelemetry.devstats.cncf.io/d/74/contributions-chart?orgId=1&var-period=m&var-metric=contributions&var-repogroup_name=All&var-country_name=All&var-company_name=All&var-company=all&from=now-3y&to=now-2d) have contributed code, issues, documentation, and invaluable feedback.
OpenTelemetry has demonstrated massive growth since its inception in 2019. What
started as a handful of OpenTracing and OpenCensus maintainers and collaborators
meeting at the Google campus and over Zoom, has now grown into the second-most
popular project in the CNCF behind Kubernetes itself. Over
[5400 contributors and 700 companies](https://opentelemetry.devstats.cncf.io/d/74/contributions-chart?orgId=1&var-period=m&var-metric=contributions&var-repogroup_name=All&var-country_name=All&var-company_name=All&var-company=all&from=now-3y&to=now-2d)
have contributed code, issues, documentation, and invaluable feedback.

Our community isn’t just composed of these contributors, however - our end-users, partners, integrators, and a whole host of other people make up the OpenTelemetry community. In order to serve the needs of the wider end-user community, the governance committee has formed a community manager role who can focus on the needs of this large, and growing, group of humans.
Our community isn’t just composed of these contributors, however - our
end-users, partners, integrators, and a whole host of other people make up the
OpenTelemetry community. In order to serve the needs of the wider end-user
community, the governance committee has formed a community manager role who can
focus on the needs of this large, and growing, group of humans.

Community managers are appointed by the Governance Committee and act as public stewards of the contributor and end-user community. They’re responsible for organizing events, coordinating cross-SIG and WG efforts to improve contributor experience, managing the OpenTelemetry presence on social media, and working to nurture and grow the OpenTelemetry community overall. Effectively, this is a new project maintainer whose project is the OpenTelemetry community itself.
Community managers are appointed by the Governance Committee and act as public
stewards of the contributor and end-user community. They’re responsible for
organizing events, coordinating cross-SIG and WG efforts to improve contributor
experience, managing the OpenTelemetry presence on social media, and working to
nurture and grow the OpenTelemetry community overall. Effectively, this is a new
project maintainer whose project is the OpenTelemetry community itself.

With that said, I’m happy to inform you that I have been designated the first Community Manager for the OpenTelemetry project! As a former OpenTracing maintainer, I’ve been a part of OpenTelemetry since its inception, mostly working on projects such as the website, hosting OpenTelemetry Tuesdays, and helping organize events like OpenTelemetry Community Day. With this new role, I plan to more formally establish OpenTelemetry Community Days around the world as part of KubeCon/CloudNativeCon -- and additionally, help promote new end-user and contributor events like OTel Unplugged (more on that in a week or so.)
With that said, I’m happy to inform you that I have been designated the first
Community Manager for the OpenTelemetry project! As a former OpenTracing
maintainer, I’ve been a part of OpenTelemetry since its inception, mostly
working on projects such as the website, hosting OpenTelemetry Tuesdays, and
helping organize events like OpenTelemetry Community Day. With this new role, I
plan to more formally establish OpenTelemetry Community Days around the world as
part of KubeCon/CloudNativeCon -- and additionally, help promote new end-user
and contributor events like OTel Unplugged (more on that in a week or so.)

What’s next? I hope to hear from you about what you need! I’ve started a [thread](https://github.com/open-telemetry/community/discussions/1203) on the Community Discussions in GitHub, and I’d love for you to post your questions, comments, and suggestions for community initiatives and programs. This isn’t just limited to end-users of OpenTelemetry, either -- how can I help in improving the existing and new contributor experience? Please let me know!
What’s next? I hope to hear from you about what you need! I’ve started a
[thread](https://github.com/open-telemetry/community/discussions/1203) on the
Community Discussions in GitHub, and I’d love for you to post your questions,
comments, and suggestions for community initiatives and programs. This isn’t
just limited to end-users of OpenTelemetry, either -- how can I help in
improving the existing and new contributor experience? Please let me know!

If you’d like to reach out in other ways, you can find me on [Twitter](https://twitter.com/@austinlparker) or on the [Cloud Native Community Slack.](https://cloud-native.slack.com/archives/CJFCJHG4Q)
If you’d like to reach out in other ways, you can find me on
[Twitter](https://twitter.com/@austinlparker) or on the
[Cloud Native Community Slack.](https://cloud-native.slack.com/archives/CJFCJHG4Q)
86 changes: 43 additions & 43 deletions content/en/blog/2022/apisix/index.md
Expand Up @@ -2,7 +2,7 @@
title: Apache APISIX Integrates with OpenTelemetry to Collect Tracing Data
linkTitle: Apache APISIX-Opentelemetry Integration
date: 2022-03-26
author: "[Haochao Zhuang](https://github.com/dmsolr), Fei Han"
author: '[Haochao Zhuang](https://github.com/dmsolr), Fei Han'
canonical_url: https://apisix.apache.org/blog/2022/02/28/apisix-integration-opentelemetry-plugin/
spelling: cSpell:ignore APISIX
---
Expand Down Expand Up @@ -35,8 +35,8 @@ backend services they want, such as Zipkin and Jaeger, without affecting the
application side.

The `opentelemetry` plugin is located on the Agent side. It integrates the
OpenTelemetry Agent/SDK and adopts its features in Apache APISIX. It can
collect traced requests, generate `trace`, and forward them to the OpenTelemetry
OpenTelemetry Agent/SDK and adopts its features in Apache APISIX. It can collect
traced requests, generate `trace`, and forward them to the OpenTelemetry
Collector. It supports the `trace` protocol, and it will support the `logs` and
`metrics` protocols of OpenTelemetry in the next version.

Expand All @@ -46,14 +46,16 @@ You need to enable `opentelemetry` plugin and modify collector configuration in
`conf/config.yaml` configuration file.

We assume that you have already deployed the OpenTelemetry Collector on the same
node as the APISIX and enabled the [OTLP HTTP Receiver](https://github.com/open-telemetry/opentelemetry-collector/blob/main/receiver/otlpreceiver/README.md).
node as the APISIX and enabled the
[OTLP HTTP Receiver](https://github.com/open-telemetry/opentelemetry-collector/blob/main/receiver/otlpreceiver/README.md).

> Need help completing deployment of the OpenTelemetry Collector?
> See the scenario [Example](#example) below.
> Need help completing deployment of the OpenTelemetry Collector? See the
> scenario [Example](#example) below.
The default port of the OTLP HTTP Receiver is `4318`, and the address of the
`collector` is the HTTP Receiver address of the OpenTelemetry Collector. For
related fields, see the [Apache APISIX documentation](https://apisix.apache.org/docs/apisix/next/plugins/opentelemetry/).
related fields, see the
[Apache APISIX documentation](https://apisix.apache.org/docs/apisix/next/plugins/opentelemetry/).

A typical configuration might look like this:

Expand Down Expand Up @@ -123,8 +125,8 @@ curl 'http://127.0.0.1:9080/apisix/admin/global_rules/1' \

### Method 3: Customize Labels for Span through additional_attributes

For the configuration of `sampler` and `additional_attributes`, see
the [Apache APISIX documentation](https://apisix.apache.org/docs/apisix/next/plugins/opentelemetry/#attributes),
For the configuration of `sampler` and `additional_attributes`, see the
[Apache APISIX documentation](https://apisix.apache.org/docs/apisix/next/plugins/opentelemetry/#attributes),
where `additional_attributes` is a series of `Key:Value` pairs, you can use it
to customize the label for Span, and can follow Span to display on the Web UI.
Add `route_id` and `http_x-custom-ot-key` to the span of a route through
Expand Down Expand Up @@ -160,8 +162,7 @@ curl http://127.0.0.1:9080/apisix/admin/routes/1001 \

You can enable `opentelemetry` plugin in any of the above three methods. The
following example uses the example of method three to create a route. After the
creation is successful, see the following commands to access the
route:
creation is successful, see the following commands to access the route:

```shell
curl -X PUT -H `x-custom-ot-key: test-ot-val` http://127.0.0.1:9080/put
Expand All @@ -176,17 +177,17 @@ displayed in the Tags list: `http_x-custom-ot-key` and `route_id`.
You need to note that the `additional_attributes` configuration is set to take
values from Apache APISIX and Nginx variables as `attribute` values, so
`additional_attributes` must be a valid Apache APISIX or Nginx variable. It also
includes HTTP Header, but when fetching http_header, you need to add `http_` as
the prefix of the variable name. If the variable does not exist, the `tag` will
not be displayed.
includes HTTP Header, but when fetching http*header, you need to add
`http*`as the prefix of the variable name. If the variable does not exist, the`tag`
will not be displayed.

## Example

This scenario example deploys Collector, Jaeger, and Zipkin as backend services
by simply modifying the OpenTelemetry Collector example, and starts
two sample applications (Client and Server), where Server provides an HTTP
service, and Client will cyclically call the server provided by the server. HTTP
interface, resulting in a call chain consisting of two spans.
by simply modifying the OpenTelemetry Collector example, and starts two sample
applications (Client and Server), where Server provides an HTTP service, and
Client will cyclically call the server provided by the server. HTTP interface,
resulting in a call chain consisting of two spans.

### Step 1: Deploy OpenTelemetry

Expand Down Expand Up @@ -261,50 +262,49 @@ receivers:
otlp:
protocols:
grpc:
http: ${ip:port} # add OTLP HTTP Receiver,default port is 4318
http: ${ip:port} # add OTLP HTTP Receiver,default port is 4318
```

Modify `docker-compose.yaml` file.

You need to modify the configuration file, change the interface address of
Client calling Server to the address of Apache APISIX, and map the ports of
OTLP HTTP Receiver and Server services to local.
Client calling Server to the address of Apache APISIX, and map the ports of OTLP
HTTP Receiver and Server services to local.

The following example is the complete `docker-compose.yaml` after the
configuration is modified:

```yaml
version: "2"
version: '2'
services:

# Jaeger
jaeger-all-in-one:
image: jaegertracing/all-in-one:latest
ports:
- "16686:16686" # jaeger ui port
- "14268"
- "14250"
- '16686:16686' # jaeger ui port
- '14268'
- '14250'

# Zipkin
zipkin-all-in-one:
image: openzipkin/zipkin:latest
ports:
- "9411:9411"
- '9411:9411'

# Collector
otel-collector:
image: ${OTELCOL_IMG}
command: ["--config=/etc/otel-collector-config.yaml", "${OTELCOL_ARGS}"]
command: ['--config=/etc/otel-collector-config.yaml', '${OTELCOL_ARGS}']
volumes:
- ./otel-collector-config.yaml:/etc/otel-collector-config.yaml
ports:
- "1888:1888" # pprof extension
- "8888:8888" # Prometheus metrics exposed by the collector
- "8889:8889" # Prometheus exporter metrics
- "13133:13133" # health_check extension
- "4317" # OTLP gRPC receiver
- "4318:4318" # Add OTLP HTTP Receiver port mapping
- "55670:55679" # zpages extension
- '1888:1888' # pprof extension
- '8888:8888' # Prometheus metrics exposed by the collector
- '8889:8889' # Prometheus exporter metrics
- '13133:13133' # health_check extension
- '4317' # OTLP gRPC receiver
- '4318:4318' # Add OTLP HTTP Receiver port mapping
- '55670:55679' # zpages extension
depends_on:
- jaeger-all-in-one
- zipkin-all-in-one
Expand All @@ -326,7 +326,7 @@ services:
environment:
- OTEL_EXPORTER_OTLP_ENDPOINT=otel-collector:4317
ports:
- "7080:7080" # Map the Server port to the host
- '7080:7080' # Map the Server port to the host
depends_on:
- otel-collector

Expand All @@ -336,8 +336,8 @@ services:
volumes:
- ./prometheus.yaml:/etc/prometheus/prometheus.yml
ports:
- "9090:9090"
```
- '9090:9090'
```

It should be noted that `demo-client.environment.DEMO_SERVER_ENDPOINT` needs to
be changed to your Apache APISIX address, and ensure that it can be accessed
Expand Down Expand Up @@ -376,9 +376,8 @@ modify the route configuration and delete the part of `opentelemetry` under
If you enabled `opentelemetry` globally by binding Global Rules, you can remove
the configuration of the `opentelemetry` global plugin.

Note that disabling the `opentelemetry` plugin only results in
disconnecting the APISIX span, the client and server spans will remain
connected.
Note that disabling the `opentelemetry` plugin only results in disconnecting the
APISIX span, the client and server spans will remain connected.

## Summary

Expand All @@ -388,8 +387,9 @@ communities to create a more powerful ecosystem.

Apache APISIX is also currently working on additional plugins to support
integration with more services, if you're interested, feel free to
[start a discussion](https://github.com/apache/apisix/discussions)
on GitHub, or communicate via the [mailing list](https://apisix.apache.org/docs/general/join/#subscribe-to-the-mailing-list).
[start a discussion](https://github.com/apache/apisix/discussions) on GitHub, or
communicate via the
[mailing list](https://apisix.apache.org/docs/general/join/#subscribe-to-the-mailing-list).

_A version of this article was [originally posted][] on the Apache APISIX blog._

Expand Down
2 changes: 1 addition & 1 deletion content/en/blog/2022/collector-builder-sample/index.md
Expand Up @@ -249,7 +249,7 @@ exporters:
otlp:
logging:
zipkin:
endpoint: "http://my-zipkin-service:9411/api/v2/spans"
endpoint: http://my-zipkin-service:9411/api/v2/spans
service:
pipelines:
traces:
Expand Down
23 changes: 12 additions & 11 deletions content/en/blog/2022/debug-otel-with-otel/index.md
Expand Up @@ -3,8 +3,9 @@ title: How we used OpenTelemetry to fix a bug in OpenTelemetry
linkTitle: Debug OTel with OTel
date: 2022-09-22
author: >-
[Kumar Pratyush](https://github.com/kpratyus), [Sanket Mehta](https://github.com/sanketmehta28),
[Severin Neumann](https://github.com/svrnm) (Cisco)
[Kumar Pratyush](https://github.com/kpratyus), [Sanket
Mehta](https://github.com/sanketmehta28), [Severin
Neumann](https://github.com/svrnm) (Cisco)
---

OpenTelemetry is here to help us find the root cause of issues in our software
Expand Down Expand Up @@ -100,15 +101,15 @@ three files into the `backend` folder instead:
Update the `docker-compose.yml` with the following:

```yaml
version: "2"
version: '2'
services:
jaeger:
image: jaegertracing/all-in-one:latest
ports:
- "16686:16686"
- '16686:16686'
collector:
image: otel/opentelemetry-collector:latest
command: ["--config=/etc/otel-collector-config.yaml"]
command: ['--config=/etc/otel-collector-config.yaml']
volumes:
- ./otel-collector-config.yaml:/etc/otel-collector-config.yaml
nginx:
Expand All @@ -124,12 +125,12 @@ services:
- OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
- OTEL_SERVICE_NAME=python-app
redis:
image: "redis:alpine"
image: 'redis:alpine'
frontend:
build: ./frontend
image: frontend-with-otel
ports:
- "8000:8000"
- '8000:8000'
environment:
- OTEL_EXPORTER_OTLP_ENDPOINT=http://collector:4318/
- OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
Expand Down Expand Up @@ -215,10 +216,10 @@ headers again and again, and since having multi value headers is covered by
We tested the capability to correlate from nginx to a downstream service with a
Java application. And, without reading into the source code of the OTel Java
SDK, it looks like that Java is flexible in taking a `traceparent` with multiple
values, even though such format is invalid per the W3C Trace Context specification.
So propagation from nginx to the Java service worked, while in contrast,
Python (and other languages) do not provide that flexibility and propagation
from nginx to the downstream service silently fails.
values, even though such format is invalid per the W3C Trace Context
specification. So propagation from nginx to the Java service worked, while in
contrast, Python (and other languages) do not provide that flexibility and
propagation from nginx to the downstream service silently fails.

Note, that we are not suggesting that the other languages should have the same
flexibility as Java has with reading `traceparent` or vice-versa: the bug lives
Expand Down

0 comments on commit 4dc478d

Please sign in to comment.