Skip to content

Send strings once per Push call #1227

Open
@bboreham

Description

@bboreham

Each timeseries sent from distributor to ingester in a Push() call has a set of label-value pairs, which are strings that tend to repeat a lot because there will be a lot of metrics in the same "family".

Instead, we could send a table of strings then encode the label-value set as indexes into that table.

The benefits would be less garbage in the ingester and less network traffic, at the cost of extra work on send. Currently we turn on gRPC gzip compression to save network, so this idea might replace that and is probably cheaper.

If this is a good idea, we could do the same in Prometheus remote_write.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions