You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by zr...@apache.org on 2023/04/04 14:55:57 UTC

[camel-website] branch main updated (4618d2ad -> acd174bb)

This is an automated email from the ASF dual-hosted git repository.

zregvart pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/camel-website.git


    from 4618d2ad Blogpost for VS Code Language Support 0.7.0 release
     new a598b9ba Added Camel Observation blog post
     new f96e3726 Update content/blog/2023/03/camel-observation/index.md
     new 668a3d01 Update content/blog/2023/03/camel-observation/index.md
     new 5f31d2a1 Update content/blog/2023/03/camel-observation/index.md
     new 6d1e917e Update content/blog/2023/03/camel-observation/index.md
     new ef29861b Polish
     new 5863b917 Added new line at the end
     new b9412348 Fixed invalid image reference
     new ec32d1ac Changed publish date
     new 4c03f210 Moved blog from march to april
     new acd174bb Fixed a typo

The 11 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 content/blog/2023/04/camel-observation/index.md    | 138 +++++++++++++++++++++
 .../blog/2023/04/camel-observation/metrics.jpeg    | Bin 0 -> 258759 bytes
 .../blog/2023/04/camel-observation/metrics2.jpeg   | Bin 0 -> 281660 bytes
 content/blog/2023/04/camel-observation/trace.jpeg  | Bin 0 -> 200001 bytes
 4 files changed, 138 insertions(+)
 create mode 100644 content/blog/2023/04/camel-observation/index.md
 create mode 100644 content/blog/2023/04/camel-observation/metrics.jpeg
 create mode 100644 content/blog/2023/04/camel-observation/metrics2.jpeg
 create mode 100644 content/blog/2023/04/camel-observation/trace.jpeg


[camel-website] 11/11: Fixed a typo

Posted by zr...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zregvart pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-website.git

commit acd174bb57323b5e73610a7ee50acb3b10063870
Author: Marcin Grzejszczak <mg...@vmware.com>
AuthorDate: Tue Apr 4 12:06:00 2023 +0200

    Fixed a typo
---
 content/blog/2023/04/camel-observation/index.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/content/blog/2023/04/camel-observation/index.md b/content/blog/2023/04/camel-observation/index.md
index c1d4b643..81c09d08 100644
--- a/content/blog/2023/04/camel-observation/index.md
+++ b/content/blog/2023/04/camel-observation/index.md
@@ -44,7 +44,7 @@ registry.observationConfig().observationHandler(new DefaultTracingObservationHan
 - <2> - for metrics a `MeterRegistry` is needed. Check the [docs](https://micrometer.io/docs/concepts) on more information on how to wotk with Micrometer
 - <3> - an `ObservationRegistry` is required to create `Observation`. Check the [docs](https://micrometer.io/docs/observation) on more information on how to set it up
 - <4> - to add capabilities to `ObservationRegistry` one needs to add handlers. Here you have an example of a handler for metrics
-- <5> - Here you have an example of a handler for tracing. This is a basic sample, for moew information check this [part of the docs](https://micrometer.io/docs/tracing#_handler_configuration)
+- <5> - Here you have an example of a handler for tracing. This is a basic sample, for more information check this [part of the docs](https://micrometer.io/docs/tracing#_handler_configuration)
 
 ## How does Micrometer Observation work with Camel?
 


[camel-website] 05/11: Update content/blog/2023/03/camel-observation/index.md

Posted by zr...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zregvart pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-website.git

commit 6d1e917e3bc0f2c68e8cee1d3df756b152e88196
Author: Marcin Grzejszczak <ma...@grzejszczak.pl>
AuthorDate: Mon Apr 3 15:33:57 2023 +0200

    Update content/blog/2023/03/camel-observation/index.md
    
    Co-authored-by: Zoran Regvart <zo...@regvart.com>
---
 content/blog/2023/03/camel-observation/index.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/content/blog/2023/03/camel-observation/index.md b/content/blog/2023/03/camel-observation/index.md
index c5edfb63..3755c417 100644
--- a/content/blog/2023/03/camel-observation/index.md
+++ b/content/blog/2023/03/camel-observation/index.md
@@ -190,7 +190,7 @@ You should get a trace view similar to this one
 
 You will get Camel metrics. Example of one of the metrics from Prometheus
 
-![Prometheus](metrics.jpeg) 
+![Prometheus](metrics.jpeg)
 
 Example of plotting metrics in Grafana
 


[camel-website] 02/11: Update content/blog/2023/03/camel-observation/index.md

Posted by zr...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zregvart pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-website.git

commit f96e37265fd35d6a7d3ea31728c1b2ff83fd5c7d
Author: Marcin Grzejszczak <ma...@grzejszczak.pl>
AuthorDate: Mon Apr 3 15:32:17 2023 +0200

    Update content/blog/2023/03/camel-observation/index.md
    
    Co-authored-by: Zoran Regvart <zo...@regvart.com>
---
 content/blog/2023/03/camel-observation/index.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/content/blog/2023/03/camel-observation/index.md b/content/blog/2023/03/camel-observation/index.md
index 9439dee1..b11715aa 100644
--- a/content/blog/2023/03/camel-observation/index.md
+++ b/content/blog/2023/03/camel-observation/index.md
@@ -111,7 +111,7 @@ registry.observationConfig().observationHandler(new DefaultTracingObservationHan
 
 ## How does Micrometer Observation work with Camel?
 
-Apache Camel comes with an abstraction of a [`Tracer`](https://camel.apache.org/components/3.20.x/others/tracing.html). It automatically creates spans for Camel Routes.
+Apache Camel comes with an abstraction of a [`Tracer`](/components/3.20.x/others/tracing.html). It automatically creates spans for Camel Routes.
 
 With Micrometer Observation we've modified the concept of a `Tracer` to allow distingushing between high and low cardinality tags. That in turn allowed us to use the `Tracer` API to create `Observations` instead of spans. That allowed us to automatically create both traces and metrics depending on your `ObservationRegistry` setup.
 


[camel-website] 08/11: Fixed invalid image reference

Posted by zr...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zregvart pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-website.git

commit b941234867faf086304306bc7abedc74277b3396
Author: Marcin Grzejszczak <mg...@vmware.com>
AuthorDate: Mon Apr 3 17:26:25 2023 +0200

    Fixed invalid image reference
---
 content/blog/2023/03/camel-observation/index.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/content/blog/2023/03/camel-observation/index.md b/content/blog/2023/03/camel-observation/index.md
index 2e4627f4..39b6c217 100644
--- a/content/blog/2023/03/camel-observation/index.md
+++ b/content/blog/2023/03/camel-observation/index.md
@@ -123,7 +123,7 @@ All of them have `org.apache.camel.springboot:camel-observation-starter` depende
 
 You should get a trace view similar to this one
 
-![Zipkin full trace](trace.png)
+![Zipkin full trace](trace.jpeg)
 
 You will get Camel metrics. Example of one of the metrics from Prometheus
 


[camel-website] 04/11: Update content/blog/2023/03/camel-observation/index.md

Posted by zr...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zregvart pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-website.git

commit 5f31d2a1be3b76f8bc618b22b0c26d5063e4a2a0
Author: Marcin Grzejszczak <ma...@grzejszczak.pl>
AuthorDate: Mon Apr 3 15:33:49 2023 +0200

    Update content/blog/2023/03/camel-observation/index.md
    
    Co-authored-by: Zoran Regvart <zo...@regvart.com>
---
 content/blog/2023/03/camel-observation/index.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/content/blog/2023/03/camel-observation/index.md b/content/blog/2023/03/camel-observation/index.md
index 2e556010..c5edfb63 100644
--- a/content/blog/2023/03/camel-observation/index.md
+++ b/content/blog/2023/03/camel-observation/index.md
@@ -128,7 +128,7 @@ MicrometerObservationTracer micrometerObservationTracer = new MicrometerObservat
 MeterRegistry meterRegistry = new SimpleMeterRegistry();
 
 // Micrometer Tracing
-Tracer tracer = ...; 
+Tracer tracer = ...;
 Propagator propagator = ...;
 
 // Micrometer Observation setup


[camel-website] 06/11: Polish

Posted by zr...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zregvart pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-website.git

commit ef29861b119d760a417f01943765f2044739a4dc
Author: Marcin Grzejszczak <mg...@vmware.com>
AuthorDate: Mon Apr 3 15:24:51 2023 +0200

    Polish
---
 content/blog/2023/03/camel-observation/index.md | 71 ++-----------------------
 1 file changed, 4 insertions(+), 67 deletions(-)

diff --git a/content/blog/2023/03/camel-observation/index.md b/content/blog/2023/03/camel-observation/index.md
index 3755c417..27fd0995 100644
--- a/content/blog/2023/03/camel-observation/index.md
+++ b/content/blog/2023/03/camel-observation/index.md
@@ -7,71 +7,9 @@ categories: ["Camel Observation", "Features"]
 preview: "Micrometer Observation: how to configure Distributed Tracing and Metrics"
 ---
 
-The Spring Observability Team has added native observability support for Spring Applications with Spring Framework 6 and Spring Boot 3. You can read more about the feature in [the Spring blog](https://spring.io/blog/2022/10/12/observability-with-spring-boot-3). This blog post will explain what Observability is, how it's done with Micrometer Observation and how you can add observability to your Camel projects.
+The Spring Observability Team has added native observability support for Spring Applications with Spring Framework 6 and Spring Boot 3. You can read more about the feature in [the Spring blog](https://spring.io/blog/2022/10/12/observability-with-spring-boot-3) where the Micrometer team explains what Observability and [Micrometer Observation](https://micrometer.io/docs/observation) projects are. This blog post will explain  how to set up Micrometer Observation and how you can add observab [...]
 
-## What is Observability?
-
-In our understanding, it is _"how well you can understand the internals of your system by examining its outputs"_. We believe that the interconnection between metrics, logging, and distributed tracing gives you the ability to reason about the state of your system in order to debug exceptions and latency in your applications. You can watch more about what we think observability is in https://tanzu.vmware.com/developer/tv/enlightning/10/[this episode of Enlightning with Jonatan Ivanov].
-
-With Spring Boot `3.0.0` release we've added numerous autoconfigurations for improved metrics with [Micrometer](https://micrometer.io/) and new distributed tracing support with [Micrometer Tracing](https://micrometer.io/docs/tracing)  (formerly [Spring Cloud Sleuth](https://spring.io/projects/spring-cloud-sleuth)).
-
-## What is Micrometer Observation?
-
-With Micrometer 1.10.0 we have introduced a new API: the Observation API.
-
-> The idea of its founding was that we want the users to instrument their code once using a single API and have multiple benefits out of it (e.g. metrics, tracing, logging).
-
-For any observation to happen, you need to register `ObservationHandler` objects through an `ObservationRegistry`. An `ObservationHandler` reacts only to supported implementations of an `Observation.Context` and can create, for example, timers, spans, and logs by reacting to the lifecycle events of an observation, such as:
-
-* `start` - Observation has been started. Happens when the `Observation#start()` method gets called.
-* `stop` - Observation has been stopped. Happens when the `Observation#stop()` method gets called.
-* `error` - An error occurred while observing. Happens when the `Observation#error(exception)` method gets called.
-* `event` - An event happened when observing. Happens when the `Observation#event(event)` method gets called.
-* `scope started` - Observation opens a scope. The scope must be closed when no longer used. Handlers can create thread local variables on start that are cleared upon closing of the scope. Happens when the `Observation#openScope()` method gets called.
-* `scope stopped` - Observation stops a scope. Happens when the `Observation.Scope#close()` method gets called.
-
-Whenever any of these methods is called, an `ObservationHandler` method (such as `onStart(T extends Observation.Context ctx)`, `onStop(T extends Observation.Context ctx)`, and so on) are called. To pass state between the handler methods, you can use the `Observation.Context`.
-
-The observation state diagram looks like this:
-
-```
-        Observation           Observation
-        Context               Context
-Created ----------> Started ----------> Stopped
-```
-
-The observation Scope state diagram looks like this:
-
-```
-              Observation
-              Context
-Scope Started ----------> Scope Closed
-```
-
-To make it possible to debug production problems, an observation needs additional metadata, such as key-value pairs (also known as tags). You can then query your metrics or distributed tracing backend by using those tags to find the required data. Tags can be of either high or low cardinality.
-
-This is an example of the Micrometer Observation API.
-
-```java
-        // Create an ObservationRegistry
-        ObservationRegistry registry = ObservationRegistry.create();
-        // Register an ObservationHandler
-        registry.observationConfig().observationHandler(new MyHandler());
-
-        // Create an Observation and observe your code!
-        Observation.createNotStarted("user.name", registry)
-                .contextualName("getting-user-name")
-                .lowCardinalityKeyValue("userType", "userType1") // let's assume that you can have 3 user types
-                .highCardinalityKeyValue("userId", "1234") // let's assume that this is an arbitrary number
-                .observe(() -> log.info("Hello")); // this is a shortcut for starting an observation, opening a scope, running user's code, closing the scope and stopping the observation
-```
-
-IMPORTANT:  *High cardinality* means that a pair will have an unbounded number of possible values. An HTTP URL is a good
-example of such a key value (for example, `/user/user1234`, `/user/user2345`, and so on). *Low cardinality* means that a key value will  have a bounded number of possible values. A *templated* HTTP URL (such as `/user/{userId}`) is a good example of such a key value.
-
-Assuming that the code above does instrumentation you haven't seen any tracing or metrics related setup so far. That's because we separate instrumentation from its configuration. The fact of doing metrics, tracing or logging should be a configuration problem. Let's look now how we could configure the `ObservationRegistry` to do metrics and tracing.
-
-### Setting up the ObservationRegistry
+## Setting up the ObservationRegistry
 
 The following snippet of code shows how to set up basic metrics and tracing capabilities for an `ObservationRegistry`.
 
@@ -108,12 +46,11 @@ registry.observationConfig().observationHandler(new DefaultTracingObservationHan
 - <4> - to add capabilities to `ObservationRegistry` one needs to add handlers. Here you have an example of a handler for metrics
 - <5> - Here you have an example of a handler for tracing. This is a basic sample, for moew information check this [part of the docs](https://micrometer.io/docs/tracing#_handler_configuration)
 
-
 ## How does Micrometer Observation work with Camel?
 
 Apache Camel comes with an abstraction of a [`Tracer`](/components/3.20.x/others/tracing.html). It automatically creates spans for Camel Routes.
 
-With Micrometer Observation we've modified the concept of a `Tracer` to allow distingushing between high and low cardinality tags. That in turn allowed us to use the `Tracer` API to create `Observations` instead of spans. That allowed us to automatically create both traces and metrics depending on your `ObservationRegistry` setup.
+With Micrometer Observation there's the modified concept of a `Tracer` to allow distingushing between high and low cardinality tags. That in turn allows to use the `Tracer` API to create `Observations` instead of spans. That allows to automatically create both traces and metrics depending on your `ObservationRegistry` setup.
 
 ### Setting up Micrometer Observation with Camel
 
@@ -170,7 +107,7 @@ public class ClientApplication {
 
 In this section you will see an example of running different applciations that use Camel with Micrometer, send their spans to [Zipkin](https://zipkin.io) and expose their metrics on a [Prometheus](https://prometheus.io/) endpoint. You can find the Camel & Micrometer Observation examples [here](https://github.com/apache/camel-spring-boot-examples/tree/main/observation).
 
-For Metrics we are using Micrometer Core, for Tracing we're using Micrometer Tracing with [Brave](https://github.com/openzipkin/brave). The application have their tracing sampling probabilities set to always sample. Check the [Spring Boot docs](https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#actuator.micrometer-tracing.getting-started) for more information on how to configure Spring Boot with Micrometer Tracing.
+For Metrics let's use Micrometer Core, for Tracing Micrometer Tracing with [Brave](https://github.com/openzipkin/brave). The application have their tracing sampling probabilities set to always sample. Check the [Spring Boot docs](https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#actuator.micrometer-tracing.getting-started) for more information on how to configure Spring Boot with Micrometer Tracing.
 
 The example includes three applications
 


[camel-website] 07/11: Added new line at the end

Posted by zr...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zregvart pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-website.git

commit 5863b917e6f11e1f39c9344dbe5a4523660c262d
Author: Marcin Grzejszczak <mg...@vmware.com>
AuthorDate: Mon Apr 3 15:34:54 2023 +0200

    Added new line at the end
---
 content/blog/2023/03/camel-observation/index.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/content/blog/2023/03/camel-observation/index.md b/content/blog/2023/03/camel-observation/index.md
index 27fd0995..2e4627f4 100644
--- a/content/blog/2023/03/camel-observation/index.md
+++ b/content/blog/2023/03/camel-observation/index.md
@@ -3,7 +3,7 @@ title: "Camel Micrometer Observation: Observability with Micrometer"
 date: 2023-03-28
 draft: false
 authors: [marcingrzejszczak]
-categories: ["Camel Observation", "Features"]
+categories: ["Features", "Observability"]
 preview: "Micrometer Observation: how to configure Distributed Tracing and Metrics"
 ---
 
@@ -135,4 +135,4 @@ Example of plotting metrics in Grafana
 
 ## Summary
 
-In this blog post you've managed to learn how you can leverage the new `camel-observation` component that uses Micrometer Observation to make your Camel routes observable.
\ No newline at end of file
+In this blog post you've managed to learn how you can leverage the new `camel-observation` component that uses Micrometer Observation to make your Camel routes observable.


[camel-website] 03/11: Update content/blog/2023/03/camel-observation/index.md

Posted by zr...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zregvart pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-website.git

commit 668a3d01b8273358f2fd04ef163b4f1f5fa2c3dc
Author: Marcin Grzejszczak <ma...@grzejszczak.pl>
AuthorDate: Mon Apr 3 15:33:13 2023 +0200

    Update content/blog/2023/03/camel-observation/index.md
    
    Co-authored-by: Zoran Regvart <zo...@regvart.com>
---
 content/blog/2023/03/camel-observation/index.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/content/blog/2023/03/camel-observation/index.md b/content/blog/2023/03/camel-observation/index.md
index b11715aa..2e556010 100644
--- a/content/blog/2023/03/camel-observation/index.md
+++ b/content/blog/2023/03/camel-observation/index.md
@@ -136,8 +136,8 @@ ObservationRegistry observationRegistry = ObservationRegistry.create();
 observationRegistry.observationConfig().observationHandler(new DefaultMeterObservationHandler(meterRegistry));
 observationRegistry.observationConfig().observationHandler(
     new ObservationHandler.FirstMatchingCompositeObservationHandler(
-        new PropagatingSenderTracingObservationHandler<>(tracer, propagator), 
-        new PropagatingReceiverTracingObservationHandler<>(tracer, propagator), 
+        new PropagatingSenderTracingObservationHandler<>(tracer, propagator),
+        new PropagatingReceiverTracingObservationHandler<>(tracer, propagator),
         new DefaultTracingObservationHandler(tracer)
     )
 );


[camel-website] 01/11: Added Camel Observation blog post

Posted by zr...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zregvart pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-website.git

commit a598b9ba3485a913207f1d6aae2ac2061d41648c
Author: Marcin Grzejszczak <mg...@vmware.com>
AuthorDate: Fri Mar 31 15:05:54 2023 +0200

    Added Camel Observation blog post
---
 content/blog/2023/03/camel-observation/index.md    | 201 +++++++++++++++++++++
 .../blog/2023/03/camel-observation/metrics.jpeg    | Bin 0 -> 258759 bytes
 .../blog/2023/03/camel-observation/metrics2.jpeg   | Bin 0 -> 281660 bytes
 content/blog/2023/03/camel-observation/trace.jpeg  | Bin 0 -> 200001 bytes
 4 files changed, 201 insertions(+)

diff --git a/content/blog/2023/03/camel-observation/index.md b/content/blog/2023/03/camel-observation/index.md
new file mode 100644
index 00000000..9439dee1
--- /dev/null
+++ b/content/blog/2023/03/camel-observation/index.md
@@ -0,0 +1,201 @@
+---
+title: "Camel Micrometer Observation: Observability with Micrometer"
+date: 2023-03-28
+draft: false
+authors: [marcingrzejszczak]
+categories: ["Camel Observation", "Features"]
+preview: "Micrometer Observation: how to configure Distributed Tracing and Metrics"
+---
+
+The Spring Observability Team has added native observability support for Spring Applications with Spring Framework 6 and Spring Boot 3. You can read more about the feature in [the Spring blog](https://spring.io/blog/2022/10/12/observability-with-spring-boot-3). This blog post will explain what Observability is, how it's done with Micrometer Observation and how you can add observability to your Camel projects.
+
+## What is Observability?
+
+In our understanding, it is _"how well you can understand the internals of your system by examining its outputs"_. We believe that the interconnection between metrics, logging, and distributed tracing gives you the ability to reason about the state of your system in order to debug exceptions and latency in your applications. You can watch more about what we think observability is in https://tanzu.vmware.com/developer/tv/enlightning/10/[this episode of Enlightning with Jonatan Ivanov].
+
+With Spring Boot `3.0.0` release we've added numerous autoconfigurations for improved metrics with [Micrometer](https://micrometer.io/) and new distributed tracing support with [Micrometer Tracing](https://micrometer.io/docs/tracing)  (formerly [Spring Cloud Sleuth](https://spring.io/projects/spring-cloud-sleuth)).
+
+## What is Micrometer Observation?
+
+With Micrometer 1.10.0 we have introduced a new API: the Observation API.
+
+> The idea of its founding was that we want the users to instrument their code once using a single API and have multiple benefits out of it (e.g. metrics, tracing, logging).
+
+For any observation to happen, you need to register `ObservationHandler` objects through an `ObservationRegistry`. An `ObservationHandler` reacts only to supported implementations of an `Observation.Context` and can create, for example, timers, spans, and logs by reacting to the lifecycle events of an observation, such as:
+
+* `start` - Observation has been started. Happens when the `Observation#start()` method gets called.
+* `stop` - Observation has been stopped. Happens when the `Observation#stop()` method gets called.
+* `error` - An error occurred while observing. Happens when the `Observation#error(exception)` method gets called.
+* `event` - An event happened when observing. Happens when the `Observation#event(event)` method gets called.
+* `scope started` - Observation opens a scope. The scope must be closed when no longer used. Handlers can create thread local variables on start that are cleared upon closing of the scope. Happens when the `Observation#openScope()` method gets called.
+* `scope stopped` - Observation stops a scope. Happens when the `Observation.Scope#close()` method gets called.
+
+Whenever any of these methods is called, an `ObservationHandler` method (such as `onStart(T extends Observation.Context ctx)`, `onStop(T extends Observation.Context ctx)`, and so on) are called. To pass state between the handler methods, you can use the `Observation.Context`.
+
+The observation state diagram looks like this:
+
+```
+        Observation           Observation
+        Context               Context
+Created ----------> Started ----------> Stopped
+```
+
+The observation Scope state diagram looks like this:
+
+```
+              Observation
+              Context
+Scope Started ----------> Scope Closed
+```
+
+To make it possible to debug production problems, an observation needs additional metadata, such as key-value pairs (also known as tags). You can then query your metrics or distributed tracing backend by using those tags to find the required data. Tags can be of either high or low cardinality.
+
+This is an example of the Micrometer Observation API.
+
+```java
+        // Create an ObservationRegistry
+        ObservationRegistry registry = ObservationRegistry.create();
+        // Register an ObservationHandler
+        registry.observationConfig().observationHandler(new MyHandler());
+
+        // Create an Observation and observe your code!
+        Observation.createNotStarted("user.name", registry)
+                .contextualName("getting-user-name")
+                .lowCardinalityKeyValue("userType", "userType1") // let's assume that you can have 3 user types
+                .highCardinalityKeyValue("userId", "1234") // let's assume that this is an arbitrary number
+                .observe(() -> log.info("Hello")); // this is a shortcut for starting an observation, opening a scope, running user's code, closing the scope and stopping the observation
+```
+
+IMPORTANT:  *High cardinality* means that a pair will have an unbounded number of possible values. An HTTP URL is a good
+example of such a key value (for example, `/user/user1234`, `/user/user2345`, and so on). *Low cardinality* means that a key value will  have a bounded number of possible values. A *templated* HTTP URL (such as `/user/{userId}`) is a good example of such a key value.
+
+Assuming that the code above does instrumentation you haven't seen any tracing or metrics related setup so far. That's because we separate instrumentation from its configuration. The fact of doing metrics, tracing or logging should be a configuration problem. Let's look now how we could configure the `ObservationRegistry` to do metrics and tracing.
+
+### Setting up the ObservationRegistry
+
+The following snippet of code shows how to set up basic metrics and tracing capabilities for an `ObservationRegistry`.
+
+```java
+// Micrometer Core JAR
+import io.micrometer.core.instrument.MeterRegistry;
+import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
+// Micrometer Observation JAR
+import io.micrometer.core.instrument.observation.DefaultMeterObservationHandler;
+import io.micrometer.observation.ObservationRegistry;
+// Micrometer Tracing JAR
+import io.micrometer.tracing.Tracer;
+
+// [Tracing]
+// Skipped the whole setup of a Micrometer Tracing tracer
+// you can check the https://micrometer.io/docs/tracing docs
+// for examples of Brave and OpenTelemetry Tracer setup
+io.micrometer.tracing.Tracer tracer = ...; // <1>
+
+// [Metrics]
+MeterRegistry meterRegistry = new SimpleMeterRegistry(); // <2>
+
+// Setting up ObservationRegistry
+ObservationRegistry registry = ObservationRegistry.create(); // <3>
+// Adding metrics support
+registry.observationConfig().observationHandler(new DefaultMeterObservationHandler(meterRegistry)); // <4>
+// Adding basic tracing support
+registry.observationConfig().observationHandler(new DefaultTracingObservationHandler(tracer)); // <5>
+```
+
+- <1> - for tracing a `Tracer` is needed. Check the [docs](https://micrometer.io/docs/tracing) on more information on how to set it up
+- <2> - for metrics a `MeterRegistry` is needed. Check the [docs](https://micrometer.io/docs/concepts) on more information on how to wotk with Micrometer
+- <3> - an `ObservationRegistry` is required to create `Observation`. Check the [docs](https://micrometer.io/docs/observation) on more information on how to set it up
+- <4> - to add capabilities to `ObservationRegistry` one needs to add handlers. Here you have an example of a handler for metrics
+- <5> - Here you have an example of a handler for tracing. This is a basic sample, for moew information check this [part of the docs](https://micrometer.io/docs/tracing#_handler_configuration)
+
+
+## How does Micrometer Observation work with Camel?
+
+Apache Camel comes with an abstraction of a [`Tracer`](https://camel.apache.org/components/3.20.x/others/tracing.html). It automatically creates spans for Camel Routes.
+
+With Micrometer Observation we've modified the concept of a `Tracer` to allow distingushing between high and low cardinality tags. That in turn allowed us to use the `Tracer` API to create `Observations` instead of spans. That allowed us to automatically create both traces and metrics depending on your `ObservationRegistry` setup.
+
+### Setting up Micrometer Observation with Camel
+
+In order to set up Micrometer Observation with Camel you need to use the new `camel-observation` component and set up a `MicrometerObservationTracer` and register it in the `CamelContext`.
+
+```java
+// Camel
+CamelContext context = ...;
+MicrometerObservationTracer micrometerObservationTracer = new MicrometerObservationTracer();
+
+// Micrometer Core
+MeterRegistry meterRegistry = new SimpleMeterRegistry();
+
+// Micrometer Tracing
+Tracer tracer = ...; 
+Propagator propagator = ...;
+
+// Micrometer Observation setup
+ObservationRegistry observationRegistry = ObservationRegistry.create();
+observationRegistry.observationConfig().observationHandler(new DefaultMeterObservationHandler(meterRegistry));
+observationRegistry.observationConfig().observationHandler(
+    new ObservationHandler.FirstMatchingCompositeObservationHandler(
+        new PropagatingSenderTracingObservationHandler<>(tracer, propagator), 
+        new PropagatingReceiverTracingObservationHandler<>(tracer, propagator), 
+        new DefaultTracingObservationHandler(tracer)
+    )
+);
+
+// Camel
+// Setting up Micrometer Observation Tracer
+micrometerObservationTracer.setObservationRegistry(observationRegistry);
+micrometerObservationTracer.setTracer(tracer);
+micrometerObservationTracer.init(context);
+```
+
+With this setup you will start creating spans and metrics for your routes.
+
+### Setting up Micrometer Observation with Camel and Spring Boot
+
+With Spring Boot the setup is easier, because all the components come pre-configured for you. Just annotate your class with `@CamelObservation` and your `CamelContext` will automatically be setup depending on your classpath.
+
+```java
+@SpringBootApplication
+@CamelObservation
+public class ClientApplication {
+
+    public static void main(String[] args) {
+		SpringApplication.run(ClientApplication.class, args);
+	}
+}
+```
+
+## Example
+
+In this section you will see an example of running different applciations that use Camel with Micrometer, send their spans to [Zipkin](https://zipkin.io) and expose their metrics on a [Prometheus](https://prometheus.io/) endpoint. You can find the Camel & Micrometer Observation examples [here](https://github.com/apache/camel-spring-boot-examples/tree/main/observation).
+
+For Metrics we are using Micrometer Core, for Tracing we're using Micrometer Tracing with [Brave](https://github.com/openzipkin/brave). The application have their tracing sampling probabilities set to always sample. Check the [Spring Boot docs](https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#actuator.micrometer-tracing.getting-started) for more information on how to configure Spring Boot with Micrometer Tracing.
+
+The example includes three applications
+
+* client
+* service1
+* service2
+
+Where client -> service1 -> service2 using HTTP.
+
+All of them have `org.apache.camel.springboot:camel-observation-starter` dependency on the classpath.
+
+### Outcome
+
+You should get a trace view similar to this one
+
+![Zipkin full trace](trace.png)
+
+You will get Camel metrics. Example of one of the metrics from Prometheus
+
+![Prometheus](metrics.jpeg) 
+
+Example of plotting metrics in Grafana
+
+![Grafana](metrics2.jpeg)
+
+## Summary
+
+In this blog post you've managed to learn how you can leverage the new `camel-observation` component that uses Micrometer Observation to make your Camel routes observable.
\ No newline at end of file
diff --git a/content/blog/2023/03/camel-observation/metrics.jpeg b/content/blog/2023/03/camel-observation/metrics.jpeg
new file mode 100644
index 00000000..57683311
Binary files /dev/null and b/content/blog/2023/03/camel-observation/metrics.jpeg differ
diff --git a/content/blog/2023/03/camel-observation/metrics2.jpeg b/content/blog/2023/03/camel-observation/metrics2.jpeg
new file mode 100644
index 00000000..715269e3
Binary files /dev/null and b/content/blog/2023/03/camel-observation/metrics2.jpeg differ
diff --git a/content/blog/2023/03/camel-observation/trace.jpeg b/content/blog/2023/03/camel-observation/trace.jpeg
new file mode 100644
index 00000000..1e907ad1
Binary files /dev/null and b/content/blog/2023/03/camel-observation/trace.jpeg differ


[camel-website] 10/11: Moved blog from march to april

Posted by zr...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zregvart pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-website.git

commit 4c03f210e13b647827e038eb62dadadcac9a31a2
Author: Marcin Grzejszczak <mg...@vmware.com>
AuthorDate: Mon Apr 3 18:11:28 2023 +0200

    Moved blog from march to april
---
 content/blog/2023/{03 => 04}/camel-observation/index.md     |   0
 content/blog/2023/{03 => 04}/camel-observation/metrics.jpeg | Bin
 .../blog/2023/{03 => 04}/camel-observation/metrics2.jpeg    | Bin
 content/blog/2023/{03 => 04}/camel-observation/trace.jpeg   | Bin
 4 files changed, 0 insertions(+), 0 deletions(-)

diff --git a/content/blog/2023/03/camel-observation/index.md b/content/blog/2023/04/camel-observation/index.md
similarity index 100%
rename from content/blog/2023/03/camel-observation/index.md
rename to content/blog/2023/04/camel-observation/index.md
diff --git a/content/blog/2023/03/camel-observation/metrics.jpeg b/content/blog/2023/04/camel-observation/metrics.jpeg
similarity index 100%
rename from content/blog/2023/03/camel-observation/metrics.jpeg
rename to content/blog/2023/04/camel-observation/metrics.jpeg
diff --git a/content/blog/2023/03/camel-observation/metrics2.jpeg b/content/blog/2023/04/camel-observation/metrics2.jpeg
similarity index 100%
rename from content/blog/2023/03/camel-observation/metrics2.jpeg
rename to content/blog/2023/04/camel-observation/metrics2.jpeg
diff --git a/content/blog/2023/03/camel-observation/trace.jpeg b/content/blog/2023/04/camel-observation/trace.jpeg
similarity index 100%
rename from content/blog/2023/03/camel-observation/trace.jpeg
rename to content/blog/2023/04/camel-observation/trace.jpeg


[camel-website] 09/11: Changed publish date

Posted by zr...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

zregvart pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-website.git

commit ec32d1ac52cf12bfcbe475ed0757941541d2fe3b
Author: Marcin Grzejszczak <mg...@vmware.com>
AuthorDate: Mon Apr 3 18:09:53 2023 +0200

    Changed publish date
---
 content/blog/2023/03/camel-observation/index.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/content/blog/2023/03/camel-observation/index.md b/content/blog/2023/03/camel-observation/index.md
index 39b6c217..c1d4b643 100644
--- a/content/blog/2023/03/camel-observation/index.md
+++ b/content/blog/2023/03/camel-observation/index.md
@@ -1,6 +1,6 @@
 ---
 title: "Camel Micrometer Observation: Observability with Micrometer"
-date: 2023-03-28
+date: 2023-04-04
 draft: false
 authors: [marcingrzejszczak]
 categories: ["Features", "Observability"]