Skip to content

Documentation on the services created by the VMCluster object: Which ones to expose via ingress? How to find out the proper URLs? #1699

@kastl-ars

Description

@kastl-ars

Dear maintainers,

we started looking into VictoriaMetrics (finally! :-)) and are very impressed by the smoothness of the deployment and the documentation.

One thing which confuses me and where I think the documentation could benefit from more substance and examples is regarding Kubernetes services and ingress(es) and URLs.

Using VMSingle

When using the VMsingle storage, I found a URL somewhere that I can expose via the VMAuth ingress (or rather disable authentication while exposing it).

spec:
  selectAllByDefault: true
  unauthorizedUserAccessSpec:
    url_prefix:
      - http://<vmsingle-victoriametrics-single>:8428
  ingress:
    class_name: openshift-default
    host: victoriametrics.example.org

(I also figured out which remoteWrite URL I need to set in the VMAgent...)

This works, I can query prometheus metrics and can use this as a datasource in Grafana.
(The targets are not shown, as reported in #1697 but that is just a minor thing and not my topic in this issue)

Using VMCluster

When using VMCluster instead, I had to guess a lot until I figured out that there are two things that can be exposed and do similar things.

  • Using http://<vmagent-victoriametrics-agent>:8429 as `url_prefix I can expose the vmagent's GUI.
  • Using http://<vmselect-victoriametrics-cluster>:8481/select/0/vmui/ I can expose the vmui

But I have not found documentation on how to expose two services? Do I need two VMAuth objects with different hostnames and url_prefixes (in case I want to disable authentication)?

And the vmui one throws an error when clicking the Explore Prometheus metrics button:

SyntaxError: JSON.parse: unexpected non-whitespace character after JSON data at line 1 column 5 of the JSON data

This seems to come from an error in the vmselect pod:

cannot fetch metric names from vmstorage nodes: cannot search metric names on vmstorage vmstorage-victoriametrics-cluster-<redacted>:8401: cannot execute funcName="searchMetricNames_v3" on vmstorage "100.125.138.99:8401": error when searching for metricIDs: the number of matching timeseries exceeds 30000; either narrow down the search or increase -search.max* command-line flag values (the most likely limit is -search.maxUniqueTimeseries)

This is a little surprising, as there is next to no workload being scraped. And this worked out of the box without issues using the VMSingle storage (in the same cluster). Did I pick the right URLs (or did I put the wrong URL somewhere?

Also, there are some kubernetes services called ...-internal which I did not find documentation about.

It could really be that I just misread or did not find the proper parts of the documentation, so I would gladly accept a link to the proper docs...

Thanks in advance!

Kind Regards,
Johannes

Metadata

Metadata

Assignees

Labels

questionFurther information is requested

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions