mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2026-06-08 11:23:53 +03:00
This commits adds storage part and cluster RPC methods for metrics metadata. Key concepts: * vmstorage persists metadata in-memory only. * vmstorage evicts metadata records older than 1 hour. * vmstorage stores only the last value of metadata for time series metric name. * vminsert opens an additional TCP connection to the vmstorage for metrics metadata write requests. * vmselect implements prometheus compatible HTTP API for reading metrics metadata This feature is available optional and must be enabled via flag - `-enableMetadata` provided to vminsert/vmsingle. Fixes github.com/VictoriaMetrics/VictoriaMetrics/issues/2974
31 lines
679 B
Go
31 lines
679 B
Go
package vminsertapi
|
|
|
|
import (
|
|
"github.com/VictoriaMetrics/VictoriaMetrics/lib/storage"
|
|
"github.com/VictoriaMetrics/VictoriaMetrics/lib/storage/metricsmetadata"
|
|
)
|
|
|
|
// RPCCall defines rpc call from vminsert to vmstorage
|
|
type RPCCall struct {
|
|
Name string
|
|
VersionedName string
|
|
}
|
|
|
|
var (
|
|
MetricRowsRpcCall = RPCCall{
|
|
Name: "metric_rows",
|
|
VersionedName: "writeRows_v1",
|
|
}
|
|
MetricMetadataRpcCall = RPCCall{
|
|
Name: "metricmetadata_rows",
|
|
VersionedName: "writeMetadata_v1",
|
|
}
|
|
)
|
|
|
|
// API must implement vminsert API.
|
|
type API interface {
|
|
WriteRows(rows []storage.MetricRow) error
|
|
WriteMetadata(mrs []metricsmetadata.Row) error
|
|
IsReadOnly() bool
|
|
}
|