


Bagaimana untuk menolak metrik ke Opentelemetry menggunakan go-sdk
Feb 08, 2024 pm 11:42 PMeditor php Xigua akan memperkenalkan anda cara menggunakan go-sdk untuk menolak penunjuk ke Opentelemetry. Opentelemetry ialah rangka kerja pemerhatian sumber terbuka yang membantu pembangun mengumpul dan menganalisis data metrik aplikasi. Menggunakan go-sdk, anda boleh dengan mudah menolak metrik tersuai ke Opentelemetry dan memvisualisasikan serta memantaunya melalui papan pemuka. Artikel ini akan memberi anda pengenalan terperinci kepada proses pemasangan dan konfigurasi go-sdk, serta cara menulis kod untuk menolak data penunjuk ke Opentelemetry, dan memberikan beberapa contoh praktikal dan amalan terbaik. Sama ada anda seorang pemaju baru atau berpengalaman, anda boleh mendapatkan maklumat dan panduan berguna daripada artikel ini untuk membantu anda menggunakan go-sdk dengan lebih baik untuk menolak data penunjuk ke Opentelemetry.
Kandungan soalan
Saya cuba menggunakan go-sdk untuk menolak metrik kepada opentelemetri tetapi saya tidak menemui sebarang dokumentasi mengenainya. Setakat ini saya cuba menggunakan kod ini tetapi tidak tahu apa langkah seterusnya, sejujurnya saya agak keliru dengan pembekal dan pembaca, saya baru memantau
func main() { ctx := context.Background() res, err := resource.New(ctx, resource.WithAttributes(semconv.ServiceName("my-service"))) if err != nil { panic(err) } ctx, cancel := context.WithTimeout(ctx, time.Second) defer cancel() conn, err := grpc.DialContext(ctx, "localhost:4317", grpc.WithTransportCredentials(insecure.NewCredentials()), grpc.WithBlock()) if err != nil { panic(err) } metricExporter, err := otlpmetricgrpc.New(ctx, otlpmetricgrpc.WithGRPCConn(conn)) if err != nil { panic(err) } exporter, err := prometheus.New() if err != nil { panic(err) } provider := metric.NewMeterProvider(metric.WithReader(exporter)) meter := provider.Meter("github.com/open-telemetry/opentelemetry-go/example/prometheus") counter, err := meter.Float64Counter("foo", instrument.WithDescription("a simple counter")) if err != nil { panic(err) } counter.Add(ctx, 5) reader := metric.NewPeriodicReader(metricExporter, metric.WithInterval(1*time.Second)) }
Maklumat sumber yang saya ada setakat ini adalah daripada contoh di sini dan contoh di sini
Penyelesaian
Pertama sekali, perlu diperhatikan bahawa API dan SDK penunjuk OTel Go dianggap tidak stabil pada masa ini. Saya akan cuba memfokuskan jawapan saya pada item peringkat lebih tinggi yang disertakan dalam spesifikasi metrik OpenTelemetry yang stabil supaya ia tidak menjadi usang. Mana-mana kandungan go-spesific di bawah adalah tertakluk kepada perubahan.
Nampaknya anda cuba menyediakan dua jenis pengeksport yang berbeza. Pengeksport Prometheus dikikis oleh Prometheus, dan pengeksport otelmetricgrpc
mencipta sambungan untuk menolak metrik melalui OTLP ke singki seperti OpenTelemetry Collector. Anda mungkin hanya memerlukan satu atau yang lain, bukan kedua-duanya. Contoh pertama yang anda pautkan adalah benar-benar hanya untuk penjejakan, bukan metrik, tetapi prinsipnya adalah lebih kurang sama.
Titik masuk untuk sebarang metrik dalam OpenTelemetry SDK ialah meter 提供商
。仪表提供程序处理与度量相关的配置、聚合和数据导出。这也是用户获取 meters
. Setiap modul kod biasanya mempunyai instrumentasi sendiri. Buat berdasarkan metrik tolok dan log titik data berdasarkan metrik tersebut. Semua titik penunjuk diagregatkan dan dialirkan kembali melalui pembekal pemeteran.
Untuk membaca metrik daripada pembekal meter, anda memerlukan sejenis metric reader
. Jika anda cuba menolak metrik menggunakan protokol seperti OTLP, anda boleh menggunakan alat seperti Pembaca Metrik Eksport Berkala, yang secara berkala mengumpul metrik daripada pembekal pemeteran dan mengeksportnya menggunakan pengeksport.
Jika anda cuba menggunakan sistem metrik berasaskan tarikan (seperti Prometheus), pengeksport bertindak seperti pembaca metrik dan membaca metrik setiap kali sistem metrik meminta titik akhir rangkakan. Inilah yang dilakukan dalam contoh kedua yang anda pautkan. serveMetrics
函数打开侦听端口 2223 并处理对 localhost:2223/metrics
的请求的 Web 服务器。每次 GET
Setiap kali permintaan masuk ke titik akhir ini, metrik diagregatkan mengikut konfigurasi pembekal instrumentasi dan dikembalikan dalam badan respons. Ini membolehkan sistem seperti Prometheus meminta metrik daripada aplikasi anda secara berkala.
Atas ialah kandungan terperinci Bagaimana untuk menolak metrik ke Opentelemetry menggunakan go-sdk. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

'Jalan Kereta Api Bintang Runtuh' Mikhail Ke Mana Anda Pergi Panduan Pencapaian

Bagaimana untuk menyelesaikan had trafik Douyin? Apakah yang perlu saya lakukan jika trafik terhad supaya ia boleh dikembalikan?

Is Ace Racing Post-Holiday Syndrome: Pemandu berpengalaman sebenar sudah mula bersedia untuk Pesta Tanglung

Bagaimana untuk memohon peti mel sandaran QQ dengan peti mel QQ? Cara memohon peti mel sandaran QQ dengan peti mel QQ

Bagaimana untuk memulihkan token mudah alih Steam yang hilang? Panduan Rayuan Steam

Beribu-ribu orang berbaris untuk beta terakhir 'Taris World'.

Fantasi New Liaozhai, apakah yang mereka harapkan untuk mendapatkan semula keyakinan pemain lama?
