VictoriaMetrics/operator

Kubernetes operator for Victoria Metrics

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 32 minutes ago
Added to GitGenius on October 22nd, 2023
Created on May 9th, 2020
Open Issues & Pull Requests: 57 (+0)
Number of forks: 222
Total Stargazers: 583 (+0)
Total Subscribers: 15 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 16.8 hours
Mean response time: 48.0 days
90th percentile: 140.9 days
Tracked items: 497

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 85% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Work labelled "need more info" is answered fastest, typically in about 5 hours, while "enhancement" waits about 3 days. Only 8% of issues opened in the past year have been closed. Three people close 83% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 39
New in 7 days: 6
Closed in 7 days: 2
Avg open age: 196 days
Stale 30+ days: 20
Stale 90+ days: 17

Recent activity

Opened in 7 days: 6
Closed in 7 days: 2
Comments in 7 days: 13
Events in 7 days: 35

Top labels

  • enhancement (280)
  • bug (257)
  • question (138)
  • docs (22)
  • need more info (11)
  • vmdistributed (8)
  • good first issue (7)
  • TBD (6)

Detailed Description

The VictoriaMetrics operator is a Kubernetes operator written in Go that manages Victoria Metrics deployments and monitoring configurations within Kubernetes clusters. It simplifies the installation, configuration, and lifecycle management of VictoriaMetrics applications while enabling application developers to define and manage their own observability configurations through Kubernetes Custom Resource Definitions.

The operator provides two sets of CRD objects for defining monitoring configurations. It supports Prometheus-compatible CRDs including ServiceMonitor, PodMonitor, PrometheusRule, Probe, and ScrapeConfig, ensuring API compatibility with prometheus-operator. Additionally, it offers VictoriaMetrics-native CRDs such as VMServiceScrape for scraping metrics from service-backed pods, VMPodScrape for pod-level metric scraping, VMRule for alerting and recording rules, VMProbe for blackbox exporter probing configurations, and VMScrapeConfig for flexible scrape configurations using any supported service discovery options.

A key feature is the operator's integration with vmbackupmanager, Victoria Metrics' advanced backup tool. This enables automated backup capabilities for both VMSingle and VMCluster deployments, allowing administrators to implement backup automation directly through CRD configuration rather than manual processes.

The operator addresses two distinct user personas. For Kubernetes cluster administrators, it streamlines the deployment and management of VictoriaMetrics infrastructure while providing the ability to delegate monitoring configuration responsibilities to application teams. For application developers, it enables self-service observability management by allowing them to define metrics scraping and alerting rules alongside their application deployments, treating monitoring configuration as part of the application lifecycle rather than a separate infrastructure concern.

This indicates the operator is part of a broader ecosystem of Victoria Metrics tooling.

Configuration is managed through environment variables, allowing operators to set default options for component images, timeouts, and feature flags. The operator is tested against officially supported Kubernetes versions to ensure compatibility. Development requires kubebuilder v4, Go 1.23 or later, kubectl, and Docker, with the project supporting both unit tests and end-to-end tests on automatically configured Kind clusters. The operator is positioned as an alternative to Victoria Metrics' Helm charts, offering simplified management and advanced features for Kubernetes-native deployments.