<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Visual Observation on Apache Dubbo</title><link>https://deploy-preview-3210--dubbo.netlify.app/en/overview/mannual/golang-sdk/tutorial/observability/</link><description>Recent content in Visual Observation on Apache Dubbo</description><generator>Hugo</generator><language>en</language><atom:link href="https://deploy-preview-3210--dubbo.netlify.app/en/overview/mannual/golang-sdk/tutorial/observability/index.xml" rel="self" type="application/rss+xml"/><item><title>Configure and Manage Framework Logs</title><link>https://deploy-preview-3210--dubbo.netlify.app/en/overview/mannual/golang-sdk/tutorial/observability/logger/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3210--dubbo.netlify.app/en/overview/mannual/golang-sdk/tutorial/observability/logger/</guid><description>&lt;p>This example demonstrates how to configure the dubbo-go framework log component to save the framework&amp;rsquo;s runtime logs to a specified location. You can view the &lt;a href="https://github.com/apache/dubbo-go-samples/tree/main/logger/level" target="_blank">complete example source code here&lt;/a>.&lt;/p>


&lt;div class="alert alert-info" role="alert">
&lt;h4 class="alert-heading">Note&lt;/h4>

 The configuration here only affects the log component behavior of the dubbo-go framework itself, which is the internal logging used by the framework and does not affect the use of business logging frameworks!

&lt;/div>

&lt;h2 id="1-log-configuration">1. Log Configuration&lt;/h2>
&lt;p>As shown below, you can set the dubbo framework log behavior using &lt;code>log.WithZap()&lt;/code> and &lt;code>log.WithLevel(&amp;quot;warn&amp;quot;)&lt;/code>:&lt;/p></description></item><item><title>Metrics Monitoring</title><link>https://deploy-preview-3210--dubbo.netlify.app/en/overview/mannual/golang-sdk/tutorial/observability/rpc_metrics/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3210--dubbo.netlify.app/en/overview/mannual/golang-sdk/tutorial/observability/rpc_metrics/</guid><description>&lt;h1 id="dubbo-go-metrics-monitoring">Dubbo-Go Metrics Monitoring&lt;/h1>
&lt;p>Dubbo-Go supports runtime metrics collection and integration with &lt;strong>Prometheus + Grafana&lt;/strong> to build observability for microservices.&lt;/p>
&lt;p>This example covers two monitoring modes:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Pull Mode&lt;/strong>: Prometheus scrapes metrics from Dubbo-Go applications. Recommended for long-running services.&lt;/li>
&lt;li>&lt;strong>Push Mode&lt;/strong>: Dubbo-Go applications push metrics to Pushgateway. Recommended only for short-lived jobs.&lt;/li>
&lt;/ul>
&lt;p>Example source code:&lt;/p>
&lt;blockquote>
&lt;p>&lt;a href="https://github.com/apache/dubbo-go-samples/tree/main/metrics">https://github.com/apache/dubbo-go-samples/tree/main/metrics&lt;/a>&lt;/p>
&lt;/blockquote>
&lt;h2 id="1-monitoring-architecture">1. Monitoring Architecture&lt;/h2>
&lt;h3 id="11-pull-mode-recommended-for-production">1.1 Pull Mode (Recommended for production)&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>Dubbo-Go Application ---&amp;gt; Prometheus ---&amp;gt; Grafana
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> (exposes /metrics or /prometheus endpoint)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Prometheus actively scrapes metrics from Dubbo-Go applications.&lt;/p></description></item><item><title>Link Tracing</title><link>https://deploy-preview-3210--dubbo.netlify.app/en/overview/mannual/golang-sdk/tutorial/observability/tracing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3210--dubbo.netlify.app/en/overview/mannual/golang-sdk/tutorial/observability/tracing/</guid><description>&lt;p>Dubbo-go supports end-to-end tracing based on the &lt;a href="https://opentelemetry.io/">OpenTelemetry&lt;/a> standard, while also supporting export to different tracing backend systems through the following exporters.&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://opentelemetry.io/docs/specs/otel/logs/sdk_exporters/stdout/">Stdout exporter&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://opentelemetry.io/docs/languages/js/exporters/#jaeger">Jaeger exporter&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://opentelemetry.io/docs/languages/js/exporters/#zipkin">Zipkin exporter&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://opentelemetry.io/docs/languages/js/exporters/#use-otlp-exporter-with-httpjson-or-httpprotobuf">OTLP-HTTP exporter&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://opentelemetry.io/docs/languages/sdk-configuration/otlp-exporter/">OTLP-gRPC exporter&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="usage">Usage&lt;/h2>
&lt;p>Please note that tracing functionality is only enabled when creating the Dubbo application via &lt;code>dubbo.NewInstance&lt;/code>, which is the &lt;code>microservice application mode&lt;/code> mentioned in our quick start. The &lt;code>lightweight RPC API&lt;/code> does not currently support enabling tracing.&lt;/p>
&lt;h2 id="example-explanation">Example Explanation&lt;/h2>
&lt;p>You can view the full example source code &lt;a href="https://github.com/apache/dubbo-go-samples/tree/main/otel">here&lt;/a>.&lt;/p></description></item><item><title>Kubernetes Lifecycle Probe</title><link>https://deploy-preview-3210--dubbo.netlify.app/en/overview/mannual/golang-sdk/tutorial/observability/probe/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3210--dubbo.netlify.app/en/overview/mannual/golang-sdk/tutorial/observability/probe/</guid><description>&lt;h1 id="dubbo-go-kubernetes-lifecycle-probe">Dubbo-Go Kubernetes Lifecycle Probe&lt;/h1>
&lt;p>Dubbo-Go provides a built-in &lt;strong>Kubernetes HTTP Probe service&lt;/strong> that supports:&lt;/p>
&lt;ul>
&lt;li>✅ &lt;code>liveness&lt;/code>&lt;/li>
&lt;li>✅ &lt;code>readiness&lt;/code>&lt;/li>
&lt;li>✅ &lt;code>startup&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>The probe service runs on an independent HTTP port and supports:&lt;/p>
&lt;ul>
&lt;li>Custom health check logic&lt;/li>
&lt;li>Optional alignment with Dubbo internal lifecycle state&lt;/li>
&lt;li>Controlled restart risk management&lt;/li>
&lt;/ul>
&lt;p>For a complete runnable example, see:&lt;/p>
&lt;blockquote>
&lt;p>&lt;a href="https://github.com/apache/dubbo-go-samples/tree/main/metrics">https://github.com/apache/dubbo-go-samples/tree/main/metrics&lt;/a>&lt;/p>
&lt;/blockquote>
&lt;hr>
&lt;h1 id="1-design-goals">1. Design Goals&lt;/h1>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th style="text-align: left">Goal&lt;/th>
 &lt;th style="text-align: left">Description&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td style="text-align: left">Extensibility&lt;/td>
 &lt;td style="text-align: left">Supports custom health check callbacks&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">Risk Control&lt;/td>
 &lt;td style="text-align: left">Liveness does not bind complex internal logic by default&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">Lifecycle Alignment&lt;/td>
 &lt;td style="text-align: left">Readiness and startup can align with Dubbo lifecycle&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">Independent Port&lt;/td>
 &lt;td style="text-align: left">Isolated from business service port&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;hr>
&lt;h1 id="2-default-behavior">2. Default Behavior&lt;/h1>
&lt;p>When Probe is enabled, it exposes endpoints on:&lt;/p></description></item></channel></rss>