Jadual Kandungan
Kandungan soalan
Penyelesaian
Rumah pembangunan bahagian belakang Golang Bagaimana untuk menolak metrik ke Opentelemetry menggunakan go-sdk

Bagaimana untuk menolak metrik ke Opentelemetry menggunakan go-sdk

Feb 08, 2024 pm 11:42 PM
aliran semula

如何使用 go-sdk 将指标推送到 Opentelemetry

editor 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))

}
Salin selepas log masuk

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

'Jalan Kereta Api Bintang Runtuh' ​​Mikhail Ke Mana Anda Pergi Panduan Pencapaian 'Jalan Kereta Api Bintang Runtuh' ​​Mikhail Ke Mana Anda Pergi Panduan Pencapaian May 09, 2024 pm 09:20 PM

'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? Bagaimana untuk menyelesaikan had trafik Douyin? Apakah yang perlu saya lakukan jika trafik terhad supaya ia boleh dikembalikan? Mar 22, 2024 am 09:00 AM

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 Is Ace Racing Post-Holiday Syndrome: Pemandu berpengalaman sebenar sudah mula bersedia untuk Pesta Tanglung Feb 21, 2024 pm 06:04 PM

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 memohon peti mel sandaran QQ dengan peti mel QQ? Cara memohon peti mel sandaran QQ dengan peti mel QQ Mar 05, 2024 am 09:30 AM

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 Bagaimana untuk memulihkan token mudah alih Steam yang hilang? Panduan Rayuan Steam Mar 14, 2024 pm 10:07 PM

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

Dogelon Mars价格预测2024-2030 Dogelon Mars价格预测2024-2030 Mar 22, 2024 pm 03:33 PM

Dogelon Mars价格预测2024-2030

Beribu-ribu orang berbaris untuk beta terakhir 'Taris World'. Beribu-ribu orang berbaris untuk beta terakhir 'Taris World'. Mar 21, 2024 pm 02:50 PM

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

Fantasi New Liaozhai, apakah yang mereka harapkan untuk mendapatkan semula keyakinan pemain lama? Fantasi New Liaozhai, apakah yang mereka harapkan untuk mendapatkan semula keyakinan pemain lama? Mar 15, 2024 pm 08:55 PM

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

See all articles