zvvq技术分享网

golang中有哪些强大的性能监控框架?(golang监听

作者:zvvq博客网
导读go 提供丰富的性能监控框架,包括 opentelemetry-go(用于收集指标、日志和跟踪)、prometheus-client- golang (暴露指标)、statsd-client-go(发送指标到 statsd 服务器)、pprof(内置剖析包)。实

go 提供丰富的性能监控框架,包括 opentelemetry-go(用于收集指标、日志和跟踪)、prometheus-client-golang(暴露指标)、statsd-client-go(发送指标到 statsd 服务器)、pprof(内置剖析包)。实战案例展示了使用 opentelemetry-go 跟踪请求延迟、prometheus-client-golang 暴露 cpu 使用率指标、pprof 对 cpu 使用情况进行剖析。 copyright zvvq

copyright zvvq

Go 中强大的性能监控框架

copyright zvvq

在微服务、云原生和分布式系统盛行的时代,性能监控对于确保应用程序的健康性和可靠性至关重要。Golang 提供了丰富的性能监控框架,可以帮助开发人员轻松有效地跟踪和分析应用程序性能。

本文来自zvvq

最受欢迎的 Go 性能监控框架

内容来自samhan666

”; zvvq

opentelemetry-go:Google 主导的用于收集、处理和导出指标、日志和跟踪的开源项目。 prometheus-client-golang:基于 Prometheus 的暴露指标的客户端库。 statsd-client-go:用于发送指标到 statsd 服务器的客户端库。 pprof:Go 内置用于剖析 CPU 和内存使用的包。

实战案例 本文来自zvvq

使用 opentelemetry-go 跟踪请求延迟

内容来自samhan

内容来自zvvq,别采集哟

copyright zvvq

copyright zvvq

本文来自zvvq

本文来自zvvq

copyright zvvq

内容来自zvvq,别采集哟

内容来自samhan666

内容来自zvvq,别采集哟

0

内容来自zvvq

内容来自samhan666

copyright zvvq

zvvq

copyright zvvq

内容来自samhan666

内容来自samhan666

内容来自samhan

copyright zvvq

zvvq好,好zvvq

zvvq好,好zvvq

本文来自zvvq

zvvq.cn

本文来自zvvq

内容来自samhan

copyright zvvq

zvvq

zvvq好,好zvvq

内容来自zvvq

copyright zvvq

0

内容来自samhan

copyright zvvq

import (

内容来自samhan

"context" 内容来自samhan

"fmt" 内容来自zvvq

"go.opentelemetry.io/otel/attribute" 内容来自zvvq,别采集哟

"go.opentelemetry.io/otel/metric" zvvq

"go.opentelemetry.io/otel/metric/instrument"

内容来自samhan

"go.opentelemetry.io/otel/trace"

zvvq好,好zvvq

)

zvvq好,好zvvq

func trackLatency(ctx context.Context, startTime time.Time) {

zvvq好,好zvvq

latency := time.Since(startTime) 内容来自samhan666

attrs := []attribute.KeyValue{

本文来自zvvq

attribute.String("method", "GET"), 内容来自samhan666

attribute.String("path", "/api/users"), zvvq好,好zvvq

}

内容来自samhan666

meter := metric.Must(metric.NewMeterProvider("example"))

内容来自zvvq,别采集哟

latencyMs := meter.MustNewFloatHistogram(

copyright zvvq

"http_request_latency",

zvvq好,好zvvq

metric.WithDescription("HTTP request latency"),

内容来自samhan

metric.WithUnit("ms"),

内容来自zvvq,别采集哟

metric.WithAsynchronous(),

zvvq.cn

)

本文来自zvvq

ctx, span := trace.Start(ctx, "my span")

内容来自zvvq

defer span.End()

copyright zvvq

_ = latencyMs.Record(ctx, latency.Milliseconds(), attrs...) copyright zvvq

} zvvq好,好zvvq

使用 prometheus-client-golang 暴露 CPU 使用率指标 zvvq.cn

copyright zvvq

内容来自samhan

内容来自samhan666

zvvq好,好zvvq

内容来自samhan

内容来自samhan

内容来自samhan

zvvq好,好zvvq

内容来自samhan

0

内容来自zvvq,别采集哟

内容来自zvvq,别采集哟

zvvq.cn

内容来自zvvq,别采集哟

内容来自zvvq

本文来自zvvq

copyright zvvq

内容来自zvvq

zvvq.cn

内容来自zvvq

内容来自samhan666

import (

zvvq好,好zvvq

"net/http" 内容来自zvvq,别采集哟

"<a style=color:f0; text-decoration:underline; href="https://www.zvvq.cn/zt/.html" target="_blank">git</a>hub.com/prometheus/client_golang/prometheus" zvvq

"github.com/prometheus/client_golang/prometheus/promhttp"

内容来自samhan

) 本文来自zvvq

var cpuUsage = prometheus.NewGauge( 内容来自samhan

prometheus.GaugeOpts{ 本文来自zvvq

Name: "cpu_usage", 本文来自zvvq

Help: "Current CPU usage",

内容来自zvvq,别采集哟

},

copyright zvvq

) 内容来自zvvq,别采集哟

func init() { zvvq好,好zvvq

prometheus.MustRegister(cpuUsage)

zvvq.cn

http.Handle("/metrics", promhttp.Handler())

本文来自zvvq

}

内容来自samhan666

// ... zvvq

使用 pprof 对 CPU 使用情况进行剖析

zvvq

zvvq

zvvq.cn

zvvq.cn

zvvq.cn

zvvq好,好zvvq

内容来自zvvq

本文来自zvvq

内容来自zvvq

zvvq好,好zvvq

0

copyright zvvq

内容来自samhan666

zvvq

zvvq好,好zvvq

内容来自zvvq,别采集哟

copyright zvvq

内容来自samhan666

copyright zvvq

本文来自zvvq

zvvq好,好zvvq

zvvq.cn

内容来自zvvq,别采集哟

内容来自zvvq

zvvq好,好zvvq

内容来自zvvq

本文来自zvvq

内容来自samhan

内容来自zvvq

zvvq

zvvq好,好zvvq

0 内容来自zvvq

内容来自samhan666

import (

内容来自samhan

"net/http/pprof"

内容来自samhan666

"os"

内容来自samhan

"github.com/google/pprof/profile" zvvq.cn

)

内容来自zvvq,别采集哟

func init() {

zvvq好,好zvvq

http.HandleFunc("/debug/pprof/heap", pprof.Index)

copyright zvvq

http.HandleFunc("/debug/pprof/goroutine", pprof.Index)

本文来自zvvq

http.HandleFunc("/debug/pprof/block", pprof.Index)

zvvq

}

内容来自samhan666

// ... copyright zvvq

func main() { 内容来自samhan

f, err := os.OpenFile("myprofile.pprof", os.O_CREATE|os.O_WRONLY, 0)

zvvq好,好zvvq

if err != nil { zvvq.cn

log.Fatal(err)

内容来自zvvq

}

内容来自zvvq,别采集哟

if err := pprof.WriteHeapProfile(f); err != nil { zvvq好,好zvvq

log.Fatal(err)

内容来自samhan

}

内容来自samhan666

if err := pprof.Lookup("goroutine").WriteTo(f, ); err != nil { zvvq好,好zvvq

log.Fatal(err) 内容来自samhan

}

zvvq.cn

if err := pprof.Lookup("block").WriteTo(f, ); err != nil { 内容来自samhan

log.Fatal(err) 内容来自zvvq,别采集哟

} 内容来自zvvq

}

zvvq

以上就是golang中有哪些强大的性能监控框架?的详细内容,更多请关注ZVVQ技术分享网其它相关文章! 内容来自zvvq,别采集哟