Blog cleanup (#1715)
* Blog cleanup Signed-off-by: svrnm <neumanns@cisco.com> * fix zipkin UI url in apisix blog Signed-off-by: svrnm <neumanns@cisco.com>
| 
		 Before Width: | Height: | Size: 401 KiB After Width: | Height: | Size: 401 KiB  | 
| 
		 Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 86 KiB  | 
| 
		 Before Width: | Height: | Size: 179 KiB After Width: | Height: | Size: 179 KiB  | 
| 
						 | 
				
			
			@ -2,7 +2,9 @@
 | 
			
		|||
title: Apache APISIX Integrates with OpenTelemetry to Collect Tracing Data
 | 
			
		||||
linkTitle: Apache APISIX-Opentelemetry Integration
 | 
			
		||||
date: 2022-03-26
 | 
			
		||||
author: Haochao Zhuang, Fei Han
 | 
			
		||||
author: >-
 | 
			
		||||
  [Haochao Zhuang](https://github.com/dmsolr), 
 | 
			
		||||
  [Fei Han](https://github.com/hf400159)
 | 
			
		||||
canonical_url: https://apisix.apache.org/blog/2022/02/28/apisix-integration-opentelemetry-plugin/
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -19,7 +21,7 @@ backends, such as Jaeger, Zipkin, and OpenCensus. You can view the list of
 | 
			
		|||
plugins that have adapted the OpenTelemetry Collector in the
 | 
			
		||||
[registry](/registry/?s=collector).
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
## Plugin Introduction
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -170,7 +172,7 @@ After the access is successful, you can see the details of the span similar to
 | 
			
		|||
`/put` in the Jaeger UI, and you can see that the custom tags in the route are
 | 
			
		||||
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
 | 
			
		||||
| 
						 | 
				
			
			@ -206,23 +208,23 @@ successful.
 | 
			
		|||
 | 
			
		||||
The following screenshots show an example of successful access.
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||

 | 
			
		||||
 | 
			
		||||

 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
### Step 2: Configure the Test Environment
 | 
			
		||||
 | 
			
		||||
The Apache APISIX service is introduced, and the topology of the final
 | 
			
		||||
application is shown in the following figure.
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
The Trace data reporting process is as follows. Among them, since Apache APISIX
 | 
			
		||||
is deployed separately and not in the network of docker-compose, Apache APISIX
 | 
			
		||||
accesses the OTLP HTTP Receiver of OpenTelemetry Collector through the locally
 | 
			
		||||
mapped port (`127.0.0.1:4138`).
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
You need to make sure you have enabled the `opentelemetry` plugin and reload
 | 
			
		||||
Apache APISIX.
 | 
			
		||||
| 
						 | 
				
			
			@ -350,21 +352,21 @@ details, see [Installation via Docker](https://apisix.apache.org/docs/apisix/how
 | 
			
		|||
After the redeployment is completed, you can access the Jaeger UI or Zipkin UI
 | 
			
		||||
to see that the Span of APISIX is included in the Trace, as shown below:
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||

 | 
			
		||||
 | 
			
		||||

 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
When demo-server is not instrumented, you can still getting visibility of the
 | 
			
		||||
demo-server behavior by enabling this plugin. Although this is not a typical
 | 
			
		||||
case, it is a poor-man substitute of a real instrumentation of demo-server and
 | 
			
		||||
provides a lot of value.
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
When the request does not reach the demo-server, the output would not include
 | 
			
		||||
the span of demo-server.
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
## Disable the Plugin
 | 
			
		||||
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 115 KiB After Width: | Height: | Size: 115 KiB  | 
| 
		 Before Width: | Height: | Size: 217 KiB After Width: | Height: | Size: 217 KiB  | 
| 
		 Before Width: | Height: | Size: 165 KiB After Width: | Height: | Size: 165 KiB  | 
| 
		 Before Width: | Height: | Size: 403 KiB After Width: | Height: | Size: 403 KiB  | 
| 
		 Before Width: | Height: | Size: 84 KiB After Width: | Height: | Size: 84 KiB  | 
| 
		 Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 79 KiB  | 
| 
		 Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 98 KiB  | 
| 
		 Before Width: | Height: | Size: 117 KiB After Width: | Height: | Size: 117 KiB  | 
| 
		 Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 78 KiB  | 
| 
						 | 
				
			
			@ -2,10 +2,10 @@
 | 
			
		|||
title: Announcing a Community Demo for OpenTelemetry
 | 
			
		||||
linkTitle: OpenTelemetry Community Demo
 | 
			
		||||
date: 2022-06-20
 | 
			
		||||
author: Carter Socha
 | 
			
		||||
author: "[Carter Socha](https://github.com/cartersocha)"
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
### TL;DR
 | 
			
		||||
## TL;DR
 | 
			
		||||
 | 
			
		||||
The OpenTelemetry community has taken a good pre-existing demo (thanks,
 | 
			
		||||
[Google](https://github.com/GoogleCloudPlatform/microservices-demo)!) and is in
 | 
			
		||||
| 
						 | 
				
			
			@ -24,7 +24,7 @@ some stretching and take a water break in the meantime.
 | 
			
		|||
 | 
			
		||||
Your command line output should look like this:
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
- Once the images are built you can access the Webstore at:
 | 
			
		||||
| 
						 | 
				
			
			@ -83,7 +83,7 @@ gRPC, Redis, and HTTP libraries
 | 
			
		|||
### Current Architecture
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
### BYOB (Bring Your Own Backend)
 | 
			
		||||
| 
						 | 
				
			
			@ -143,7 +143,7 @@ ourselves to just the items listed here.
 | 
			
		|||
 | 
			
		||||
### Future Architecture
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
## Going Forward
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 584 KiB After Width: | Height: | Size: 584 KiB  | 
| 
		 Before Width: | Height: | Size: 168 KiB After Width: | Height: | Size: 168 KiB  | 
| 
		 Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB  | 
| 
		 Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 45 KiB  | 
| 
						 | 
				
			
			@ -4,7 +4,7 @@ linkTitle: Instrument Apache Http Server
 | 
			
		|||
date: 2022-05-27
 | 
			
		||||
spelling:
 | 
			
		||||
  cSpell:ignore Centos centos7 Debajit debuggability libmod OLTP uncompress
 | 
			
		||||
author: Debajit Das
 | 
			
		||||
author: "[Debajit Das](https://github.com/DebajitDas) (Cisco)"
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
If you are using Apache Web Server and in dire need of some observability tool
 | 
			
		||||
| 
						 | 
				
			
			@ -59,13 +59,13 @@ To send a request to Apache webServer you can either use curl from terminal
 | 
			
		|||
landing page saying "Testing 123..." for Apache Http Server on Centos will be
 | 
			
		||||
displayed as below:
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
Now, traces and spans can be seen on the Zipkin backend. To view them, visit
 | 
			
		||||
[localhost:9411][] in your browser and click on **Run Query** button. Following
 | 
			
		||||
is the screenshot from Zipkin UI showing spans emitted by the Apache webServer.
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
This shows a list of queries or endpoints that have been triggered to Apache
 | 
			
		||||
WebServer, such as `/noindex/css`.
 | 
			
		||||
| 
						 | 
				
			
			@ -73,7 +73,7 @@ WebServer, such as `/noindex/css`.
 | 
			
		|||
To see the details click on any of the **SHOW** buttons. Below is the screenshot
 | 
			
		||||
from the Zipkin UI showing the span hierarchy.
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
The above shows that as a part of this request, `mod_proxy`,
 | 
			
		||||
`mod_proxy_balancer` and `mod_dav` got involved in the request processing and
 | 
			
		||||
| 
						 | 
				
			
			@ -95,7 +95,7 @@ Zipkin backend. The following steps are required to be done.
 | 
			
		|||
- Add `AddType application/x-httpd-php .html` in `/etc/httpd/conf/httpd.conf` as
 | 
			
		||||
  mentioned below:
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
- Create a file named as `index.html` in the **/var/www/html** directory and add
 | 
			
		||||
  the following text
 | 
			
		||||
| 
						 | 
				
			
			@ -123,13 +123,13 @@ Zipkin backend. The following steps are required to be done.
 | 
			
		|||
 | 
			
		||||
- Now, visit [localhost:9004/index.html][]. You should see something like this:
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
- Now, traces and spans can be seen on the Zipkin backend. To view them, type
 | 
			
		||||
  [localhost:9411][] on the browser and click on the **Run Query** Button. To
 | 
			
		||||
  see the details, click on the **SHOW** button corresponding to `/index.html`.
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
- We can see that, `mod_php5.c_handler` consumes around **1 second** which
 | 
			
		||||
  contributes to the overall time-consumption of the request.
 | 
			
		||||
| 
						 | 
				
			
			@ -208,17 +208,17 @@ writing this blog, support for other architectures is not provided.
 | 
			
		|||
  `Include conf/opentelemetry_module.conf` at the end of the file as mentioned
 | 
			
		||||
  below:
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
- Now let’s look at opentelemetry_module.conf and its contents:
 | 
			
		||||
 | 
			
		||||
  - The below LoadFile are the dependent libraries that come with the package.
 | 
			
		||||
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
  - The below configuration are for the OpenTelemetry Module
 | 
			
		||||
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    In the case of Apache 2.2, `libmod_apache_otel22.so` needs to be used
 | 
			
		||||
    instead of `libmod_apache_otel.so`
 | 
			
		||||
| 
						 | 
				
			
			@ -226,12 +226,12 @@ writing this blog, support for other architectures is not provided.
 | 
			
		|||
  - The following directive should be ON for the openTelemetry module to be
 | 
			
		||||
    enabled, else it would be disabled.
 | 
			
		||||
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
  - Since the module works with the Collector and sends data in OLTP format, the
 | 
			
		||||
    following directives are necessary.
 | 
			
		||||
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    _ApacheModuleOtelExporterEndpoint_ should point to the endpoint of the
 | 
			
		||||
    collector
 | 
			
		||||
| 
						 | 
				
			
			@ -239,7 +239,7 @@ writing this blog, support for other architectures is not provided.
 | 
			
		|||
  - ServiceNamespace, ServiceName and ServiceInstanceId should be provided by
 | 
			
		||||
    the following directives.
 | 
			
		||||
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
  - All other directives are either optional and can be kept as it is for this
 | 
			
		||||
    guide
 | 
			
		||||
| 
						 | 
				
			
			@ -247,7 +247,7 @@ writing this blog, support for other architectures is not provided.
 | 
			
		|||
- To verify whether Apache OpenTelemetry Module is properly enabled into Apache
 | 
			
		||||
  Web Server, type `httpd -M` and look for `otel_apache_module (shared)`
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
- Now, restart the apache module and open telemetry module should be
 | 
			
		||||
  instrumented.
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 100 KiB After Width: | Height: | Size: 100 KiB  | 
| 
		 Before Width: | Height: | Size: 67 KiB After Width: | Height: | Size: 67 KiB  | 
| 
		 Before Width: | Height: | Size: 315 KiB After Width: | Height: | Size: 315 KiB  | 
| 
		 Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 61 KiB  | 
| 
		 Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB  | 
| 
		 Before Width: | Height: | Size: 407 KiB After Width: | Height: | Size: 407 KiB  | 
| 
		 Before Width: | Height: | Size: 459 KiB After Width: | Height: | Size: 459 KiB  | 
| 
		 Before Width: | Height: | Size: 565 KiB After Width: | Height: | Size: 565 KiB  | 
| 
		 Before Width: | Height: | Size: 1.5 MiB After Width: | Height: | Size: 1.5 MiB  | 
| 
		 Before Width: | Height: | Size: 133 KiB After Width: | Height: | Size: 133 KiB  | 
| 
						 | 
				
			
			@ -3,9 +3,9 @@ title: Learn how to instrument nginx with OpenTelemetry
 | 
			
		|||
linkTitle: Instrument Nginx
 | 
			
		||||
date: 2022-08-22
 | 
			
		||||
author: >-
 | 
			
		||||
  [Debajit Das](https://github.com/debajitdas), [Kumar
 | 
			
		||||
  Pratyus](https://github.com/kpratyus), and [Severin
 | 
			
		||||
  Neumann](https://github.com/svrnm)
 | 
			
		||||
  [Debajit Das](https://github.com/debajitdas), 
 | 
			
		||||
  [Kumar Pratyus](https://github.com/kpratyus), 
 | 
			
		||||
  [Severin Neumann](https://github.com/svrnm) (Cisco)
 | 
			
		||||
spelling: >
 | 
			
		||||
  cSpell:ignore Debajit Kumar Pratyus Severin Neumann webserver xvfz tracestate
 | 
			
		||||
  cSpell:ignore catalina javaagent jaegertracing protobuf WORKDIR
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -52,7 +52,7 @@ The processor internally maintains a list of pods and an associated attribute,
 | 
			
		|||
usually the IP address of the pod, and uses this attribute to know which pod
 | 
			
		||||
generates a certain span.
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
In the figure above you can see how the data flows: The table of pods is fetched
 | 
			
		||||
using Kubernetes API, while the pod IP is extracted from the connection context
 | 
			
		||||
| 
						 | 
				
			
			@ -148,7 +148,7 @@ contains the permissions to fetch the pod list.
 | 
			
		|||
Next, deploy the manifest and the [vert.x example app][] to generate some
 | 
			
		||||
traces.
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
As you can see, each span of the trace now has the corresponding pod attributes
 | 
			
		||||
attached to it.
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 154 KiB After Width: | Height: | Size: 154 KiB  | 
| 
		 Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 49 KiB  | 
| 
						 | 
				
			
			@ -3,7 +3,7 @@ title: Distributed tracing in Knative
 | 
			
		|||
linkTitle: Tracing in Knative
 | 
			
		||||
date: 2022-04-12
 | 
			
		||||
spelling: cSpell:ignore Cloudevents istio Loffay Pavol pavolloffay
 | 
			
		||||
author: Pavol Loffay
 | 
			
		||||
author: "[Pavol Loffay](https://github.com/pavolloffay)"
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
In this article, you will learn how distributed tracing works in Knative and we
 | 
			
		||||
| 
						 | 
				
			
			@ -35,7 +35,7 @@ request or transaction. On the diagram below there are two user workloads (first
 | 
			
		|||
and second) and an incoming request marked as (1. HTTP) that goes to use
 | 
			
		||||
workload first and then to the workload second as a cloud event message.
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
There are two important facts about this diagram:
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -70,7 +70,7 @@ service receives an HTTP call and sends a cloud event to the second service. The
 | 
			
		|||
full demo source code can be found in
 | 
			
		||||
[pavolloffay/knative-tracing](https://github.com/pavolloffay/knative-tracing).
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
The trace shows the following services interacting: activator, first workload,
 | 
			
		||||
broker-ingress, imc-dispatcher, broker-filter, activator, and second workload.
 | 
			
		||||
| 
						 | 
				
			
			@ -166,7 +166,7 @@ The document standardizes attributes related to CloudEvents. The screenshot
 | 
			
		|||
below is from the demo application that is still not using the standardized
 | 
			
		||||
attribute names:
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
### Configuration
 | 
			
		||||
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 190 KiB After Width: | Height: | Size: 190 KiB  | 
| 
		 Before Width: | Height: | Size: 202 KiB After Width: | Height: | Size: 202 KiB  | 
| 
		 Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 59 KiB  | 
| 
						 | 
				
			
			@ -3,7 +3,7 @@ title: >-
 | 
			
		|||
  Introducing new resources for OpenTelemetry end users to connect and discover
 | 
			
		||||
  best practices
 | 
			
		||||
linkTitle: End User Resources
 | 
			
		||||
author: OpenTelemetry End User Working Group
 | 
			
		||||
author: "[OpenTelemetry End User Working Group](https://github.com/open-telemetry/community/tree/main/working-groups/end-user)"
 | 
			
		||||
date: 2022-06-30
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
---
 | 
			
		||||
title: OpenTelemetry Tuesdays, Signing Off!
 | 
			
		||||
date: 2022-03-21
 | 
			
		||||
author: Austin Parker
 | 
			
		||||
author: "[Austin Parker](https://github.com/austinlparker)"
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
When we started running OpenTelemetry Tuesday live streams back in 2019, the
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,6 +3,7 @@ title: Checklist for TroublesShooting OpenTelemetry Node.js Tracing Issues
 | 
			
		|||
linkTitle: TroublesShooting Node.js Tracing Issues
 | 
			
		||||
date: 2022-02-22
 | 
			
		||||
canonical_url: https://www.aspecto.io/blog/checklist-for-troubleshooting-opentelemetry-nodejs-tracing-issues
 | 
			
		||||
author: "[Amir Blum](https://github.com/blumamir) (Aspecto)"
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
I’ll try to make this one short and to the point. You are probably here because
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||