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

github-actions[bot] pushed a commit to branch cn-site
in repository https://gitbox.apache.org/repos/asf/dubbo-website.git


The following commit(s) were added to refs/heads/cn-site by this push:
     new 69c1e82b92c deploy: 343f94b02819309762662afdfbc09743595e2c5a
69c1e82b92c is described below

commit 69c1e82b92ca9983d8a516baf4cd6a611c6827de
Author: Alanxtl <[email protected]>
AuthorDate: Sun Aug 9 04:52:18 2026 +0000

    deploy: 343f94b02819309762662afdfbc09743595e2c5a
---
 css/app.css                                        |   2 +-
 css/chunk-vendors.css                              |   2 +-
 en/index.xml                                       |  25 ++--
 .../golang-sdk/tutorial/observability/index.xml    |  25 ++--
 .../tutorial/observability/rpc_metrics/index.html  | 141 ++++++++++----------
 en/sitemap.xml                                     |   2 +-
 js/app.js                                          |   3 +-
 js/chunk-vendors.js                                |  61 +--------
 sitemap.xml                                        |   2 +-
 zh-cn/index.xml                                    |  74 +++++------
 .../golang-sdk/tutorial/observability/index.xml    |  74 +++++------
 .../tutorial/observability/rpc_metrics/index.html  | 142 +++++++++++----------
 zh-cn/sitemap.xml                                  |   2 +-
 13 files changed, 247 insertions(+), 308 deletions(-)

diff --git a/css/app.css b/css/app.css
index 44c2a2c2469..b9457c8de14 100644
--- a/css/app.css
+++ b/css/app.css
@@ -1 +1 @@
-h3[data-v-76eccb7f]{margin:40px 0 
0}ul[data-v-76eccb7f]{list-style-type:none;padding:0}li[data-v-76eccb7f]{display:inline-block;margin:0
 
10px}a[data-v-76eccb7f]{color:#42b983}.form-layout[data-v-76eccb7f]{display:flex;justify-content:space-between;align-items:flex-start}.left-form[data-v-76eccb7f]{flex:1;max-width:calc(50%
 - 
20px);margin-right:20px}.right-text[data-v-76eccb7f]{flex-shrink:0;width:calc(50%
 - 20px)}.left-form 
.el-form-item__label[data-v-76eccb7f]{text-align:left}.left-form [...]
\ No newline at end of file
+/*Respond to static link checks, which will be dynamically replaced at build 
time*/
\ No newline at end of file
diff --git a/css/chunk-vendors.css b/css/chunk-vendors.css
index 61c66238ea8..b9457c8de14 100644
--- a/css/chunk-vendors.css
+++ b/css/chunk-vendors.css
@@ -1 +1 @@
-@font-face{font-family:element-icons;src:url(../fonts/element-icons.ff18efd1.woff)
 format("woff"),url(../fonts/element-icons.f1a45d74.ttf) 
format("truetype");font-weight:400;font-display:"auto";font-style:normal}[class*="
 
el-icon-"],[class^=el-icon-]{font-family:element-icons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;vertical-align:baseline;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:gr
 [...]
\ No newline at end of file
+/*Respond to static link checks, which will be dynamically replaced at build 
time*/
\ No newline at end of file
diff --git a/en/index.xml b/en/index.xml
index a4553a7071f..17c107c61ed 100644
--- a/en/index.xml
+++ b/en/index.xml
@@ -2732,21 +2732,20 @@ This example will demonstrate how to compile the 
dubbo-pilot control plane and h
 &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 
id="dubbo-response-log"&gt;Dubbo response log&lt;/h3&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code
 class="language-bash" data-lang="bash"&gt;&lt;span 
style="display:flex;"&gt;&lt;span&gt;2020-11-17T11:31:05.718+0800 DEBUG 
dubbo/dubbo.go:160 &lt;span 
style="color:#719e07"&gt;[&lt;/span&gt;dubbo-go-pixiu&lt;span 
style="color:#719e07"&gt;]&lt;/span&gt; dubbo client resp:map&lt;span 
style="color:#719e07"&gt;[&lt;/span&gt;age:88 iD:3213 name [...]
 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Metrics
 
Monitoring</title><link>https://cn.dubbo.apache.org/en/overview/mannual/golang-sdk/tutorial/observability/rpc_metrics/</link><pubDate>Mon,
 01 Jan 0001 00:00:00 
+0000</pubDate><guid>https://cn.dubbo.apache.org/en/overview/mannual/golang-sdk/tutorial/observability/rpc_metrics/</guid><description>&lt;h1
 id="dubbo-go-metrics-monitoring"&gt;Dubbo-Go Metrics Monitoring&lt;/h1&gt;
-&lt;p&gt;Dubbo-Go supports runtime metrics collection and integration with 
&lt;strong&gt;Prometheus + Grafana&lt;/strong&gt; to build observability for 
microservices.&lt;/p&gt;
-&lt;p&gt;This example covers two monitoring modes:&lt;/p&gt;
-&lt;ul&gt;
-&lt;li&gt;&lt;strong&gt;Pull Mode&lt;/strong&gt;: Prometheus scrapes metrics 
from Dubbo-Go applications. Recommended for long-running services.&lt;/li&gt;
-&lt;li&gt;&lt;strong&gt;Push Mode&lt;/strong&gt;: Dubbo-Go applications push 
metrics to Pushgateway. Recommended only for short-lived jobs.&lt;/li&gt;
-&lt;/ul&gt;
-&lt;p&gt;Example source code:&lt;/p&gt;
+&lt;p&gt;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"&gt;dubbo-go-samples/observability/prometheus_grafana&lt;/a&gt; 
to show both Prometheus Pull mode and Pushgateway mode.&lt;/p&gt;
 &lt;blockquote&gt;
-&lt;p&gt;&lt;a 
href="https://github.com/apache/dubbo-go-samples/tree/main/metrics"&gt;https://github.com/apache/dubbo-go-samples/tree/main/metrics&lt;/a&gt;&lt;/p&gt;
+&lt;p&gt;Note: some older descriptions may still mention 
&lt;code&gt;metrics/prometheus_grafana&lt;/code&gt;. The current sample 
directory is 
&lt;code&gt;observability/prometheus_grafana&lt;/code&gt;.&lt;/p&gt;
 &lt;/blockquote&gt;
-&lt;h2 id="1-monitoring-architecture"&gt;1. Monitoring Architecture&lt;/h2&gt;
-&lt;h3 id="11-pull-mode-recommended-for-production"&gt;1.1 Pull Mode 
(Recommended for production)&lt;/h3&gt;
-&lt;div class="highlight"&gt;&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code
 class="language-fallback" data-lang="fallback"&gt;&lt;span 
style="display:flex;"&gt;&lt;span&gt;Dubbo-Go Application ---&amp;gt; 
Prometheus ---&amp;gt; Grafana
-&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
(exposes /metrics or /prometheus endpoint)
-&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Prometheus
 actively scrapes metrics from Dubbo-Go 
applications.&lt;/p&gt;</description></item><item><title>Nacos</title><link>https://cn.dubbo.apache.org/en/overview/mannual/java-sdk/reference-manual/metadata-center/nacos/</link><pubDate>Mon,
 01 Jan 0001 00:00:00 
+0000</pubDate><guid>https://cn.dubbo.apache.org/en/overview/mannual/java-sdk/reference-manual/metadata-center/nacos/</guid><description>&lt;h2
 id="1-prepar [...]
+&lt;h2 id="1-monitoring-modes"&gt;1. Monitoring Modes&lt;/h2&gt;
+&lt;h3 id="11-pull-mode"&gt;1.1 Pull Mode&lt;/h3&gt;
+&lt;div class="highlight"&gt;&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code
 class="language-text" data-lang="text"&gt;&lt;span 
style="display:flex;"&gt;&lt;span&gt;Dubbo-Go application exposes /prometheus 
or /metrics
+&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; |
+&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; v
+&lt;/span&gt;&lt;/span&gt;&lt;span 
style="display:flex;"&gt;&lt;span&gt;Prometheus scrapes the application
+&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; |
+&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; v
+&lt;/span&gt;&lt;/span&gt;&lt;span 
style="display:flex;"&gt;&lt;span&gt;Grafana queries Prometheus and renders 
dashboards
+&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Pull 
mode is the standard Prometheus model and is recommended for long-running 
Dubbo-Go providers and consumers. In this 
sample:&lt;/p&gt;</description></item><item><title>Nacos</title><link>https://cn.dubbo.apache.org/en/overview/mannual/java-sdk/reference-manual/metadata-center/nacos/</link><pubDate>Mon,
 01 Jan 0001 00:00:00 
+0000</pubDate><guid>https://cn.dubbo.apache.org/en/overview/mannual/java-sdk/reference-man
 [...]
 &lt;ul&gt;
 &lt;li&gt;Understand &lt;a 
href="https://cn.dubbo.apache.org/en/overview/mannual/java-sdk/quick-start/spring-boot/"&gt;Dubbo
 basic development steps&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;Refer to &lt;a 
href="https://cn.dubbo.apache.org/en/overview/reference/integrations/nacos/"&gt;Nacos&lt;/a&gt;
 to start Nacos server&lt;/li&gt;
diff --git a/en/overview/mannual/golang-sdk/tutorial/observability/index.xml 
b/en/overview/mannual/golang-sdk/tutorial/observability/index.xml
index 10ab5931255..990fcee5925 100644
--- a/en/overview/mannual/golang-sdk/tutorial/observability/index.xml
+++ b/en/overview/mannual/golang-sdk/tutorial/observability/index.xml
@@ -10,21 +10,20 @@
 
 &lt;h2 id="1-log-configuration"&gt;1. Log Configuration&lt;/h2&gt;
 &lt;p&gt;As shown below, you can set the dubbo framework log behavior using 
&lt;code&gt;log.WithZap()&lt;/code&gt; and 
&lt;code&gt;log.WithLevel(&amp;quot;warn&amp;quot;)&lt;/code&gt;:&lt;/p&gt;</description></item><item><title>Metrics
 
Monitoring</title><link>https://cn.dubbo.apache.org/en/overview/mannual/golang-sdk/tutorial/observability/rpc_metrics/</link><pubDate>Mon,
 01 Jan 0001 00:00:00 
+0000</pubDate><guid>https://cn.dubbo.apache.org/en/overview/mannual/golang-sdk/tutorial/observa
 [...]
-&lt;p&gt;Dubbo-Go supports runtime metrics collection and integration with 
&lt;strong&gt;Prometheus + Grafana&lt;/strong&gt; to build observability for 
microservices.&lt;/p&gt;
-&lt;p&gt;This example covers two monitoring modes:&lt;/p&gt;
-&lt;ul&gt;
-&lt;li&gt;&lt;strong&gt;Pull Mode&lt;/strong&gt;: Prometheus scrapes metrics 
from Dubbo-Go applications. Recommended for long-running services.&lt;/li&gt;
-&lt;li&gt;&lt;strong&gt;Push Mode&lt;/strong&gt;: Dubbo-Go applications push 
metrics to Pushgateway. Recommended only for short-lived jobs.&lt;/li&gt;
-&lt;/ul&gt;
-&lt;p&gt;Example source code:&lt;/p&gt;
+&lt;p&gt;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"&gt;dubbo-go-samples/observability/prometheus_grafana&lt;/a&gt; 
to show both Prometheus Pull mode and Pushgateway mode.&lt;/p&gt;
 &lt;blockquote&gt;
-&lt;p&gt;&lt;a 
href="https://github.com/apache/dubbo-go-samples/tree/main/metrics"&gt;https://github.com/apache/dubbo-go-samples/tree/main/metrics&lt;/a&gt;&lt;/p&gt;
+&lt;p&gt;Note: some older descriptions may still mention 
&lt;code&gt;metrics/prometheus_grafana&lt;/code&gt;. The current sample 
directory is 
&lt;code&gt;observability/prometheus_grafana&lt;/code&gt;.&lt;/p&gt;
 &lt;/blockquote&gt;
-&lt;h2 id="1-monitoring-architecture"&gt;1. Monitoring Architecture&lt;/h2&gt;
-&lt;h3 id="11-pull-mode-recommended-for-production"&gt;1.1 Pull Mode 
(Recommended for production)&lt;/h3&gt;
-&lt;div class="highlight"&gt;&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code
 class="language-fallback" data-lang="fallback"&gt;&lt;span 
style="display:flex;"&gt;&lt;span&gt;Dubbo-Go Application ---&amp;gt; 
Prometheus ---&amp;gt; Grafana
-&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
(exposes /metrics or /prometheus endpoint)
-&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Prometheus
 actively scrapes metrics from Dubbo-Go 
applications.&lt;/p&gt;</description></item><item><title>Link 
Tracing</title><link>https://cn.dubbo.apache.org/en/overview/mannual/golang-sdk/tutorial/observability/tracing/</link><pubDate>Mon,
 01 Jan 0001 00:00:00 
+0000</pubDate><guid>https://cn.dubbo.apache.org/en/overview/mannual/golang-sdk/tutorial/observability/tracing/</guid><description>&lt;p&gt;Dubbo-go
 suppor [...]
+&lt;h2 id="1-monitoring-modes"&gt;1. Monitoring Modes&lt;/h2&gt;
+&lt;h3 id="11-pull-mode"&gt;1.1 Pull Mode&lt;/h3&gt;
+&lt;div class="highlight"&gt;&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code
 class="language-text" data-lang="text"&gt;&lt;span 
style="display:flex;"&gt;&lt;span&gt;Dubbo-Go application exposes /prometheus 
or /metrics
+&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; |
+&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; v
+&lt;/span&gt;&lt;/span&gt;&lt;span 
style="display:flex;"&gt;&lt;span&gt;Prometheus scrapes the application
+&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; |
+&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; v
+&lt;/span&gt;&lt;/span&gt;&lt;span 
style="display:flex;"&gt;&lt;span&gt;Grafana queries Prometheus and renders 
dashboards
+&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Pull 
mode is the standard Prometheus model and is recommended for long-running 
Dubbo-Go providers and consumers. In this 
sample:&lt;/p&gt;</description></item><item><title>Link 
Tracing</title><link>https://cn.dubbo.apache.org/en/overview/mannual/golang-sdk/tutorial/observability/tracing/</link><pubDate>Mon,
 01 Jan 0001 00:00:00 
+0000</pubDate><guid>https://cn.dubbo.apache.org/en/overview/mannual/golang-sdk/tutorial/o
 [...]
 &lt;ul&gt;
 &lt;li&gt;&lt;a 
href="https://opentelemetry.io/docs/specs/otel/logs/sdk_exporters/stdout/"&gt;Stdout
 exporter&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a 
href="https://opentelemetry.io/docs/languages/js/exporters/#jaeger"&gt;Jaeger 
exporter&lt;/a&gt;&lt;/li&gt;
diff --git 
a/en/overview/mannual/golang-sdk/tutorial/observability/rpc_metrics/index.html 
b/en/overview/mannual/golang-sdk/tutorial/observability/rpc_metrics/index.html
index fc774463ee6..f242970c113 100644
--- 
a/en/overview/mannual/golang-sdk/tutorial/observability/rpc_metrics/index.html
+++ 
b/en/overview/mannual/golang-sdk/tutorial/observability/rpc_metrics/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta name=ROBOTS 
content="INDEX, FOLLOW"><link rel=alternate hreflang=zh-cn 
href=https://cn.dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/tutorial/observability/rpc_metrics/><link
 rel=canonical 
href=https://cn.dubbo.apache.org/en/overview/mannual/golang-sdk/tutorial/observability/rpc_metrics/><script>var
 
_paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.d
 [...]
+<!doctype html><html lang=en class=no-js><head><meta name=ROBOTS 
content="INDEX, FOLLOW"><link rel=alternate hreflang=zh-cn 
href=https://cn.dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/tutorial/observability/rpc_metrics/><link
 rel=canonical 
href=https://cn.dubbo.apache.org/en/overview/mannual/golang-sdk/tutorial/observability/rpc_metrics/><script>var
 
_paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.d
 [...]
 <a class=dropdown-item href=/en/overview/notices/>Security Notices</a>
 <a class=dropdown-item href=/en/contact/>Contributor's Guide</a></div></li><li 
class="nav-item nav-item-line px-2 mb-2 mb-lg-0"><a class=nav-link 
href=/en/blog/><span>Blog</span></a></li><li class="nav-item nav-item-line px-2 
mb-2 mb-lg-0"><a class=nav-link 
href=/en/download/><span>DOWNLOAD</span></a></li><li class="nav-item dropdown 
d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown 
role=button data-toggle=dropdown aria-haspopup=true 
aria-expanded=false>ECOSYSTEM</ [...]
 <a class=dropdown-item 
href=/zh-cn/overview/mannual/control-plane/>Visualizable Console</a>
@@ -693,76 +693,89 @@
 <label for=m-enoverviewnoticesprotocol-check><a 
href=/en/overview/notices/protocol/ class="align-left pl-0 td-sidebar-link 
td-sidebar-link__page" id=m-enoverviewnoticesprotocol><span>RPC Protocol 
Security</span></a></label></li><li class="td-sidebar-nav__section-title 
td-sidebar-nav__section without-child" id=m-enoverviewnoticesregistry-li><input 
type=checkbox id=m-enoverviewnoticesregistry-check>
 <label for=m-enoverviewnoticesregistry-check><a 
href=/en/overview/notices/registry/ class="align-left pl-0 td-sidebar-link 
td-sidebar-link__page" id=m-enoverviewnoticesregistry><span>Registry Center 
Security</span></a></label></li><li class="td-sidebar-nav__section-title 
td-sidebar-nav__section without-child" id=m-enoverviewnoticesadmin-li><input 
type=checkbox id=m-enoverviewnoticesadmin-check>
 <label for=m-enoverviewnoticesadmin-check><a href=/en/overview/notices/admin/ 
class="align-left pl-0 td-sidebar-link td-sidebar-link__page" 
id=m-enoverviewnoticesadmin><span>Dubbo Admin 
Security</span></a></label></li><li class="td-sidebar-nav__section-title 
td-sidebar-nav__section without-child" id=m-enoverviewnoticeslog4j-li><input 
type=checkbox id=m-enoverviewnoticeslog4j-check>
-<label for=m-enoverviewnoticeslog4j-check><a href=/en/overview/notices/log4j/ 
class="align-left pl-0 td-sidebar-link td-sidebar-link__page" 
id=m-enoverviewnoticeslog4j><span>Log4j Vulnerability 
Impact</span></a></label></li></ul></li></ul></li></ul></nav></div></div><main 
class="col-12 col-md-9 col-xl-8 pl-md-5" role=main><nav aria-label=breadcrumb 
class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a 
href=/en/overview/>Documentation</a></li><li class=breadcrumb-item><a  [...]
-</span></span><span style=display:flex><span>        (exposes /metrics or 
/prometheus endpoint)
-</span></span></code></pre></div><p>Prometheus actively scrapes metrics from 
Dubbo-Go applications.</p><h3 id=12-push-mode-for-short-lived-jobs>1.2 Push 
Mode (For short-lived jobs)</h3><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-fallback data-lang=fallback><span 
style=display:flex><span>Dubbo-Go Application  ---&gt;  Pushgateway  ---&gt;  
Prometheus  ---&gt;  Grafana
-</span></span></code></pre></div><p>Applications push metrics to Pushgateway. 
Prometheus scrapes Pushgateway.</p><p>Pushgateway is designed for 
<strong>short-lived jobs (batch / cron)</strong> and is not recommended for 
long-running services.</p><h2 id=2-components-overview>2. Components 
Overview</h2><table><thead><tr><th>Component</th><th>Port</th><th>Description</th></tr></thead><tbody><tr><td>Grafana</td><td>3000</td><td>Metrics
 visualization dashboard</td></tr><tr><td>Prometheus</td> [...]
-</span></span></code></pre></div><p>Start services:</p><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span 
style=display:flex><span>docker-compose up -d
-</span></span></code></pre></div><p>Access:</p><ul><li>Grafana: <a 
href=http://localhost:3000>http://localhost:3000</a></li><li>Prometheus: <a 
href=http://localhost:9090>http://localhost:9090</a></li><li>Pushgateway: <a 
href=http://localhost:9091>http://localhost:9091</a></li></ul><h3 
id=32-configure-environment-variables>3.2 Configure Environment 
Variables</h3><p>Both client and server share the same configuration:</p><div 
class=highlight><pre tabindex=0 style=color:#93a1a1;background-c [...]
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span><span style=color:#586e75># 
Required for Push mode</span>
+<label for=m-enoverviewnoticeslog4j-check><a href=/en/overview/notices/log4j/ 
class="align-left pl-0 td-sidebar-link td-sidebar-link__page" 
id=m-enoverviewnoticeslog4j><span>Log4j Vulnerability 
Impact</span></a></label></li></ul></li></ul></li></ul></nav></div></div><main 
class="col-12 col-md-9 col-xl-8 pl-md-5" role=main><nav aria-label=breadcrumb 
class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a 
href=/en/overview/>Documentation</a></li><li class=breadcrumb-item><a  [...]
+</span></span><span style=display:flex><span>        |
+</span></span><span style=display:flex><span>        v
+</span></span><span style=display:flex><span>Prometheus scrapes the application
+</span></span><span style=display:flex><span>        |
+</span></span><span style=display:flex><span>        v
+</span></span><span style=display:flex><span>Grafana queries Prometheus and 
renders dashboards
+</span></span></code></pre></div><p>Pull mode is the standard Prometheus model 
and is recommended for long-running Dubbo-Go providers and consumers. In this 
sample:</p><table><thead><tr><th>Application</th><th>Metrics 
endpoint</th></tr></thead><tbody><tr><td>go-server</td><td><code>http://localhost:9099/prometheus</code></td></tr><tr><td>go-client</td><td><code>http://localhost:9097/prometheus</code></td></tr></tbody></table><p>The
 Dubbo-Go default metrics endpoint is <code>http://localh [...]
+</span></span><span style=display:flex><span>        |
+</span></span><span style=display:flex><span>        v
+</span></span><span style=display:flex><span>Pushgateway stores the metrics 
temporarily
+</span></span><span style=display:flex><span>        |
+</span></span><span style=display:flex><span>        v
+</span></span><span style=display:flex><span>Prometheus scrapes Pushgateway
+</span></span><span style=display:flex><span>        |
+</span></span><span style=display:flex><span>        v
+</span></span><span style=display:flex><span>Grafana queries Prometheus and 
renders dashboards
+</span></span></code></pre></div><p>Pushgateway is better suited to 
short-lived jobs such as batch or cron jobs. Prefer Pull mode for long-running 
services. If you use Pushgateway, configure cleanup so stale metrics do not 
remain after a job exits.</p><h2 id=2-prepare-the-sample>2. Prepare the 
Sample</h2><p>Clone the samples repository and enter the sample 
directory:</p><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-siz
 [...]
+</span></span><span style=display:flex><span><span 
style=color:#b58900>cd</span> dubbo-go-samples/observability/prometheus_grafana
+</span></span></code></pre></div><p>The directory 
contains:</p><table><thead><tr><th>File or 
directory</th><th>Description</th></tr></thead><tbody><tr><td><code>docker-compose.yml</code></td><td>Starts
 ZooKeeper, Prometheus, Pushgateway, and 
Grafana</td></tr><tr><td><code>prometheus_pull.yml</code></td><td>Prometheus 
configuration for Pull 
mode</td></tr><tr><td><code>prometheus_push.yml</code></td><td>Prometheus 
configuration for Pushgateway mode</td></tr><tr><td><code>go-server/cmd/main 
[...]
+</span></span></code></pre></div><p>If your environment still uses Docker 
Compose v1, run:</p><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span 
style=display:flex><span>docker-compose up -d
+</span></span></code></pre></div><p>After startup, 
visit:</p><table><thead><tr><th>Component</th><th>URL</th></tr></thead><tbody><tr><td>Grafana</td><td><code>http://localhost:3000</code></td></tr><tr><td>Prometheus</td><td><code>http://localhost:9090</code></td></tr><tr><td>Pushgateway</td><td><code>http://localhost:9091</code></td></tr><tr><td>ZooKeeper</td><td><code>127.0.0.1:2181</code></td></tr></tbody></table><h2
 id=3-pull-mode-workflow>3. Pull Mode Workflow</h2><p><code>docker-com [...]
+</span></span></code></pre></div><p>For Windows PowerShell:</p><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-powershell data-lang=powershell><span 
style=display:flex><span><span style=color:#268bd2>$env:ZK_ADDRESS</span>=<span 
style=color:#2aa198>&#34;127.0.0.1:2181&#34;</span>
+</span></span></code></pre></div><ol start=2><li>Start the 
provider:</li></ol><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span>go run 
./go-server/cmd/main.go --push<span style=color:#719e07>=</span><span 
style=color:#b58900>false</span>
+</span></span></code></pre></div><ol start=3><li>Open another terminal, enter 
the same directory, and start the consumer:</li></ol><div class=highlight><pre 
tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span><span 
style=color:#b58900>cd</span> dubbo-go-samples/observability/prometheus_grafana
+</span></span><span style=display:flex><span><span 
style=color:#b58900>export</span> <span 
style=color:#268bd2>ZK_ADDRESS</span><span style=color:#719e07>=</span><span 
style=color:#2aa198>&#34;127.0.0.1:2181&#34;</span>
+</span></span><span style=display:flex><span>go run ./go-client/cmd/main.go 
--push<span style=color:#719e07>=</span><span style=color:#b58900>false</span>
+</span></span></code></pre></div><ol start=4><li>Visit the metrics endpoints 
exposed by the applications:</li></ol><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span>curl 
http://localhost:9099/prometheus
+</span></span><span style=display:flex><span>curl 
http://localhost:9097/prometheus
+</span></span></code></pre></div><p>The output includes metrics such as 
<code>dubbo_provider_</code>, <code>dubbo_consumer_</code>, and 
<code>dubbo_application_</code>. For example:</p><div class=highlight><pre 
tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-text data-lang=text><span 
style=display:flex><span>dubbo_provider_requests_total
+</span></span><span 
style=display:flex><span>dubbo_consumer_requests_succeed_total
+</span></span></code></pre></div><ol start=5><li>Open 
<code>http://localhost:9090/targets</code> and verify that 
<code>dubbo-provider</code> and <code>dubbo-consumer</code> are 
<code>UP</code>.</li></ol><h2 id=4-pushgateway-mode-workflow>4. Pushgateway 
Mode Workflow</h2><p>In Pushgateway mode, Prometheus scrapes Pushgateway 
instead of scraping the Dubbo-Go applications directly.</p><ol><li>Change the 
Prometheus volume in <code>docker-compose.yml</code> from the Pull 
configuration to the  [...]
+</span></span><span style=display:flex><span>  - 
./prometheus_push.yml:/etc/prometheus/prometheus.yml
+</span></span></code></pre></div><ol start=2><li>Restart the monitoring 
stack:</li></ol><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span>docker 
compose down
+</span></span><span style=display:flex><span>docker compose up -d
+</span></span></code></pre></div><ol start=3><li>Set environment 
variables:</li></ol><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span><span 
style=color:#b58900>export</span> <span 
style=color:#268bd2>ZK_ADDRESS</span><span style=color:#719e07>=</span><span 
style=color:#2aa198>&#34;127.0.0.1:2181&#34;</span>
 </span></span><span style=display:flex><span><span 
style=color:#b58900>export</span> <span 
style=color:#268bd2>PUSHGATEWAY_URL</span><span 
style=color:#719e07>=</span><span 
style=color:#2aa198>&#34;127.0.0.1:9091&#34;</span>
 </span></span><span style=display:flex><span><span 
style=color:#b58900>export</span> <span 
style=color:#268bd2>JOB_NAME</span><span style=color:#719e07>=</span><span 
style=color:#2aa198>&#34;dubbo-service&#34;</span>
 </span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span><span style=color:#586e75># 
Optional</span>
+</span></span><span style=display:flex><span><span style=color:#586e75># Set 
these only when Pushgateway uses Basic Auth</span>
 </span></span><span style=display:flex><span><span 
style=color:#b58900>export</span> <span 
style=color:#268bd2>PUSHGATEWAY_USER</span><span 
style=color:#719e07>=</span><span style=color:#2aa198>&#34;username&#34;</span>
 </span></span><span style=display:flex><span><span 
style=color:#b58900>export</span> <span 
style=color:#268bd2>PUSHGATEWAY_PASS</span><span 
style=color:#719e07>=</span><span style=color:#2aa198>&#34;1234&#34;</span>
-</span></span></code></pre></div><h3 id=33-start-dubbo-go-server>3.3 Start 
Dubbo-Go Server</h3><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span>go run 
./go-server/cmd/main.go
-</span></span></code></pre></div><h3 id=34-start-dubbo-go-client>3.4 Start 
Dubbo-Go Client</h3><h4 id=default-push-mode>Default (Push Mode)</h4><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span>go run 
./go-client/cmd/main.go
-</span></span></code></pre></div><h4 id=pull-mode>Pull Mode</h4><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span>go run 
./go-client/cmd/main.go --push<span style=color:#719e07>=</span><span 
style=color:#b58900>false</span>
-</span></span><span style=display:flex><span>go run ./go-server/cmd/main.go 
--push<span style=color:#719e07>=</span><span style=color:#b58900>false</span>
-</span></span></code></pre></div><h3 id=35-verify-metrics>3.5 Verify 
Metrics</h3><h4 id=push-mode>Push Mode</h4><p>Open:</p><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-fallback data-lang=fallback><span 
style=display:flex><span>http://localhost:9091/metrics
-</span></span></code></pre></div><h4 id=pull-mode-1>Pull 
Mode</h4><p><code>&lt;app_port></code> means the HTTP metrics port exposed by 
the Dubbo-Go application itself, not the Prometheus or Pushgateway 
port.</p><p>In this sample:</p><ul><li>Provider: 
<code>http://localhost:9099/prometheus</code></li><li>Consumer: 
<code>http://localhost:9097/prometheus</code></li></ul><p>These ports are 
defined in <a 
href=https://github.com/apache/dubbo-go-samples/blob/main/metrics/prometheus_grafana/prom
 [...]
-</span></span></code></pre></div><ol start=4><li>Click <strong>Add new data 
source</strong></li><li>Select 
<strong>Prometheus</strong></li><li>Enter:</li></ol><div class=highlight><pre 
tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-fallback data-lang=fallback><span 
style=display:flex><span>http://host.docker.internal:9090
-</span></span></code></pre></div><blockquote><p>Note: 
<code>host.docker.internal</code> allows Docker containers to access the host 
network. Replace with your actual IP if necessary.</p></blockquote><ol 
start=7><li>Click <strong>Save & Test</strong></li></ol><h3 
id=42-import-dubbo-dashboard>4.2 Import Dubbo Dashboard</h3><ol><li>Navigate 
to:</li></ol><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=lang [...]
-</span></span></code></pre></div><ol start=2><li>Import the dashboard with one 
of these methods:</li></ol><ul><li>Upload <a 
href=https://github.com/apache/dubbo-go-samples/blob/main/metrics/prometheus_grafana/grafana.json><code>grafana.json</code></a>
 from the sample directory</li><li>Enter Grafana dashboard ID 
<code>19294</code> (<code>Dubbo Observability</code>) and click 
<strong>Load</strong></li><li>Or download the JSON from <a 
href=https://grafana.com/grafana/dashboards/19294-dubbo- [...]
-</span></span></code></pre></div><p>returns results</p><h3 
id=62-hostdockerinternal-not-reachable>6.2 host.docker.internal Not 
Reachable</h3><p>Replace it with your actual host IP:</p><ul><li>Update 
<code>metrics/prometheus_grafana/prometheus_pull.yml</code></li><li>Update 
Grafana data source URL</li></ul><h2 id=7-kubernetes-deployment>7. Kubernetes 
Deployment</h2><p>Recommended:</p><blockquote><p>kube-prometheus
-<a 
href=https://github.com/prometheus-operator/kube-prometheus>https://github.com/prometheus-operator/kube-prometheus</a></p></blockquote><h3
 id=71-create-podmonitor>7.1 Create PodMonitor</h3><p>Create 
<code>dubboPodMonitor.yaml</code>:</p><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-yaml data-lang=yaml><span style=display:flex><span><span 
style=color:#268bd2>apiVersion</span>: monitoring.c [...]
-</span></span><span style=display:flex><span><span 
style=color:#268bd2>kind</span>: PodMonitor
-</span></span><span style=display:flex><span><span 
style=color:#268bd2>metadata</span>:
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>name</span>: dubbo-pod-monitor
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>namespace</span>: monitoring
-</span></span><span style=display:flex><span><span 
style=color:#268bd2>spec</span>:
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>namespaceSelector</span>:
-</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>matchNames</span>:
-</span></span><span style=display:flex><span>      - dubbo-system
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>selector</span>:
-</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>matchLabels</span>:
-</span></span><span style=display:flex><span>      <span 
style=color:#268bd2>app-type</span>: dubbo
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>podMetricsEndpoints</span>:
-</span></span><span style=display:flex><span>    - <span 
style=color:#268bd2>port</span>: metrics
-</span></span><span style=display:flex><span>      <span 
style=color:#268bd2>path</span>: /prometheus
-</span></span></code></pre></div><h3 
id=72-optional-add-rbac-permissions-when-rbac-is-enabled>7.2 Optional: Add RBAC 
Permissions When RBAC Is Enabled</h3><p>If your cluster enforces RBAC, grant 
Prometheus permission to read Pods in <code>dubbo-system</code>:</p><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-yaml data-lang=yaml><span style=display:flex><span><span 
style=color:#268bd2>apiVersio [...]
-</span></span><span style=display:flex><span><span 
style=color:#268bd2>kind</span>: Role
-</span></span><span style=display:flex><span><span 
style=color:#268bd2>metadata</span>:
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>namespace</span>: dubbo-system
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>name</span>: pod-reader
-</span></span><span style=display:flex><span><span 
style=color:#268bd2>rules</span>:
-</span></span><span style=display:flex><span>  - <span 
style=color:#268bd2>apiGroups</span>: [<span 
style=color:#2aa198>&#34;&#34;</span>]
-</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>resources</span>: [<span 
style=color:#2aa198>&#34;pods&#34;</span>]
-</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>verbs</span>: [<span 
style=color:#2aa198>&#34;get&#34;</span>, <span 
style=color:#2aa198>&#34;list&#34;</span>, <span 
style=color:#2aa198>&#34;watch&#34;</span>]
-</span></span><span style=display:flex><span>---
-</span></span><span style=display:flex><span><span 
style=color:#268bd2>apiVersion</span>: rbac.authorization.k8s.io/v1
-</span></span><span style=display:flex><span><span 
style=color:#268bd2>kind</span>: RoleBinding
-</span></span><span style=display:flex><span><span 
style=color:#268bd2>metadata</span>:
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>name</span>: pod-reader-binding
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>namespace</span>: dubbo-system
-</span></span><span style=display:flex><span><span 
style=color:#268bd2>roleRef</span>:
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>apiGroup</span>: rbac.authorization.k8s.io
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>kind</span>: Role
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>name</span>: pod-reader
-</span></span><span style=display:flex><span><span 
style=color:#268bd2>subjects</span>:
-</span></span><span style=display:flex><span>  - <span 
style=color:#268bd2>kind</span>: ServiceAccount
-</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>name</span>: prometheus-k8s
-</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>namespace</span>: monitoring
-</span></span></code></pre></div><p>If your Prometheus installation uses a 
different service account, replace the <code>subjects</code> section 
accordingly.</p><h3 id=73-deploy-application>7.3 Deploy Application</h3><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span>kubectl 
apply -f Deployment.yaml
-</span></span></code></pre></div><h3 id=74-verify>7.4 
Verify</h3><p>Visit:</p><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-fallback data-lang=fallback><span 
style=display:flex><span>http://&lt;prometheus-nodeport&gt;/targets
-</span></span></code></pre></div><p>Ensure your pods show:</p><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-fallback data-lang=fallback><span style=display:flex><span>UP
-</span></span></code></pre></div><h2 id=8-production-recommendations>8. 
Production 
Recommendations</h2><table><thead><tr><th>Scenario</th><th>Recommended 
Mode</th></tr></thead><tbody><tr><td>Long-running 
services</td><td>Pull</td></tr><tr><td>Short-lived 
jobs</td><td>Push</td></tr><tr><td>Kubernetes</td><td>Pull + 
PodMonitor</td></tr><tr><td>Pushgateway usage</td><td>Use 
pgw-cleaner</td></tr></tbody></table><h2 id=9-summary>9. 
Summary</h2><p>Dubbo-Go provides:</p><ul><li>Pull-based Prome [...]
-<button class="btn btn-primary mb-4 
feedback--no">No</button></div><script>const 
yes=document.querySelector(".feedback--yes"),no=document.querySelector(".feedback--no");document.querySelectorAll(".feedback--link").forEach(e=>{e.href=e.href+window.location.pathname});const
 
sendFeedback=e=>{gtag||console.log("!gtag"),gtag("event","click",{event_category:"Helpful",event_label:window.location.pathname,value:e})},disableButtons=()=>{yes.disabled=!0,yes.classList.add("feedback--button__disable
 [...]
+</span></span></code></pre></div><ol start=4><li>Start the provider and 
consumer:</li></ol><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span>go run 
./go-server/cmd/main.go
+</span></span></code></pre></div><p>In another terminal:</p><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span><span 
style=color:#b58900>cd</span> dubbo-go-samples/observability/prometheus_grafana
+</span></span><span style=display:flex><span><span 
style=color:#b58900>export</span> <span 
style=color:#268bd2>ZK_ADDRESS</span><span style=color:#719e07>=</span><span 
style=color:#2aa198>&#34;127.0.0.1:2181&#34;</span>
+</span></span><span style=display:flex><span><span 
style=color:#b58900>export</span> <span 
style=color:#268bd2>PUSHGATEWAY_URL</span><span 
style=color:#719e07>=</span><span 
style=color:#2aa198>&#34;127.0.0.1:9091&#34;</span>
+</span></span><span style=display:flex><span><span 
style=color:#b58900>export</span> <span 
style=color:#268bd2>JOB_NAME</span><span style=color:#719e07>=</span><span 
style=color:#2aa198>&#34;dubbo-service&#34;</span>
+</span></span><span style=display:flex><span>go run ./go-client/cmd/main.go
+</span></span></code></pre></div><ol start=5><li>Visit the Pushgateway metrics 
endpoint:</li></ol><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span>curl 
http://localhost:9091/metrics
+</span></span></code></pre></div><ol start=6><li>Open 
<code>http://localhost:9090/targets</code> and verify that the 
<code>pushgateway</code> target is <code>UP</code>.</li></ol><p>The sample 
registers <code>job_pushed_at_seconds</code> and calls the Pushgateway DELETE 
API on graceful shutdown. If the process is killed forcefully, cleanup may not 
run. For production, use <a 
href=https://github.com/apache/dubbo-go-samples/tree/main/tools/pgw-cleaner 
target=_blank>pgw-cleaner</a> or anothe [...]
+</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>evaluation_interval</span>: 15s
+</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>scrape_interval</span>: 15s
+</span></span><span style=display:flex><span><span 
style=color:#268bd2>scrape_configs</span>:
+</span></span><span style=display:flex><span>  - <span 
style=color:#268bd2>job_name</span>: dubbo-provider
+</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>scrape_interval</span>: 15s
+</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>scrape_timeout</span>: 5s
+</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>metrics_path</span>: /prometheus
+</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>static_configs</span>:
+</span></span><span style=display:flex><span>      - <span 
style=color:#268bd2>targets</span>: [<span 
style=color:#2aa198>&#39;host.docker.internal:9099&#39;</span>]
+</span></span><span style=display:flex><span>  - <span 
style=color:#268bd2>job_name</span>: dubbo-consumer
+</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>scrape_interval</span>: 15s
+</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>scrape_timeout</span>: 5s
+</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>metrics_path</span>: /prometheus
+</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>static_configs</span>:
+</span></span><span style=display:flex><span>      - <span 
style=color:#268bd2>targets</span>: [<span 
style=color:#2aa198>&#39;host.docker.internal:9097&#39;</span>]
+</span></span></code></pre></div><p><code>host.docker.internal</code> lets the 
Prometheus container reach Dubbo-Go processes running on the host. If 
Prometheus and the applications run in the same Docker network, replace it with 
the container name. On Linux, if this hostname is unavailable, use the host IP 
or add a <code>host-gateway</code> mapping in Docker Compose.</p><h3 
id=52-pushgateway-configuration>5.2 Pushgateway 
Configuration</h3><p><code>prometheus_push.yml</code> scrapes only  [...]
+</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>evaluation_interval</span>: 15s
+</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>scrape_interval</span>: 15s
+</span></span><span style=display:flex><span><span 
style=color:#268bd2>scrape_configs</span>:
+</span></span><span style=display:flex><span>  - <span 
style=color:#268bd2>job_name</span>: <span 
style=color:#2aa198>&#39;pushgateway&#39;</span>
+</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>static_configs</span>:
+</span></span><span style=display:flex><span>      - <span 
style=color:#268bd2>targets</span>: [<span 
style=color:#2aa198>&#39;host.docker.internal:9091&#39;</span>]
+</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>honor_labels</span>: <span style=color:#cb4b16>true</span>
+</span></span></code></pre></div><p><code>honor_labels: true</code> keeps 
labels such as <code>job</code> and <code>instance</code> that were pushed by 
the application, which helps Grafana display data by service dimension.</p><h2 
id=6-import-the-grafana-dashboard>6. Import the Grafana 
Dashboard</h2><ol><li>Open <code>http://localhost:3000</code>. The default 
credentials are <code>admin</code> / <code>admin</code>.</li><li>Go to 
<code>Home -> Connections -> Data sources</code> and click  [...]
+</span></span><span style=display:flex><span>curl 
http://localhost:9097/prometheus
+</span></span><span style=display:flex><span>curl http://localhost:9091/metrics
+</span></span></code></pre></div><p>If the host can access them but the 
Prometheus container cannot, the issue is usually Docker networking. Replace 
<code>host.docker.internal</code> with the real host IP, or add this to the 
Prometheus service on Linux:</p><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-yaml data-lang=yaml><span style=display:flex><span><span 
style=color:#268bd2>extra_hosts</span>:
+</span></span><span style=display:flex><span>  - <span 
style=color:#2aa198>&#34;host.docker.internal:host-gateway&#34;</span>
+</span></span></code></pre></div><h3 id=73-grafana-shows-no-data>7.3 Grafana 
Shows No Data</h3><p>Confirm that the Prometheus data source passes <code>Save 
& test</code>; check <code>http://localhost:9090/targets</code> for 
<code>UP</code> targets; then query 
<code>dubbo_consumer_requests_succeed_total</code> or 
<code>dubbo_provider_requests_total</code> in Prometheus. If the query is 
empty, make sure the client is continuously calling the server and wait for one 
scrape interval.</p><h3  [...]
+<button class="btn btn-primary mb-4 
feedback--no">No</button></div><script>const 
yes=document.querySelector(".feedback--yes"),no=document.querySelector(".feedback--no");document.querySelectorAll(".feedback--link").forEach(e=>{e.href=e.href+window.location.pathname});const
 
sendFeedback=e=>{gtag||console.log("!gtag"),gtag("event","click",{event_category:"Helpful",event_label:window.location.pathname,value:e})},disableButtons=()=>{yes.disabled=!0,yes.classList.add("feedback--button__disable
 [...]
 <a 
href="https://github.com/apache/dubbo-website/new/master/content/en//overview/mannual/golang-sdk/tutorial/observability/rpc_metrics?filename=change-me.md&amp;value=---%0Atitle%3A+%22Long+Page+Title%22%0AlinkTitle%3A+%22Short+Nav+Title%22%0Aweight%3A+100%0Adescription%3A+%3E-%0A+++++Page+description+for+heading+and+indexes.%0A---%0A%0A%23%23+Heading%0A%0AEdit+this+template+to+create+your+new+page.%0A%0A%2A+Give+it+a+good+name%2C+ending+in+%60.md%60+-+e.g.+%60getting-started.md%60%0A%2A
 [...]
 <a 
href="https://github.com/apache/dubbo-website/issues/new?title=Metrics%20Monitoring";
 target=_blank><i class="fab fa-github fa-fw"></i> Create an issue</a>
-<a href=https://github.com/apache/dubbo/issues/new target=_blank><i class="fas 
fa-tasks fa-fw"></i> Create project issue</a></div><nav 
id=TableOfContents><ul><li><a href=#1-monitoring-architecture>1. Monitoring 
Architecture</a><ul><li><a href=#11-pull-mode-recommended-for-production>1.1 
Pull Mode (Recommended for production)</a></li><li><a 
href=#12-push-mode-for-short-lived-jobs>1.2 Push Mode (For short-lived 
jobs)</a></li></ul></li><li><a href=#2-components-overview>2. Components Overvi 
[...]
+<a href=https://github.com/apache/dubbo/issues/new target=_blank><i class="fas 
fa-tasks fa-fw"></i> Create project issue</a></div><nav 
id=TableOfContents><ul><li><a href=#1-monitoring-modes>1. Monitoring 
Modes</a><ul><li><a href=#11-pull-mode>1.1 Pull Mode</a></li><li><a 
href=#12-pushgateway-mode>1.2 Pushgateway Mode</a></li></ul></li><li><a 
href=#2-prepare-the-sample>2. Prepare the Sample</a></li><li><a 
href=#3-pull-mode-workflow>3. Pull Mode Workflow</a></li><li><a 
href=#4-pushgateway- [...]
 <button class="contact-btn qr-container" 
onmouseover='showQRCode("dingding-qr")' 
onmouseout='hideQRCode("dingding-qr")'>DINGTALK CHANNEL<div class=qr-code 
id=dingding-qr style=display:none><img 
src=https://img.alicdn.com/imgextra/i4/O1CN01buuadT274Lj33QZWQ_!!6000000007743-0-tps-1170-1477.jpg
 alt="DingTalk QR Code"></div></button>
 <button class=contact-btn><a 
href=https://github.com/apache/dubbo/>GitHub</a></button></div></div><div 
class=footer-container-right><ul><li>DOCUMENTATION</li><li><a 
href=/en/overview/>Overview</a></li><li><a href=/en/overview/quickstart/>Quick 
Start</a></li><li><a 
href=/en/contact/contributor/software-donation-guide_dev/>Developer 
guide</a></li></ul><ul><li>RESOURCES</li><li><a 
href=/en/contact/>Community</a></li></ul></div></div><div 
style="width:85.125rem;height:0;border:1px solid #ddd [...]
 project logo are either registered trademarks or trademarks of The Apache 
Software Foundation in the United States
diff --git a/en/sitemap.xml b/en/sitemap.xml
index a85f5e99116..255554373e1 100644
--- a/en/sitemap.xml
+++ b/en/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset 
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"; 
xmlns:xhtml="http://www.w3.org/1999/xhtml";><url><loc>https://cn.dubbo.apache.org/en/blog/2023/01/16/alibaba-upgrades-dubbo3-to-fully-replace-hsf2/</loc><lastmod>2024-09-30T17:53:33+08:00</lastmod><changefreq>monthly</changefreq><priority>0.5</priority><xhtml:link
 rel="alternate" hreflang="zh-cn" 
href="https://cn.dubbo.apache.org/zh-cn/blog/2023/01/16/%E9%98%BF%E9%87%8C%E5%B7
 [...]
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset 
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"; 
xmlns:xhtml="http://www.w3.org/1999/xhtml";><url><loc>https://cn.dubbo.apache.org/en/blog/2023/01/16/alibaba-upgrades-dubbo3-to-fully-replace-hsf2/</loc><lastmod>2024-09-30T17:53:33+08:00</lastmod><changefreq>monthly</changefreq><priority>0.5</priority><xhtml:link
 rel="alternate" hreflang="zh-cn" 
href="https://cn.dubbo.apache.org/zh-cn/blog/2023/01/16/%E9%98%BF%E9%87%8C%E5%B7
 [...]
\ No newline at end of file
diff --git a/js/app.js b/js/app.js
index b17e7b31a97..069248774b1 100644
--- a/js/app.js
+++ b/js/app.js
@@ -1,2 +1 @@
-(function(){"use strict";var t={5030:function(t,e,r){var 
n=r(2856),o=function(){var t=this,e=t._self._c;return 
e("div",{attrs:{id:"app"}},[e("el-row",[e("el-col",{attrs:{span:24}},[e("div",{staticStyle:{"font-size":"30px"}},[t._v("Dubbo
 
基准测试")])])],1),e("el-row",[e("el-col",{attrs:{span:24}},[e("div",{staticStyle:{"font-size":"15px","text-align":"right"}},[e("a",{attrs:{target:"_blank",href:"https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-
 [...]
-//# sourceMappingURL=app.a7f8f515.js.map
\ No newline at end of file
+// Respond to static link checks, which will be dynamically replaced at build 
time
\ No newline at end of file
diff --git a/js/chunk-vendors.js b/js/chunk-vendors.js
index e33ee56a2ec..069248774b1 100644
--- a/js/chunk-vendors.js
+++ b/js/chunk-vendors.js
@@ -1,60 +1 @@
-(self["webpackChunkdubbo_benchmark"]=self["webpackChunkdubbo_benchmark"]||[]).push([[504],{1656:function(e,t,n){"use
 strict";function i(e,t,n,i,r,o,a,s){var l,u="function"===typeof 
e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=n,u._compiled=!0),i&&(u.functional=!0),o&&(u._scopeId="data-v-"+o),a?(l=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"===typeof
 __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&& [...]
-/**
- * @license
- * Lodash <https://lodash.com/>
- * Copyright JS Foundation and other contributors <https://js.foundation/>
- * Released under MIT license <https://lodash.com/license>
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
- * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & 
Editors
- */(function(){var o,a="4.17.10",s=200,l="Unsupported core-js use. Try 
https://npms.io/search?q=ponyfill.",u="Expected a 
function",c="__lodash_hash_undefined__",h=500,d="__lodash_placeholder__",p=1,f=2,g=4,v=1,m=2,y=1,b=2,_=4,x=8,w=16,S=32,C=64,k=128,M=256,T=512,D=30,I="...",O=800,A=16,E=1,P=2,L=3,N=1/0,R=9007199254740991,$=17976931348623157e292,z=NaN,V=4294967295,F=V-1,B=V>>>1,j=[["ary",k],["bind",y],["bindKey",b],["curry",x],["curryRight",w],["flip",T],["partial",S],["partialRight",C],
 [...]
-/**
- * @fileOverview Kickass library to create and place poppers near their 
reference elements.
- * @version {{version}}
- * @license
- * Copyright (c) 2016 Federico Zivolo and contributors
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to 
deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in 
all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 
THE
- * SOFTWARE.
- */(function(o,a){i=a,r="function"===typeof i?i.call(t,n,t,e):i,void 
0===r||(e.exports=r)})(0,function(){var 
e=window,t={placement:"bottom",gpuAcceleration:!0,offset:0,boundariesElement:"viewport",boundariesPadding:5,preventOverflowOrder:["left","right","top","bottom"],flipBehavior:"flip",arrowElement:"[x-arrow]",arrowOffset:0,modifiers:["shift","offset","preventOverflow","keepTogether","arrow","flip","applyStyle"],modifiersIgnored:[],forceAbsolute:!1};function
 n(e,n,i){this._reference=e [...]
-/*!
- * jQuery JavaScript Library v3.7.1
- * https://jquery.com/
- *
- * Copyright OpenJS Foundation and other contributors
- * Released under the MIT license
- * https://jquery.org/license
- *
- * Date: 2023-08-28T13:37Z
- */
-function(t,n){"use strict";"object"===typeof 
e.exports?e.exports=t.document?n(t,!0):function(e){if(!e.document)throw new 
Error("jQuery requires a window with a document");return 
n(e)}:n(t)}("undefined"!==typeof window?window:this,function(n,o){"use 
strict";var a=[],s=Object.getPrototypeOf,l=a.slice,u=a.flat?function(e){return 
a.flat.call(e)}:function(e){return 
a.concat.apply([],e)},c=a.push,h=a.indexOf,d={},p=d.toString,f=d.hasOwnProperty,g=f.toString,v=g.call(Object),m={},y=function(e){
 [...]
-/**
- * Checks if an event is supported in the current execution environment.
- *
- * NOTE: This will not work correctly for non-generic events such as `change`,
- * `reset`, `load`, `error`, and `select`.
- *
- * Borrows from Modernizr.
- *
- * @param {string} eventNameSuffix Event name, e.g. "click".
- * @param {?boolean} capture Check if the capture phase is supported.
- * @return {boolean} True if the event is supported.
- * @internal
- * @license Modernizr 3.0.0pre (Custom Build) | MIT
- */
-function o(e,t){if(!r.canUseDOM||t&&!("addEventListener"in 
document))return!1;var n="on"+e,o=n in document;if(!o){var 
a=document.createElement("div");a.setAttribute(n,"return;"),o="function"===typeof
 
a[n]}return!o&&i&&"wheel"===e&&(o=document.implementation.hasFeature("Events.wheel","3.0")),o}r.canUseDOM&&(i=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("","")),e.exports=o},9030:function(e,t,n){"use
 strict";var i=n(8656),r=n(2021),o= [...]
-//# sourceMappingURL=chunk-vendors.8eb077c9.js.map
\ No newline at end of file
+// Respond to static link checks, which will be dynamically replaced at build 
time
\ No newline at end of file
diff --git a/sitemap.xml b/sitemap.xml
index 020f48e1985..6bfdf17b92c 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><sitemapindex 
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9";><sitemap><loc>https://cn.dubbo.apache.org/zh-cn/sitemap.xml</loc><lastmod>2026-08-07T20:51:37+08:00</lastmod></sitemap><sitemap><loc>https://cn.dubbo.apache.org/en/sitemap.xml</loc><lastmod>2026-08-07T20:51:37+08:00</lastmod></sitemap></sitemapindex>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><sitemapindex 
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9";><sitemap><loc>https://cn.dubbo.apache.org/zh-cn/sitemap.xml</loc><lastmod>2026-08-09T12:45:10+08:00</lastmod></sitemap><sitemap><loc>https://cn.dubbo.apache.org/en/sitemap.xml</loc><lastmod>2026-08-09T12:45:10+08:00</lastmod></sitemap></sitemapindex>
\ No newline at end of file
diff --git a/zh-cn/index.xml b/zh-cn/index.xml
index df0a5d3b9a2..613830c0b77 100644
--- a/zh-cn/index.xml
+++ b/zh-cn/index.xml
@@ -13428,63 +13428,51 @@ Dubbo 可支持集群规模步入百万实例层次。&lt;/li&gt;
 &lt;li&gt;基于 HTTP 的通信模式,加上相对比较完善的入门文档和演示 demo 和 
starters,让开发者在第一感觉上更易于上手&lt;/li&gt;
 &lt;/ul&gt;
 &lt;p&gt;Spring Cloud 的问题有:&lt;/p&gt;</description></item><item><title>指标监控 
(Metrics)</title><link>https://cn.dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/tutorial/observability/rpc_metrics/</link><pubDate>Mon,
 01 Jan 0001 00:00:00 
+0000</pubDate><guid>https://cn.dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/tutorial/observability/rpc_metrics/</guid><description>&lt;h1
 id="dubbo-go-指标监控"&gt;Dubbo-Go 指标监控&lt;/h1&gt;
-&lt;p&gt;Dubbo-Go 支持采集运行态 Metrics 指标,并接入 &lt;strong&gt;Prometheus + 
Grafana&lt;/strong&gt; 实现微服务可观测性。&lt;/p&gt;
-&lt;p&gt;当前示例支持两种监控模式:&lt;/p&gt;
-&lt;ul&gt;
-&lt;li&gt;&lt;strong&gt;Pull 模式&lt;/strong&gt;:Prometheus 主动抓取 Dubbo-Go 
应用暴露的指标,适合长期运行的服务。&lt;/li&gt;
-&lt;li&gt;&lt;strong&gt;Push 模式&lt;/strong&gt;:Dubbo-Go 应用主动将指标推送到 
Pushgateway,仅建议用于短生命周期任务。&lt;/li&gt;
-&lt;/ul&gt;
-&lt;p&gt;示例源码:&lt;/p&gt;
+&lt;p&gt;Dubbo-Go 可以采集 RPC、元数据、注册中心、配置中心等运行态指标,并通过 Prometheus 与 Grafana 
构建可观测性看板。本文以 &lt;a 
href="https://github.com/apache/dubbo-go-samples/tree/main/observability/prometheus_grafana";
 target="_blank"&gt;dubbo-go-samples/observability/prometheus_grafana&lt;/a&gt; 
为例,说明 Pull 与 Pushgateway 两种运行方式。&lt;/p&gt;
 &lt;blockquote&gt;
-&lt;p&gt;&lt;a 
href="https://github.com/apache/dubbo-go-samples/tree/main/metrics"&gt;https://github.com/apache/dubbo-go-samples/tree/main/metrics&lt;/a&gt;&lt;/p&gt;
+&lt;p&gt;说明:部分旧文档或任务描述可能仍写作 
&lt;code&gt;metrics/prometheus_grafana&lt;/code&gt;,当前 sample 仓库中的实际目录是 
&lt;code&gt;observability/prometheus_grafana&lt;/code&gt;。&lt;/p&gt;
 &lt;/blockquote&gt;
-&lt;h2 id="1-监控架构说明"&gt;1. 监控架构说明&lt;/h2&gt;
-&lt;h3 id="11-pull-模式推荐生产模式"&gt;1.1 Pull 模式(推荐生产模式)&lt;/h3&gt;
-&lt;div class="highlight"&gt;&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code
 class="language-fallback" data-lang="fallback"&gt;&lt;span 
style="display:flex;"&gt;&lt;span&gt;Dubbo-Go 应用 ---&amp;gt; Prometheus 
---&amp;gt; Grafana
-&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (暴露 
/metrics 或 /prometheus 接口)
-&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Prometheus
 主动抓取 Dubbo-Go 应用指标。&lt;/p&gt;
-&lt;h3 id="12-push-模式适用于短生命周期任务"&gt;1.2 Push 模式(适用于短生命周期任务)&lt;/h3&gt;
-&lt;div class="highlight"&gt;&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code
 class="language-fallback" data-lang="fallback"&gt;&lt;span 
style="display:flex;"&gt;&lt;span&gt;Dubbo-Go 应用 ---&amp;gt; Pushgateway 
---&amp;gt; Prometheus ---&amp;gt; Grafana
-&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;应用主动推送指标到
 Pushgateway,Prometheus 再拉取。&lt;/p&gt;
-&lt;p&gt;Pushgateway 适用于 &lt;strong&gt;短生命周期任务(如 batch / cron 
job)&lt;/strong&gt;,不推荐用于长期运行的服务。&lt;/p&gt;
-&lt;h2 id="2-示例组件说明"&gt;2. 示例组件说明&lt;/h2&gt;
+&lt;h2 id="1-工作模式"&gt;1. 工作模式&lt;/h2&gt;
+&lt;h3 id="11-pull-模式"&gt;1.1 Pull 模式&lt;/h3&gt;
+&lt;div class="highlight"&gt;&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code
 class="language-text" data-lang="text"&gt;&lt;span 
style="display:flex;"&gt;&lt;span&gt;Dubbo-Go 应用暴露 /prometheus 或 /metrics
+&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; |
+&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; v
+&lt;/span&gt;&lt;/span&gt;&lt;span 
style="display:flex;"&gt;&lt;span&gt;Prometheus 定时拉取
+&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; |
+&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; v
+&lt;/span&gt;&lt;/span&gt;&lt;span 
style="display:flex;"&gt;&lt;span&gt;Grafana 查询 Prometheus 并展示大盘
+&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Pull 
模式是 Prometheus 的标准模式,适合长期运行的 Dubbo-Go Provider 与 Consumer。当前 sample 中:&lt;/p&gt;
 &lt;table&gt;
  &lt;thead&gt;
  &lt;tr&gt;
- &lt;th&gt;组件&lt;/th&gt;
- &lt;th&gt;端口&lt;/th&gt;
- &lt;th&gt;说明&lt;/th&gt;
+ &lt;th&gt;应用&lt;/th&gt;
+ &lt;th&gt;指标地址&lt;/th&gt;
  &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
  &lt;tr&gt;
- &lt;td&gt;Grafana&lt;/td&gt;
- &lt;td&gt;3000&lt;/td&gt;
- &lt;td&gt;指标可视化&lt;/td&gt;
- &lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;Prometheus&lt;/td&gt;
- &lt;td&gt;9090&lt;/td&gt;
- &lt;td&gt;指标存储与查询&lt;/td&gt;
- &lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;Pushgateway&lt;/td&gt;
- &lt;td&gt;9091&lt;/td&gt;
- &lt;td&gt;接收应用推送指标&lt;/td&gt;
- &lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;go-server 指标端口&lt;/td&gt;
- &lt;td&gt;本示例中为 9099&lt;/td&gt;
- &lt;td&gt;Pull 模式下 Provider 指标暴露端口&lt;/td&gt;
+ &lt;td&gt;go-server&lt;/td&gt;
+ &lt;td&gt;&lt;code&gt;http://localhost:9099/prometheus&lt;/code&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
- &lt;td&gt;go-client 指标端口&lt;/td&gt;
- &lt;td&gt;本示例中为 9097&lt;/td&gt;
- &lt;td&gt;Pull 模式下 Consumer 指标暴露端口&lt;/td&gt;
+ &lt;td&gt;go-client&lt;/td&gt;
+ &lt;td&gt;&lt;code&gt;http://localhost:9097/prometheus&lt;/code&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;/tbody&gt;
 &lt;/table&gt;
-&lt;p&gt;如果不使用本示例,而是直接使用 Dubbo-Go 默认配置,则默认指标端点为 
&lt;code&gt;http://localhost:9090/metrics&lt;/code&gt;。当前 sample 将指标路径改成了 
&lt;code&gt;/prometheus&lt;/code&gt;。&lt;/p&gt;</description></item><item><title>注册中心、配置中心和元数据中心</title><link>https://cn.dubbo.apache.org/zh-cn/overview/reference/proposals/registry-config-meta/</link><pubDate>Mon,
 01 Jan 0001 00:00:00 
+0000</pubDate><guid>https://cn.dubbo.apache.org/zh-cn/overview/reference/proposals/registry-config-meta/</guid><description>&lt;h2
 id [...]
+&lt;p&gt;Dubbo-Go 默认指标地址是 
&lt;code&gt;http://localhost:9090/metrics&lt;/code&gt;。sample 通过 
&lt;code&gt;metrics.WithPort(9099)&lt;/code&gt;、&lt;code&gt;metrics.WithPort(9097)&lt;/code&gt;
 和 &lt;code&gt;metrics.WithPath(&amp;quot;/prometheus&amp;quot;)&lt;/code&gt; 
改成了上面的端口与路径。&lt;/p&gt;
+&lt;h3 id="12-pushgateway-模式"&gt;1.2 Pushgateway 模式&lt;/h3&gt;
+&lt;div class="highlight"&gt;&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code
 class="language-text" data-lang="text"&gt;&lt;span 
style="display:flex;"&gt;&lt;span&gt;Dubbo-Go 应用推送指标
+&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; |
+&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; v
+&lt;/span&gt;&lt;/span&gt;&lt;span 
style="display:flex;"&gt;&lt;span&gt;Pushgateway 暂存指标
+&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; |
+&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; v
+&lt;/span&gt;&lt;/span&gt;&lt;span 
style="display:flex;"&gt;&lt;span&gt;Prometheus 拉取 Pushgateway
+&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; |
+&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; v
+&lt;/span&gt;&lt;/span&gt;&lt;span 
style="display:flex;"&gt;&lt;span&gt;Grafana 查询 Prometheus 并展示大盘
+&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Pushgateway
 更适合 batch、cron job 等短生命周期任务。长期运行的服务优先使用 Pull 模式;如果必须使用 
Pushgateway,请配合清理机制,避免停止后的旧指标继续留在 Pushgateway 
中。&lt;/p&gt;</description></item><item><title>注册中心、配置中心和元数据中心</title><link>https://cn.dubbo.apache.org/zh-cn/overview/reference/proposals/registry-config-meta/</link><pubDate>Mon,
 01 Jan 0001 00:00:00 
+0000</pubDate><guid>https://cn.dubbo.apache.org/zh-cn/overview/reference/proposals/registry-config-meta/<
 [...]
 &lt;blockquote&gt;
 &lt;p&gt;本节侧重描述传统模式下的 Dubbo 
部署架构,在云原生背景下的部署架构会有些变化,主要体现在基础设施(Kubernetes、Service Mesh等)会承担更多的职责,
 中心化组件如注册中心、元数据中心、配置中心等的职责被集成、运维变得更加简单,但通过强调这些中心化的组件能让我们更容易理解 Dubbo 
的工作原理。&lt;/p&gt;
diff --git a/zh-cn/overview/mannual/golang-sdk/tutorial/observability/index.xml 
b/zh-cn/overview/mannual/golang-sdk/tutorial/observability/index.xml
index 543e11d8331..9b8ec11e329 100644
--- a/zh-cn/overview/mannual/golang-sdk/tutorial/observability/index.xml
+++ b/zh-cn/overview/mannual/golang-sdk/tutorial/observability/index.xml
@@ -47,63 +47,51 @@
 
 &lt;h2 id="2-完全自定义日志"&gt;2. 完全自定义日志&lt;/h2&gt;
 &lt;p&gt;当前 dubbo-go 框架支持 zap、logrus 两个日志框架,如果您想让 dubbo 
框架内核使用其他日志框架打印日志,推荐以标准扩展形式增加支持,具体可参考核心库中内置的 &lt;a 
href="https://github.com/apache/dubbo-go/tree/main/logger"&gt;源码实现&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>指标监控
 
(Metrics)</title><link>https://cn.dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/tutorial/observability/rpc_metrics/</link><pubDate>Mon,
 01 Jan 0001 00:00:00 
+0000</pubDate><guid>https://cn.dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/tutorial/observ
 [...]
-&lt;p&gt;Dubbo-Go 支持采集运行态 Metrics 指标,并接入 &lt;strong&gt;Prometheus + 
Grafana&lt;/strong&gt; 实现微服务可观测性。&lt;/p&gt;
-&lt;p&gt;当前示例支持两种监控模式:&lt;/p&gt;
-&lt;ul&gt;
-&lt;li&gt;&lt;strong&gt;Pull 模式&lt;/strong&gt;:Prometheus 主动抓取 Dubbo-Go 
应用暴露的指标,适合长期运行的服务。&lt;/li&gt;
-&lt;li&gt;&lt;strong&gt;Push 模式&lt;/strong&gt;:Dubbo-Go 应用主动将指标推送到 
Pushgateway,仅建议用于短生命周期任务。&lt;/li&gt;
-&lt;/ul&gt;
-&lt;p&gt;示例源码:&lt;/p&gt;
+&lt;p&gt;Dubbo-Go 可以采集 RPC、元数据、注册中心、配置中心等运行态指标,并通过 Prometheus 与 Grafana 
构建可观测性看板。本文以 &lt;a 
href="https://github.com/apache/dubbo-go-samples/tree/main/observability/prometheus_grafana";
 target="_blank"&gt;dubbo-go-samples/observability/prometheus_grafana&lt;/a&gt; 
为例,说明 Pull 与 Pushgateway 两种运行方式。&lt;/p&gt;
 &lt;blockquote&gt;
-&lt;p&gt;&lt;a 
href="https://github.com/apache/dubbo-go-samples/tree/main/metrics"&gt;https://github.com/apache/dubbo-go-samples/tree/main/metrics&lt;/a&gt;&lt;/p&gt;
+&lt;p&gt;说明:部分旧文档或任务描述可能仍写作 
&lt;code&gt;metrics/prometheus_grafana&lt;/code&gt;,当前 sample 仓库中的实际目录是 
&lt;code&gt;observability/prometheus_grafana&lt;/code&gt;。&lt;/p&gt;
 &lt;/blockquote&gt;
-&lt;h2 id="1-监控架构说明"&gt;1. 监控架构说明&lt;/h2&gt;
-&lt;h3 id="11-pull-模式推荐生产模式"&gt;1.1 Pull 模式(推荐生产模式)&lt;/h3&gt;
-&lt;div class="highlight"&gt;&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code
 class="language-fallback" data-lang="fallback"&gt;&lt;span 
style="display:flex;"&gt;&lt;span&gt;Dubbo-Go 应用 ---&amp;gt; Prometheus 
---&amp;gt; Grafana
-&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (暴露 
/metrics 或 /prometheus 接口)
-&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Prometheus
 主动抓取 Dubbo-Go 应用指标。&lt;/p&gt;
-&lt;h3 id="12-push-模式适用于短生命周期任务"&gt;1.2 Push 模式(适用于短生命周期任务)&lt;/h3&gt;
-&lt;div class="highlight"&gt;&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code
 class="language-fallback" data-lang="fallback"&gt;&lt;span 
style="display:flex;"&gt;&lt;span&gt;Dubbo-Go 应用 ---&amp;gt; Pushgateway 
---&amp;gt; Prometheus ---&amp;gt; Grafana
-&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;应用主动推送指标到
 Pushgateway,Prometheus 再拉取。&lt;/p&gt;
-&lt;p&gt;Pushgateway 适用于 &lt;strong&gt;短生命周期任务(如 batch / cron 
job)&lt;/strong&gt;,不推荐用于长期运行的服务。&lt;/p&gt;
-&lt;h2 id="2-示例组件说明"&gt;2. 示例组件说明&lt;/h2&gt;
+&lt;h2 id="1-工作模式"&gt;1. 工作模式&lt;/h2&gt;
+&lt;h3 id="11-pull-模式"&gt;1.1 Pull 模式&lt;/h3&gt;
+&lt;div class="highlight"&gt;&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code
 class="language-text" data-lang="text"&gt;&lt;span 
style="display:flex;"&gt;&lt;span&gt;Dubbo-Go 应用暴露 /prometheus 或 /metrics
+&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; |
+&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; v
+&lt;/span&gt;&lt;/span&gt;&lt;span 
style="display:flex;"&gt;&lt;span&gt;Prometheus 定时拉取
+&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; |
+&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; v
+&lt;/span&gt;&lt;/span&gt;&lt;span 
style="display:flex;"&gt;&lt;span&gt;Grafana 查询 Prometheus 并展示大盘
+&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Pull 
模式是 Prometheus 的标准模式,适合长期运行的 Dubbo-Go Provider 与 Consumer。当前 sample 中:&lt;/p&gt;
 &lt;table&gt;
  &lt;thead&gt;
  &lt;tr&gt;
- &lt;th&gt;组件&lt;/th&gt;
- &lt;th&gt;端口&lt;/th&gt;
- &lt;th&gt;说明&lt;/th&gt;
+ &lt;th&gt;应用&lt;/th&gt;
+ &lt;th&gt;指标地址&lt;/th&gt;
  &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
  &lt;tr&gt;
- &lt;td&gt;Grafana&lt;/td&gt;
- &lt;td&gt;3000&lt;/td&gt;
- &lt;td&gt;指标可视化&lt;/td&gt;
- &lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;Prometheus&lt;/td&gt;
- &lt;td&gt;9090&lt;/td&gt;
- &lt;td&gt;指标存储与查询&lt;/td&gt;
- &lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;Pushgateway&lt;/td&gt;
- &lt;td&gt;9091&lt;/td&gt;
- &lt;td&gt;接收应用推送指标&lt;/td&gt;
- &lt;/tr&gt;
- &lt;tr&gt;
- &lt;td&gt;go-server 指标端口&lt;/td&gt;
- &lt;td&gt;本示例中为 9099&lt;/td&gt;
- &lt;td&gt;Pull 模式下 Provider 指标暴露端口&lt;/td&gt;
+ &lt;td&gt;go-server&lt;/td&gt;
+ &lt;td&gt;&lt;code&gt;http://localhost:9099/prometheus&lt;/code&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
- &lt;td&gt;go-client 指标端口&lt;/td&gt;
- &lt;td&gt;本示例中为 9097&lt;/td&gt;
- &lt;td&gt;Pull 模式下 Consumer 指标暴露端口&lt;/td&gt;
+ &lt;td&gt;go-client&lt;/td&gt;
+ &lt;td&gt;&lt;code&gt;http://localhost:9097/prometheus&lt;/code&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;/tbody&gt;
 &lt;/table&gt;
-&lt;p&gt;如果不使用本示例,而是直接使用 Dubbo-Go 默认配置,则默认指标端点为 
&lt;code&gt;http://localhost:9090/metrics&lt;/code&gt;。当前 sample 将指标路径改成了 
&lt;code&gt;/prometheus&lt;/code&gt;。&lt;/p&gt;</description></item><item><title>Kubernetes
 
生命周期探针</title><link>https://cn.dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/tutorial/observability/probe/</link><pubDate>Mon,
 01 Jan 0001 00:00:00 
+0000</pubDate><guid>https://cn.dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/tutorial/observability/probe/</guid><descr
 [...]
+&lt;p&gt;Dubbo-Go 默认指标地址是 
&lt;code&gt;http://localhost:9090/metrics&lt;/code&gt;。sample 通过 
&lt;code&gt;metrics.WithPort(9099)&lt;/code&gt;、&lt;code&gt;metrics.WithPort(9097)&lt;/code&gt;
 和 &lt;code&gt;metrics.WithPath(&amp;quot;/prometheus&amp;quot;)&lt;/code&gt; 
改成了上面的端口与路径。&lt;/p&gt;
+&lt;h3 id="12-pushgateway-模式"&gt;1.2 Pushgateway 模式&lt;/h3&gt;
+&lt;div class="highlight"&gt;&lt;pre tabindex="0" 
style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code
 class="language-text" data-lang="text"&gt;&lt;span 
style="display:flex;"&gt;&lt;span&gt;Dubbo-Go 应用推送指标
+&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; |
+&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; v
+&lt;/span&gt;&lt;/span&gt;&lt;span 
style="display:flex;"&gt;&lt;span&gt;Pushgateway 暂存指标
+&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; |
+&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; v
+&lt;/span&gt;&lt;/span&gt;&lt;span 
style="display:flex;"&gt;&lt;span&gt;Prometheus 拉取 Pushgateway
+&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; |
+&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; v
+&lt;/span&gt;&lt;/span&gt;&lt;span 
style="display:flex;"&gt;&lt;span&gt;Grafana 查询 Prometheus 并展示大盘
+&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Pushgateway
 更适合 batch、cron job 等短生命周期任务。长期运行的服务优先使用 Pull 模式;如果必须使用 
Pushgateway,请配合清理机制,避免停止后的旧指标继续留在 Pushgateway 
中。&lt;/p&gt;</description></item><item><title>Kubernetes 
生命周期探针</title><link>https://cn.dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/tutorial/observability/probe/</link><pubDate>Mon,
 01 Jan 0001 00:00:00 
+0000</pubDate><guid>https://cn.dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/tutorial/obser
 [...]
 &lt;p&gt;Dubbo-Go 提供内置的 &lt;strong&gt;Kubernetes HTTP Probe 
服务&lt;/strong&gt;,用于支持:&lt;/p&gt;
 &lt;ul&gt;
 &lt;li&gt;✅ &lt;code&gt;liveness&lt;/code&gt;&lt;/li&gt;
diff --git 
a/zh-cn/overview/mannual/golang-sdk/tutorial/observability/rpc_metrics/index.html
 
b/zh-cn/overview/mannual/golang-sdk/tutorial/observability/rpc_metrics/index.html
index df2964a6c10..fd9c5af9760 100644
--- 
a/zh-cn/overview/mannual/golang-sdk/tutorial/observability/rpc_metrics/index.html
+++ 
b/zh-cn/overview/mannual/golang-sdk/tutorial/observability/rpc_metrics/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS 
content="INDEX, FOLLOW"><link rel=alternate hreflang=en 
href=https://cn.dubbo.apache.org/en/overview/mannual/golang-sdk/tutorial/observability/rpc_metrics/><link
 rel=canonical 
href=https://cn.dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/tutorial/observability/rpc_metrics/><script>var
 
_paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.d
 [...]
+<!doctype html><html lang=zh-cn class=no-js><head><meta name=ROBOTS 
content="INDEX, FOLLOW"><link rel=alternate hreflang=en 
href=https://cn.dubbo.apache.org/en/overview/mannual/golang-sdk/tutorial/observability/rpc_metrics/><link
 rel=canonical 
href=https://cn.dubbo.apache.org/zh-cn/overview/mannual/golang-sdk/tutorial/observability/rpc_metrics/><script>var
 
_paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]),_paq.push(["setCookieDomain","*.d
 [...]
 <a class=dropdown-item href=/zh-cn/overview/notices/>安全公告</a>
 <a class=dropdown-item href=/zh-cn/contact/>贡献者指南</a></div></li><li 
class="nav-item nav-item-line px-2 mb-2 mb-lg-0"><a class=nav-link 
href=/zh-cn/blog/><span>博客</span></a></li><li class="nav-item nav-item-line 
px-2 mb-2 mb-lg-0"><a class=nav-link 
href=/zh-cn/download/><span>下载</span></a></li><li class="nav-item dropdown 
d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown 
role=button data-toggle=dropdown aria-haspopup=true 
aria-expanded=false>生态</a><div class="dropdo [...]
 <a class=dropdown-item href=/zh-cn/overview/mannual/control-plane/>可视化控制台</a>
@@ -688,77 +688,89 @@
 <label for=m-zh-cnoverviewnoticesprotocol-check><a 
href=/zh-cn/overview/notices/protocol/ class="align-left pl-0 td-sidebar-link 
td-sidebar-link__page" id=m-zh-cnoverviewnoticesprotocol><span>RPC 
协议安全</span></a></label></li><li class="td-sidebar-nav__section-title 
td-sidebar-nav__section without-child" 
id=m-zh-cnoverviewnoticesregistry-li><input type=checkbox 
id=m-zh-cnoverviewnoticesregistry-check>
 <label for=m-zh-cnoverviewnoticesregistry-check><a 
href=/zh-cn/overview/notices/registry/ class="align-left pl-0 td-sidebar-link 
td-sidebar-link__page" 
id=m-zh-cnoverviewnoticesregistry><span>注册中心安全</span></a></label></li><li 
class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" 
id=m-zh-cnoverviewnoticesadmin-li><input type=checkbox 
id=m-zh-cnoverviewnoticesadmin-check>
 <label for=m-zh-cnoverviewnoticesadmin-check><a 
href=/zh-cn/overview/notices/admin/ class="align-left pl-0 td-sidebar-link 
td-sidebar-link__page" id=m-zh-cnoverviewnoticesadmin><span>Dubbo Admin 
安全</span></a></label></li><li class="td-sidebar-nav__section-title 
td-sidebar-nav__section without-child" id=m-zh-cnoverviewnoticeslog4j-li><input 
type=checkbox id=m-zh-cnoverviewnoticeslog4j-check>
-<label for=m-zh-cnoverviewnoticeslog4j-check><a 
href=/zh-cn/overview/notices/log4j/ class="align-left pl-0 td-sidebar-link 
td-sidebar-link__page" id=m-zh-cnoverviewnoticeslog4j><span>Log4j 
漏洞影响</span></a></label></li></ul></li></ul></li></ul></nav></div></div><main 
class="col-12 col-md-9 col-xl-8 pl-md-5" role=main><nav aria-label=breadcrumb 
class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a 
href=/zh-cn/overview/>文档</a></li><li class=breadcrumb-item><a href=/zh-cn/ove 
[...]
-</span></span><span style=display:flex><span>        (暴露 /metrics 或 
/prometheus 接口)
-</span></span></code></pre></div><p>Prometheus 主动抓取 Dubbo-Go 应用指标。</p><h3 
id=12-push-模式适用于短生命周期任务>1.2 Push 模式(适用于短生命周期任务)</h3><div class=highlight><pre 
tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-fallback data-lang=fallback><span 
style=display:flex><span>Dubbo-Go 应用  ---&gt;  Pushgateway  ---&gt;  Prometheus 
 ---&gt;  Grafana
-</span></span></code></pre></div><p>应用主动推送指标到 Pushgateway,Prometheus 
再拉取。</p><p>Pushgateway 适用于 <strong>短生命周期任务(如 batch / cron 
job)</strong>,不推荐用于长期运行的服务。</p><h2 id=2-示例组件说明>2. 
示例组件说明</h2><table><thead><tr><th>组件</th><th>端口</th><th>说明</th></tr></thead><tbody><tr><td>Grafana</td><td>3000</td><td>指标可视化</td></tr><tr><td>Prometheus</td><td>9090</td><td>指标存储与查询</td></tr><tr><td>Pushgateway</td><td>9091</td><td>接收应用推送指标</td></tr><tr><td>go-server
 指标端口</td><td>本示例中为 9099</td><td>Pull 模式下 Provid [...]
-</span></span></code></pre></div><p>启动监控组件:</p><div class=highlight><pre 
tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span 
style=display:flex><span>docker-compose up -d
-</span></span></code></pre></div><p>访问地址:</p><ul><li>Grafana: <a 
href=http://localhost:3000>http://localhost:3000</a></li><li>Prometheus: <a 
href=http://localhost:9090>http://localhost:9090</a></li><li>Pushgateway: <a 
href=http://localhost:9091>http://localhost:9091</a></li></ul><h3 
id=32-配置环境变量>3.2 配置环境变量</h3><p>客户端与服务端使用相同环境变量:</p><div class=highlight><pre 
tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lan [...]
-</span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span><span style=color:#586e75># Push 
模式必需</span>
+<label for=m-zh-cnoverviewnoticeslog4j-check><a 
href=/zh-cn/overview/notices/log4j/ class="align-left pl-0 td-sidebar-link 
td-sidebar-link__page" id=m-zh-cnoverviewnoticeslog4j><span>Log4j 
漏洞影响</span></a></label></li></ul></li></ul></li></ul></nav></div></div><main 
class="col-12 col-md-9 col-xl-8 pl-md-5" role=main><nav aria-label=breadcrumb 
class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a 
href=/zh-cn/overview/>文档</a></li><li class=breadcrumb-item><a href=/zh-cn/ove 
[...]
+</span></span><span style=display:flex><span>        |
+</span></span><span style=display:flex><span>        v
+</span></span><span style=display:flex><span>Prometheus 定时拉取
+</span></span><span style=display:flex><span>        |
+</span></span><span style=display:flex><span>        v
+</span></span><span style=display:flex><span>Grafana 查询 Prometheus 并展示大盘
+</span></span></code></pre></div><p>Pull 模式是 Prometheus 的标准模式,适合长期运行的 Dubbo-Go 
Provider 与 Consumer。当前 sample 
中:</p><table><thead><tr><th>应用</th><th>指标地址</th></tr></thead><tbody><tr><td>go-server</td><td><code>http://localhost:9099/prometheus</code></td></tr><tr><td>go-client</td><td><code>http://localhost:9097/prometheus</code></td></tr></tbody></table><p>Dubbo-Go
 默认指标地址是 <code>http://localhost:9090/metrics</code>。sample 通过 
<code>metrics.WithPort(9099)</code>、<code>metrics.WithPort(9097) [...]
+</span></span><span style=display:flex><span>        |
+</span></span><span style=display:flex><span>        v
+</span></span><span style=display:flex><span>Pushgateway 暂存指标
+</span></span><span style=display:flex><span>        |
+</span></span><span style=display:flex><span>        v
+</span></span><span style=display:flex><span>Prometheus 拉取 Pushgateway
+</span></span><span style=display:flex><span>        |
+</span></span><span style=display:flex><span>        v
+</span></span><span style=display:flex><span>Grafana 查询 Prometheus 并展示大盘
+</span></span></code></pre></div><p>Pushgateway 更适合 batch、cron job 
等短生命周期任务。长期运行的服务优先使用 Pull 模式;如果必须使用 Pushgateway,请配合清理机制,避免停止后的旧指标继续留在 
Pushgateway 中。</p><h2 id=2-准备示例>2. 准备示例</h2><p>克隆 samples 仓库并进入示例目录:</p><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span>git clone 
--depth <span style=color:#2aa198>1</span> https://github.com/apache/dubbo-go- 
[...]
+</span></span><span style=display:flex><span><span 
style=color:#b58900>cd</span> dubbo-go-samples/observability/prometheus_grafana
+</span></span></code></pre></div><p>该目录包含:</p><table><thead><tr><th>文件或目录</th><th>说明</th></tr></thead><tbody><tr><td><code>docker-compose.yml</code></td><td>启动
 
ZooKeeper、Prometheus、Pushgateway、Grafana</td></tr><tr><td><code>prometheus_pull.yml</code></td><td>Pull
 模式的 Prometheus 
配置</td></tr><tr><td><code>prometheus_push.yml</code></td><td>Pushgateway 模式的 
Prometheus 
配置</td></tr><tr><td><code>go-server/cmd/main.go</code></td><td>Provider 示例,RPC 
端口 <code>20000</code>,指标端口 <code>9099</code></ [...]
+</span></span></code></pre></div><p>如果你的环境还在使用 Docker Compose v1,可以执行:</p><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span 
style=display:flex><span>docker-compose up -d
+</span></span></code></pre></div><p>启动后可访问:</p><table><thead><tr><th>组件</th><th>地址</th></tr></thead><tbody><tr><td>Grafana</td><td><code>http://localhost:3000</code></td></tr><tr><td>Prometheus</td><td><code>http://localhost:9090</code></td></tr><tr><td>Pushgateway</td><td><code>http://localhost:9091</code></td></tr><tr><td>ZooKeeper</td><td><code>127.0.0.1:2181</code></td></tr></tbody></table><h2
 id=3-pull-模式运行流程>3. Pull 模式运行流程</h2><p><code>docker-compose.yml</code> 默认挂载 
<code>prometheu [...]
+</span></span></code></pre></div><p>Windows PowerShell 使用:</p><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-powershell data-lang=powershell><span 
style=display:flex><span><span style=color:#268bd2>$env:ZK_ADDRESS</span>=<span 
style=color:#2aa198>&#34;127.0.0.1:2181&#34;</span>
+</span></span></code></pre></div><ol start=2><li>启动 Provider:</li></ol><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span>go run 
./go-server/cmd/main.go --push<span style=color:#719e07>=</span><span 
style=color:#b58900>false</span>
+</span></span></code></pre></div><ol start=3><li>新开终端,进入同一目录后启动 
Consumer:</li></ol><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span><span 
style=color:#b58900>cd</span> dubbo-go-samples/observability/prometheus_grafana
+</span></span><span style=display:flex><span><span 
style=color:#b58900>export</span> <span 
style=color:#268bd2>ZK_ADDRESS</span><span style=color:#719e07>=</span><span 
style=color:#2aa198>&#34;127.0.0.1:2181&#34;</span>
+</span></span><span style=display:flex><span>go run ./go-client/cmd/main.go 
--push<span style=color:#719e07>=</span><span style=color:#b58900>false</span>
+</span></span></code></pre></div><ol start=4><li>访问应用暴露的指标端点:</li></ol><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span>curl 
http://localhost:9099/prometheus
+</span></span><span style=display:flex><span>curl 
http://localhost:9097/prometheus
+</span></span></code></pre></div><p>输出中可以看到 
<code>dubbo_provider_</code>、<code>dubbo_consumer_</code>、<code>dubbo_application_</code>
 等指标。例如:</p><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-text data-lang=text><span 
style=display:flex><span>dubbo_provider_requests_total
+</span></span><span 
style=display:flex><span>dubbo_consumer_requests_succeed_total
+</span></span></code></pre></div><ol start=5><li>打开 
<code>http://localhost:9090/targets</code>,确认 <code>dubbo-provider</code> 与 
<code>dubbo-consumer</code> 两个 target 为 <code>UP</code>。</li></ol><h2 
id=4-pushgateway-模式运行流程>4. Pushgateway 模式运行流程</h2><p>Pushgateway 模式需要让 
Prometheus 拉取 Pushgateway,而不是直接拉取 Dubbo-Go 应用。</p><ol><li>将 
<code>docker-compose.yml</code> 中 Prometheus 的配置文件挂载从 Pull 配置改为 Push 
配置:</li></ol><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36 [...]
+</span></span><span style=display:flex><span>  - 
./prometheus_push.yml:/etc/prometheus/prometheus.yml
+</span></span></code></pre></div><ol start=2><li>重新启动监控组件:</li></ol><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span>docker 
compose down
+</span></span><span style=display:flex><span>docker compose up -d
+</span></span></code></pre></div><ol start=3><li>设置环境变量:</li></ol><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span><span 
style=color:#b58900>export</span> <span 
style=color:#268bd2>ZK_ADDRESS</span><span style=color:#719e07>=</span><span 
style=color:#2aa198>&#34;127.0.0.1:2181&#34;</span>
 </span></span><span style=display:flex><span><span 
style=color:#b58900>export</span> <span 
style=color:#268bd2>PUSHGATEWAY_URL</span><span 
style=color:#719e07>=</span><span 
style=color:#2aa198>&#34;127.0.0.1:9091&#34;</span>
 </span></span><span style=display:flex><span><span 
style=color:#b58900>export</span> <span 
style=color:#268bd2>JOB_NAME</span><span style=color:#719e07>=</span><span 
style=color:#2aa198>&#34;dubbo-service&#34;</span>
 </span></span><span style=display:flex><span>
-</span></span><span style=display:flex><span><span style=color:#586e75># 
可选</span>
+</span></span><span style=display:flex><span><span style=color:#586e75># 如果 
Pushgateway 开启了 Basic Auth,再设置以下变量</span>
 </span></span><span style=display:flex><span><span 
style=color:#b58900>export</span> <span 
style=color:#268bd2>PUSHGATEWAY_USER</span><span 
style=color:#719e07>=</span><span style=color:#2aa198>&#34;username&#34;</span>
 </span></span><span style=display:flex><span><span 
style=color:#b58900>export</span> <span 
style=color:#268bd2>PUSHGATEWAY_PASS</span><span 
style=color:#719e07>=</span><span style=color:#2aa198>&#34;1234&#34;</span>
-</span></span></code></pre></div><h3 id=33-启动-dubbo-go-服务端>3.3 启动 Dubbo-Go 
服务端</h3><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span>go run 
./go-server/cmd/main.go
-</span></span></code></pre></div><h3 id=34-启动-dubbo-go-客户端>3.4 启动 Dubbo-Go 
客户端</h3><h4 id=默认-push-模式>默认 Push 模式</h4><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span>go run 
./go-client/cmd/main.go
-</span></span></code></pre></div><h4 id=使用-pull-模式>使用 Pull 模式</h4><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span>go run 
./go-client/cmd/main.go --push<span style=color:#719e07>=</span><span 
style=color:#b58900>false</span>
-</span></span><span style=display:flex><span>go run ./go-server/cmd/main.go 
--push<span style=color:#719e07>=</span><span style=color:#b58900>false</span>
-</span></span></code></pre></div><h3 id=35-验证指标>3.5 验证指标</h3><h4 
id=push-模式>Push 模式</h4><p>访问:</p><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-fallback data-lang=fallback><span 
style=display:flex><span>http://localhost:9091/metrics
-</span></span></code></pre></div><h4 id=pull-模式>Pull 
模式</h4><p><code>&lt;应用端口></code> 指的是 Dubbo-Go 应用自身暴露 Prometheus 指标的 HTTP 端口,不是 
Prometheus 或 Pushgateway 的端口。</p><p>在当前 sample 
中:</p><ul><li>Provider:<code>http://localhost:9099/prometheus</code></li><li>Consumer:<code>http://localhost:9097/prometheus</code></li></ul><p>这两个端口定义在
 <a 
href=https://github.com/apache/dubbo-go-samples/blob/main/metrics/prometheus_grafana/prometheus_pull.yml><code>metrics/prometheus_grafana/prometheus_pull.yml
 [...]
-</span></span></code></pre></div><ol start=4><li>点击 <strong>Add new data 
source</strong></li><li>选择 Prometheus</li><li>填写:</li></ol><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-fallback data-lang=fallback><span 
style=display:flex><span>http://host.docker.internal:9090
-</span></span></code></pre></div><blockquote><p>说明:<code>host.docker.internal</code>
 用于让 Docker 容器访问宿主机网络。如果该地址不可用,请替换为宿主机实际 IP。</p></blockquote><ol start=7><li>点击 
Save & Test</li></ol><h3 id=42-导入-dubbo-监控大盘>4.2 导入 Dubbo 
监控大盘</h3><ol><li>进入:</li></ol><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-fallback data-lang=fallback><span style=display:flex><span>Home 
→ Dashboards → New → Import
-</span></span></code></pre></div><ol 
start=2><li>使用以下任一方式导入:</li></ol><ul><li>直接上传 sample 目录中的 <a 
href=https://github.com/apache/dubbo-go-samples/blob/main/metrics/prometheus_grafana/grafana.json><code>grafana.json</code></a></li><li>输入
 Grafana dashboard ID <code>19294</code>(<code>Dubbo Observability</code>)后点击 
<strong>Load</strong></li><li>或从 <a 
href=https://grafana.com/grafana/dashboards/19294-dubbo-observability/>Grafana 
Labs</a> 下载 JSON 文件再上传</li></ul><ol start=3><li><p>sample 仓库已经直 [...]
-</span></span></code></pre></div><p>是否有数据</p><h3 
id=62-hostdockerinternal-无法访问>6.2 host.docker.internal 无法访问</h3><p>请改为实际 IP 
地址:</p><ul><li>修改 
<code>metrics/prometheus_grafana/prometheus_pull.yml</code></li><li>修改 Grafana 
数据源 URL</li></ul><h2 id=7-kubernetes-部署>7. Kubernetes 
部署</h2><p>推荐使用:</p><blockquote><p>kube-prometheus
-<a 
href=https://github.com/prometheus-operator/kube-prometheus>https://github.com/prometheus-operator/kube-prometheus</a></p></blockquote><h3
 id=71-添加-podmonitor>7.1 添加 PodMonitor</h3><p>创建:</p><div class=highlight><pre 
tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-fallback data-lang=fallback><span 
style=display:flex><span>dubboPodMonitor.yaml
-</span></span></code></pre></div><p>内容:</p><div class=highlight><pre 
tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-yaml data-lang=yaml><span style=display:flex><span><span 
style=color:#268bd2>apiVersion</span>: monitoring.coreos.com/v1
-</span></span><span style=display:flex><span><span 
style=color:#268bd2>kind</span>: PodMonitor
-</span></span><span style=display:flex><span><span 
style=color:#268bd2>metadata</span>:
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>name</span>: dubbo-pod-monitor
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>namespace</span>: monitoring
-</span></span><span style=display:flex><span><span 
style=color:#268bd2>spec</span>:
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>namespaceSelector</span>:
-</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>matchNames</span>:
-</span></span><span style=display:flex><span>      - dubbo-system
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>selector</span>:
-</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>matchLabels</span>:
-</span></span><span style=display:flex><span>      <span 
style=color:#268bd2>app-type</span>: dubbo
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>podMetricsEndpoints</span>:
-</span></span><span style=display:flex><span>    - <span 
style=color:#268bd2>port</span>: metrics
-</span></span><span style=display:flex><span>      <span 
style=color:#268bd2>path</span>: /prometheus
-</span></span></code></pre></div><h3 id=72-可选集群启用-rbac-时补充权限配置>7.2 可选:集群启用 
RBAC 时补充权限配置</h3><p>如果集群开启了 RBAC,建议为 Prometheus 增加对 <code>dubbo-system</code> 
命名空间内 Pod 的读取权限:</p><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-yaml data-lang=yaml><span style=display:flex><span><span 
style=color:#268bd2>apiVersion</span>: rbac.authorization.k8s.io/v1
-</span></span><span style=display:flex><span><span 
style=color:#268bd2>kind</span>: Role
-</span></span><span style=display:flex><span><span 
style=color:#268bd2>metadata</span>:
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>namespace</span>: dubbo-system
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>name</span>: pod-reader
-</span></span><span style=display:flex><span><span 
style=color:#268bd2>rules</span>:
-</span></span><span style=display:flex><span>  - <span 
style=color:#268bd2>apiGroups</span>: [<span 
style=color:#2aa198>&#34;&#34;</span>]
-</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>resources</span>: [<span 
style=color:#2aa198>&#34;pods&#34;</span>]
-</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>verbs</span>: [<span 
style=color:#2aa198>&#34;get&#34;</span>, <span 
style=color:#2aa198>&#34;list&#34;</span>, <span 
style=color:#2aa198>&#34;watch&#34;</span>]
-</span></span><span style=display:flex><span>---
-</span></span><span style=display:flex><span><span 
style=color:#268bd2>apiVersion</span>: rbac.authorization.k8s.io/v1
-</span></span><span style=display:flex><span><span 
style=color:#268bd2>kind</span>: RoleBinding
-</span></span><span style=display:flex><span><span 
style=color:#268bd2>metadata</span>:
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>name</span>: pod-reader-binding
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>namespace</span>: dubbo-system
-</span></span><span style=display:flex><span><span 
style=color:#268bd2>roleRef</span>:
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>apiGroup</span>: rbac.authorization.k8s.io
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>kind</span>: Role
-</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>name</span>: pod-reader
-</span></span><span style=display:flex><span><span 
style=color:#268bd2>subjects</span>:
-</span></span><span style=display:flex><span>  - <span 
style=color:#268bd2>kind</span>: ServiceAccount
-</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>name</span>: prometheus-k8s
-</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>namespace</span>: monitoring
-</span></span></code></pre></div><p>如果你的 Prometheus 安装使用的 ServiceAccount 不是 
<code>prometheus-k8s</code>,请按实际名称修改 <code>subjects</code>。</p><h3 
id=73-部署应用>7.3 部署应用</h3><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span>kubectl 
apply -f Deployment.yaml
-</span></span></code></pre></div><h3 id=74-验证>7.4 验证</h3><p>访问:</p><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-fallback data-lang=fallback><span 
style=display:flex><span>http://&lt;prometheus-nodeport&gt;/targets
-</span></span></code></pre></div><p>确认 Pod 状态为:</p><div class=highlight><pre 
tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-fallback data-lang=fallback><span style=display:flex><span>UP
-</span></span></code></pre></div><h2 id=8-生产建议>8. 
生产建议</h2><table><thead><tr><th>场景</th><th>推荐模式</th></tr></thead><tbody><tr><td>长期运行服务</td><td>Pull</td></tr><tr><td>短生命周期任务</td><td>Push</td></tr><tr><td>K8s
 环境</td><td>Pull + PodMonitor</td></tr><tr><td>需要清理能力</td><td>配合 
pgw-cleaner</td></tr></tbody></table><h2 id=9-总结>9. 总结</h2><p>Dubbo-Go 
当前支持:</p><ul><li>Pull 模式(标准 Prometheus 模式)</li><li>Push 
模式(Pushgateway)</li><li>Docker 快速部署</li><li>Kubernetes 
PodMonitor</li><li>Grafana 大盘</li><li> [...]
-<button class="btn btn-primary mb-4 
feedback--no">否</button></div><script>const 
yes=document.querySelector(".feedback--yes"),no=document.querySelector(".feedback--no");document.querySelectorAll(".feedback--link").forEach(e=>{e.href=e.href+window.location.pathname});const
 
sendFeedback=e=>{gtag||console.log("!gtag"),gtag("event","click",{event_category:"Helpful",event_label:window.location.pathname,value:e})},disableButtons=()=>{yes.disabled=!0,yes.classList.add("feedback--button__disabled
 [...]
+</span></span></code></pre></div><ol start=4><li>启动 Provider 与 
Consumer:</li></ol><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span>go run 
./go-server/cmd/main.go
+</span></span></code></pre></div><p>新开终端:</p><div class=highlight><pre 
tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span><span 
style=color:#b58900>cd</span> dubbo-go-samples/observability/prometheus_grafana
+</span></span><span style=display:flex><span><span 
style=color:#b58900>export</span> <span 
style=color:#268bd2>ZK_ADDRESS</span><span style=color:#719e07>=</span><span 
style=color:#2aa198>&#34;127.0.0.1:2181&#34;</span>
+</span></span><span style=display:flex><span><span 
style=color:#b58900>export</span> <span 
style=color:#268bd2>PUSHGATEWAY_URL</span><span 
style=color:#719e07>=</span><span 
style=color:#2aa198>&#34;127.0.0.1:9091&#34;</span>
+</span></span><span style=display:flex><span><span 
style=color:#b58900>export</span> <span 
style=color:#268bd2>JOB_NAME</span><span style=color:#719e07>=</span><span 
style=color:#2aa198>&#34;dubbo-service&#34;</span>
+</span></span><span style=display:flex><span>go run ./go-client/cmd/main.go
+</span></span></code></pre></div><ol start=5><li>访问 Pushgateway 
指标:</li></ol><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-bash data-lang=bash><span style=display:flex><span>curl 
http://localhost:9091/metrics
+</span></span></code></pre></div><ol start=6><li>打开 
<code>http://localhost:9090/targets</code>,确认 <code>pushgateway</code> target 为 
<code>UP</code>。</li></ol><p>示例应用注册了 
<code>job_pushed_at_seconds</code>,并在优雅退出时调用 Pushgateway DELETE API 清理自身 
job。直接强制结束进程时可能来不及清理,生产环境建议配合 <a 
href=https://github.com/apache/dubbo-go-samples/tree/main/tools/pgw-cleaner 
target=_blank>pgw-cleaner</a> 定期清理过期指标。</p><h2 id=5-prometheus-配置说明>5. 
Prometheus 配置说明</h2><h3 id=51-pull-配置>5.1 Pull 配置</h3><p><code>prometh [...]
+</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>evaluation_interval</span>: 15s
+</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>scrape_interval</span>: 15s
+</span></span><span style=display:flex><span><span 
style=color:#268bd2>scrape_configs</span>:
+</span></span><span style=display:flex><span>  - <span 
style=color:#268bd2>job_name</span>: dubbo-provider
+</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>scrape_interval</span>: 15s
+</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>scrape_timeout</span>: 5s
+</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>metrics_path</span>: /prometheus
+</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>static_configs</span>:
+</span></span><span style=display:flex><span>      - <span 
style=color:#268bd2>targets</span>: [<span 
style=color:#2aa198>&#39;host.docker.internal:9099&#39;</span>]
+</span></span><span style=display:flex><span>  - <span 
style=color:#268bd2>job_name</span>: dubbo-consumer
+</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>scrape_interval</span>: 15s
+</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>scrape_timeout</span>: 5s
+</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>metrics_path</span>: /prometheus
+</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>static_configs</span>:
+</span></span><span style=display:flex><span>      - <span 
style=color:#268bd2>targets</span>: [<span 
style=color:#2aa198>&#39;host.docker.internal:9097&#39;</span>]
+</span></span></code></pre></div><p><code>host.docker.internal</code> 表示 
Prometheus 容器访问宿主机上的 Dubbo-Go 进程。如果 Prometheus 与应用都运行在同一个 Docker 
网络内,可改成容器名;如果是在 Linux 环境且该域名不可用,请改成宿主机实际 IP,或在 compose 中增加 
<code>host-gateway</code> 映射。</p><h3 id=52-pushgateway-配置>5.2 Pushgateway 
配置</h3><p><code>prometheus_push.yml</code> 只抓取 Pushgateway:</p><div 
class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-yaml data-lang [...]
+</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>evaluation_interval</span>: 15s
+</span></span><span style=display:flex><span>  <span 
style=color:#268bd2>scrape_interval</span>: 15s
+</span></span><span style=display:flex><span><span 
style=color:#268bd2>scrape_configs</span>:
+</span></span><span style=display:flex><span>  - <span 
style=color:#268bd2>job_name</span>: <span 
style=color:#2aa198>&#39;pushgateway&#39;</span>
+</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>static_configs</span>:
+</span></span><span style=display:flex><span>      - <span 
style=color:#268bd2>targets</span>: [<span 
style=color:#2aa198>&#39;host.docker.internal:9091&#39;</span>]
+</span></span><span style=display:flex><span>    <span 
style=color:#268bd2>honor_labels</span>: <span style=color:#cb4b16>true</span>
+</span></span></code></pre></div><p><code>honor_labels: true</code> 会保留应用推送到 
Pushgateway 的 <code>job</code>、<code>instance</code> 等标签,便于 Grafana dashboard 
按服务维度展示。</p><h2 id=6-grafana-dashboard-导入>6. Grafana dashboard 
导入</h2><ol><li>打开 <code>http://localhost:3000</code>,默认账号密码为 <code>admin</code> 
/ <code>admin</code>。</li><li>进入 <code>Home -> Connections -> Data 
sources</code>,点击 <code>Add new data source</code>。</li><li>选择 
<code>Prometheus</code>,数据源地址填写 <code>http://host.docker.interna [...]
+</span></span><span style=display:flex><span>curl 
http://localhost:9097/prometheus
+</span></span><span style=display:flex><span>curl http://localhost:9091/metrics
+</span></span></code></pre></div><p>如果宿主机可以访问而 Prometheus 容器访问失败,通常是 Docker 
网络地址问题。把 <code>host.docker.internal</code> 改为宿主机实际 IP,或在 Linux Docker Compose 
中为 Prometheus 增加:</p><div class=highlight><pre tabindex=0 
style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code
 class=language-yaml data-lang=yaml><span style=display:flex><span><span 
style=color:#268bd2>extra_hosts</span>:
+</span></span><span style=display:flex><span>  - <span 
style=color:#2aa198>&#34;host.docker.internal:host-gateway&#34;</span>
+</span></span></code></pre></div><h3 id=73-grafana-显示-no-data>7.3 Grafana 显示 
No Data</h3><p>确认 Prometheus 数据源 <code>Save & test</code> 成功;在 
<code>http://localhost:9090/targets</code> 确认 target 为 <code>UP</code>;在 
Prometheus 查询 <code>dubbo_consumer_requests_succeed_total</code> 或 
<code>dubbo_provider_requests_total</code>。如果查询为空,请确认 client 正在持续调用 
server,并等待一个 scrape interval。</p><h3 id=74-pushgateway-中有旧-job>7.4 Pushgateway 
中有旧 job</h3><p>Pushgateway 默认不会自动删除旧指标。优雅退出 sample 进程可以触发清理逻辑;生产环 [...]
+<button class="btn btn-primary mb-4 
feedback--no">否</button></div><script>const 
yes=document.querySelector(".feedback--yes"),no=document.querySelector(".feedback--no");document.querySelectorAll(".feedback--link").forEach(e=>{e.href=e.href+window.location.pathname});const
 
sendFeedback=e=>{gtag||console.log("!gtag"),gtag("event","click",{event_category:"Helpful",event_label:window.location.pathname,value:e})},disableButtons=()=>{yes.disabled=!0,yes.classList.add("feedback--button__disabled
 [...]
 <a 
href="https://github.com/apache/dubbo-website/new/master/content/zh-cn//overview/mannual/golang-sdk/tutorial/observability/rpc_metrics?filename=change-me.md&amp;value=---%0Atitle%3A+%22Long+Page+Title%22%0AlinkTitle%3A+%22Short+Nav+Title%22%0Aweight%3A+100%0Adescription%3A+%3E-%0A+++++Page+description+for+heading+and+indexes.%0A---%0A%0A%23%23+Heading%0A%0AEdit+this+template+to+create+your+new+page.%0A%0A%2A+Give+it+a+good+name%2C+ending+in+%60.md%60+-+e.g.+%60getting-started.md%60%0A
 [...]
 <a 
href="https://github.com/apache/dubbo-website/issues/new?title=%e6%8c%87%e6%a0%87%e7%9b%91%e6%8e%a7%20%28Metrics%29";
 target=_blank><i class="fab fa-github fa-fw"></i> 登记问题</a>
-<a href=https://github.com/apache/dubbo/issues/new target=_blank><i class="fas 
fa-tasks fa-fw"></i> 提交项目问题</a></div><nav id=TableOfContents><ul><li><a 
href=#1-监控架构说明>1. 监控架构说明</a><ul><li><a href=#11-pull-模式推荐生产模式>1.1 Pull 
模式(推荐生产模式)</a></li><li><a href=#12-push-模式适用于短生命周期任务>1.2 Push 
模式(适用于短生命周期任务)</a></li></ul></li><li><a href=#2-示例组件说明>2. 示例组件说明</a></li><li><a 
href=#3-快速开始>3. 快速开始</a><ul><li><a href=#31-启动监控服务栈>3.1 启动监控服务栈</a></li><li><a 
href=#32-配置环境变量>3.2 配置环境变量</a></li><li><a href=#3 [...]
+<a href=https://github.com/apache/dubbo/issues/new target=_blank><i class="fas 
fa-tasks fa-fw"></i> 提交项目问题</a></div><nav id=TableOfContents><ul><li><a 
href=#1-工作模式>1. 工作模式</a><ul><li><a href=#11-pull-模式>1.1 Pull 模式</a></li><li><a 
href=#12-pushgateway-模式>1.2 Pushgateway 模式</a></li></ul></li><li><a 
href=#2-准备示例>2. 准备示例</a></li><li><a href=#3-pull-模式运行流程>3. Pull 
模式运行流程</a></li><li><a href=#4-pushgateway-模式运行流程>4. Pushgateway 
模式运行流程</a></li><li><a href=#5-prometheus-配置说明>5. Prometheus 配置说明</ [...]
 <button class="contact-btn qr-container" 
onmouseover='showQRCode("dingding-qr")' 
onmouseout='hideQRCode("dingding-qr")'>钉钉<div class=qr-code id=dingding-qr 
style=display:none><img 
src=https://img.alicdn.com/imgextra/i4/O1CN01buuadT274Lj33QZWQ_!!6000000007743-0-tps-1170-1477.jpg
 alt="DingTalk QR Code"></div></button>
 <button class=contact-btn><a 
href=https://github.com/apache/dubbo/>GitHub</a></button></div></div><div 
class=footer-container-right><ul><li>文档</li><li><a 
href=/zh-cn/overview/home/>概览</a></li><li><a 
href=/zh-cn/overview/quickstart/>快速开始</a></li><li><a 
href=/zh-cn/contact/contributor/software-donation-guide_dev/>开发者指南</a></li></ul><ul><li>资源</li><li><a
 href=/zh-cn/contact/>社区</a></li></ul></div></div><div 
style="width:85.125rem;height:0;border:1px solid 
#dddee4;margin-bottom:32px"></div>< [...]
 project logo are either registered trademarks or trademarks of The Apache 
Software Foundation in the United States
diff --git a/zh-cn/sitemap.xml b/zh-cn/sitemap.xml
index cc27999c7a5..05dd5fb4c09 100644
--- a/zh-cn/sitemap.xml
+++ b/zh-cn/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset 
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"; 
xmlns:xhtml="http://www.w3.org/1999/xhtml";><url><loc>https://cn.dubbo.apache.org/zh-cn/blog/2023/01/16/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4%E5%8D%87%E7%BA%A7-dubbo3-%E5%85%A8%E9%9D%A2%E5%8F%96%E4%BB%A3-hsf2/</loc><lastmod>2023-11-28T15:14:12+08:00</lastmod><changefreq>monthly</changefreq><priority>0.5</priority><xhtml:link
 rel="alternate" hreflang="en" href="https://cn.dubbo [...]
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset 
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"; 
xmlns:xhtml="http://www.w3.org/1999/xhtml";><url><loc>https://cn.dubbo.apache.org/zh-cn/blog/2023/01/16/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4%E5%8D%87%E7%BA%A7-dubbo3-%E5%85%A8%E9%9D%A2%E5%8F%96%E4%BB%A3-hsf2/</loc><lastmod>2023-11-28T15:14:12+08:00</lastmod><changefreq>monthly</changefreq><priority>0.5</priority><xhtml:link
 rel="alternate" hreflang="en" href="https://cn.dubbo [...]
\ No newline at end of file

Reply via email to