<?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-3229--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-3229--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-3229--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-3229--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-3229--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-3229--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 can collect runtime metrics for RPC calls, metadata, registries, config centers, and other components. This guide uses &lt;a href="https://github.com/apache/dubbo-go-samples/tree/main/observability/prometheus_grafana" target="_blank">dubbo-go-samples/observability/prometheus_grafana&lt;/a> to show both Prometheus Pull mode and Pushgateway mode.&lt;/p>
&lt;blockquote>
&lt;p>Note: some older descriptions may still mention &lt;code>metrics/prometheus_grafana&lt;/code>. The current sample directory is &lt;code>observability/prometheus_grafana&lt;/code>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="1-monitoring-modes">1. Monitoring Modes&lt;/h2>
&lt;h3 id="11-pull-mode">1.1 Pull Mode&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-text" data-lang="text">&lt;span style="display:flex;">&lt;span>Dubbo-Go application exposes /prometheus or /metrics
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> |
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> v
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Prometheus scrapes the application
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> |
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> v
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Grafana queries Prometheus and renders dashboards
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Pull mode is the standard Prometheus model and is recommended for long-running Dubbo-Go providers and consumers. In this sample:&lt;/p></description></item><item><title>Link Tracing</title><link>https://deploy-preview-3229--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-3229--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/tracing">here&lt;/a>.&lt;/p></description></item><item><title>Kubernetes Lifecycle Probe</title><link>https://deploy-preview-3229--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-3229--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/observability/probe">https://github.com/apache/dubbo-go-samples/tree/main/observability/probe&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>