Skip to content

Evaluate the option to export metrics in istio language so we can use Kiali for visualization #22

Open
@eranra

Description

@eranra

Hey @eran Raichstein, I just thought about a cool hack that could probably be done with flows2metrics : if you setup a pipeline exporting prometheus metrics that looks like istio metrics (and I think it is possible), you could have a topology view "for free" in Kiali 😀
9 replies
New

Joel Takvorian 7 hours ago
just need to simulate istio TCP metrics

Eran Raichstein 3 hours ago
@jotak do you have an example/dump of such metrics handy ?

Joel Takvorian 2 hours ago
i don't have a dump right now but it should be something like:
istio_tcp_received_bytes_total{reporter="source",source_workload="my-source-deployment",source_workload_namespace="my-source-ns",source_app="some-app-label-1",source_version="v1",destination_workload="my-dest-deployment",destination_workload_namespace="my-dest-ns",destination_app="some-app-label-2",destination_version="v1",request_protocol="tcp",response_flags="-"} 123456
see also: https://istio.io/latest/docs/reference/config/metrics/#metrics
IstioIstio
Istio Standard Metrics
Istio standard metrics exported by Istio telemetry.

Joel Takvorian 2 hours ago
There are a couple of other labels, I'm not quite sure if they are expected by Kiali or not; such as destination_service, destination_service_name , destination_service_namespace , source_canonical_service, destination_canonical_service, source_canonical_revision, destination_canonical_revision.

Joel Takvorian 2 hours ago
and there's its "tween" metric istio_tcp_sent_bytes_total (ie. sent instead of received, they tend to duplicate the same data, for most part of it)

Joel Takvorian 2 hours ago
the reporter labels is roughly similar to FlowDirection : ingress => destination, egress => source

Joel Takvorian 2 hours ago
x_app and x_version labels are taken from the k8s metadata on the pod: app label and version label

Joel Takvorian 2 hours ago
I don't know if you lookup for the pods owner in flow2metrics , this is something we do in goflow-kube, it allows to have this "workload" information: https://github.com/netobserv/goflow2-kube-enricher/blob/main/pkg/reader/reader.go#L122-L140
If we end up merging our goflow-kube with flow2metrics, this is likely something we'll want to keep

Eran Raichstein < 1 minute ago
ok ... I will take a look ... no doubt that if we can piggyback on something done by Kiali it can be a good idea.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions