{"repo":"piotrkowalczuk/promgrpc","free":true,"listed":false,"github":"https://github.com/piotrkowalczuk/promgrpc","clone":"git clone https://github.com/piotrkowalczuk/promgrpc.git","description":"Prometheus instrumentation library for gRPC powered Go applications.","language":"Go","stars":56,"topics":["prometheus","grpc","golang","monitoring","library","metrics","observability","instrumentation"],"license":"MIT","category":"analytics","readme_excerpt":"promgrpc Package promgrpc is an instrumentation package that allows capturing metrics of your gRPC based services, both the server and the client side. The main goal of version 4 was to make it modular without sacrificing the simplicity of use. It is still possible to integrate the package in just a few lines. However, if necessary, metrics can be added, removed or modified freely. Design The package does not introduce any new concepts to an already complicated environment. Instead, it focuses on providing implementations of interfaces exported by gRPC and Prometheus libraries. It causes no side effects nor has global state. Instead, it comes with handy one-liners to reduce integration overhead. The package achieved high modularity by using Inversion of Control. We can define three layers of abstraction, where each is configurable or if necessary replaceable. Collectors Collectors serve one purpose, storing metrics. These are types well-known from Prometheus ecosystem, like counters, gauges, histograms or summaries. This package comes with a set of predefined functions that create a specific instances for each use case. For example: StatsHandlers Level higher consist of stats handlers. This layer is responsible for metrics collection. It is aware of a collector and knows how to use it to record event occurrences. Each implementation satisfies stats.Handler and prometheus.Collector interface and knows how to monitor a single dimension, e.g. a total number of received/sent requ","default_branch":null,"files":null,"tree":[],"storefront":"/r/piotrkowalczuk","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/piotrkowalczuk/promgrpc/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}