5.9.2. 지표 도우미
Operator SDK를 사용하여 생성한 Go 기반 Operator에서 다음 함수는 실행 중인 프로그램에 대한 일반 지표를 표시합니다.
func ExposeMetricsPort(ctx context.Context, port int32) (*v1.Service, error)
이러한 지표는 controller-runtime
라이브러리 API에서 상속됩니다. 기본적으로 지표는 0.0.0.0:8383/metrics
에서 제공됩니다.
표시된 지표 포트를 사용하여 Service
오브젝트가 생성되고 Prometheus에서 액세스할 수 있습니다. 리더 Pod의 root
소유자가 삭제되면 Service
오브젝트가 가비지 수집됩니다.
다음 예제는 Operator SDK를 사용하여 생성한 모든 Operator의 cmd/manager/main.go
파일에 있습니다.
import( "github.com/operator-framework/operator-sdk/pkg/metrics" "machine.openshift.io/controller-runtime/pkg/manager" ) var ( // Change the below variables to serve metrics on a different host or port. metricsHost = "0.0.0.0" 1 metricsPort int32 = 8383 2 ) ... func main() { ... // Pass metrics address to controller-runtime manager mgr, err := manager.New(cfg, manager.Options{ Namespace: namespace, MetricsBindAddress: fmt.Sprintf("%s:%d", metricsHost, metricsPort), }) ... // Create Service object to expose the metrics port. _, err = metrics.ExposeMetricsPort(ctx, metricsPort) if err != nil { // handle error log.Info(err.Error()) } ... }
5.9.2.1. 지표 포트 수정
Operator 작성자는 지표가 표시되는 포트를 수정할 수 있습니다.
사전 요구 사항
- Operator SDK를 사용하여 Go 기반 Operator가 생성됨
- Kubernetes 기반 클러스터에 Prometheus Operator가 배포됨
프로세스
생성된 Operator의
cmd/manager/main.go
파일에서 다음 줄에 있는metricsPort
값을 변경합니다.var metricsPort int32 = 8383