Middleware metrics

Enable RPC metrics interceptor/middleware for server.


go get github.com/rookie-ninja/rk-boot
go get github.com/rookie-ninja/rk-gf

General options

These are general options to start a GoFrame server with rk-boot

name description type default value
gf.name The name of GoFrame server string N/A
gf.port The port of GoFrame server integer nil, server won’t start
gf.enabled Enable GoFrame entry bool false
gf.description Description of GoFrame entry. string ""

Metrics options

name description type default value
gf.interceptors.metricsProm.enabled Enable metrics interceptor boolean false


By default, metrics interceptor/middleware will record bellow metrics.

Metrics name Metrics type Description
elapsedNano Summary The time elapsed for RPC.
resCode Counter The counter of RPC with resCode.
errors Counter The counter of RPC with errors if occurs.

All of three metrics have the same labels as bellow:

Label name Description
entryName GoFrame entry name
entryType GoFrame entry type
realm OS environment variable: REALM, eg: rk
region OS environment variable: REGION, eg: beijing
az OS environment variable: AZ, eg: beijing-1
domain OS environment variable: DOMAIN, eg: prod
instance Hostname
appVersion Retrieved from AppInfoEntry
appName Retrieved from AppInfoEntry
restMethod Restful API method, eg: GET
restPath Restful API path, eg: /rk/v1/healthy
resCode Response code, eg: 200

Quick start

1.Create boot.yaml

  - name: greeter
    port: 8080
    enabled: true
      enabled : true         # Enable prometheus client in order to export metrics
      enabled: true          # Enable common service for testing
        enabled: true        # Enable metrics interceptor/middleware

2.Create main.go

package main

import (
	_ "github.com/rookie-ninja/rk-gf/boot"

// Application entrance.
func main() {
	// Create a new boot instance.
	boot := rkboot.NewBoot()

	// Bootstrap

	// Wait for shutdown sig


Send request

$ curl -X GET localhost:8080/rk/v1/healthy

Prometheus client:




Last modified December 12, 2021 : Update based on rk-boot@v1.4.0 (233e143)