Skip to content
This repository was archived by the owner on Dec 16, 2024. It is now read-only.

Add Istio Workload Dashboard #389

Merged
merged 7 commits into from
Aug 9, 2023
Merged

Conversation

david-martin
Copy link
Member

@david-martin david-martin commented Jul 31, 2023

Closes #307

Changes:

  • Move the grafana kustomize configuration alongside the kube-prometheus configuration to allow patching the grafana deployment with new dashboard configmaps
  • Add the Isito Workload Dashboard json
  • Enable scraping of MGC metrics (ServiceMonitor added via kustomize)
  • Add dev docs for how to add/update dashboards

TODO:

  • Validate the panels & expressions on the Istio Workload Dashboard behave as expected.
  • Document (in config/prometheus-for-federation ?) the steps for importing, updating and reloading a dashboard

Follow Up:

  • Consider a second (or more) dashboard that are tailored more at the Multi Cluster Gateway administrator persona - e.g. aggregation across gateway instances that isn't shown on the Istio workload dashboard, anything linked from Create an example Grafana dashboard that shows traffic data, leveraging Istio metrics #307 (comment) that would be good to show, any DNS or TLS metrics exposed from mgc that can be visualised (or if none available, suggest some that would be good for that persona), cert-manager metrics (could be an existing dashboard)

Use cases for an Multi Cluster Gateway administrator persona

Please add or suggest more in the comments

  • As a Multi Cluster Gateway administrator, I want to see how traffic going to my application across multiple clusters is being balanced (e.g. is weighting behaving as expected)
  • As a Multi Cluster Gateway administrator, I want to see where, geographically, traffic is coming from to my app deployed in multiple regions (e.g. is traffic using geo dns as expected)

Notes on importing an existing dashboard

Grafana > Import > Import via grafana.com > input the dashboard ID OR paste json > Load > change any dropdowns until data is shown

Notes on exporting a dashboard as json

  • Share symbol at top > Export > Export as json > save to a .json file in config/prometheus-for-federation
  • Update ./config/prometheus-for-federation/kustomization.yaml to add a new configMapGenerator for the new dashboard
  • Update ./config/prometheus-for-federation/grafana_deployment_patch.yaml to add the new configmap as a volume mount

Notes on reloading a dashboard after changing the json content

# re-build with kustomize, filter out the dashboard configmap & grafana deployment and apply changes
./bin/kustomize build config/prometheus-for-federation/ | docker run --rm -i ryane/kfilt -i kind=ConfigMap,name=<YOUR_DASHBOARD_CONFIG_MAP_NAME> -i kind=Deployment,name=grafana | kubectl apply -f -

# Kill the grafana pod to force a reload of the dashboard configmap from volume
kubectl -n monitoring delete $(kubectl -n monitoring get po -l app.kubernetes.io/component=grafana -o name)

/hold

@david-martin david-martin temporarily deployed to e2e-internal July 31, 2023 15:33 — with GitHub Actions Inactive
@david-martin david-martin changed the title Add Istio Workload Dashboard Add Dashboard(s) Jul 31, 2023
@david-martin david-martin temporarily deployed to e2e-internal August 1, 2023 08:49 — with GitHub Actions Inactive
@david-martin david-martin temporarily deployed to e2e-internal August 1, 2023 11:19 — with GitHub Actions Inactive
@david-martin
Copy link
Member Author

@eoinfennessy @Ygnas

Validate the panels & expressions on the Istio Workload Dashboard behave as expected.

I think we're good on this item, marked as done. The only open thing was about the tcp metrics, which is unfortunately expected behaviour at this time.

Document (in config/prometheus-for-federation ?) the steps for importing, updating and reloading a dashboard

I think this PR can merge after this docs piece is done.

Consider a second (or more) dashboard that...

This can be followed up outside this PR/issue, and will likely result in new issues being created based on feedback from the mail sent to kuadrant-dev with subject "Grafana Dashboards: Looking for some feedback and ideas"

I've removed it as a TODO item in the PR, for follow up instead.

@eoinfennessy eoinfennessy temporarily deployed to e2e-internal August 3, 2023 10:32 — with GitHub Actions Inactive
@Ygnas Ygnas force-pushed the traffic_dashboard branch from 01e9cb4 to 0317f99 Compare August 3, 2023 11:48
@Ygnas Ygnas temporarily deployed to e2e-internal August 3, 2023 11:48 — with GitHub Actions Inactive
@eoinfennessy eoinfennessy temporarily deployed to e2e-internal August 3, 2023 13:43 — with GitHub Actions Inactive
@david-martin david-martin temporarily deployed to e2e-internal August 3, 2023 14:23 — with GitHub Actions Inactive
@david-martin david-martin marked this pull request as ready for review August 3, 2023 14:23
@david-martin david-martin changed the title Add Dashboard(s) Add Istio Workload Dashboard Aug 3, 2023
@david-martin david-martin removed the request for review from jasonmadigan August 3, 2023 14:25
@Ygnas Ygnas temporarily deployed to e2e-internal August 8, 2023 11:03 — with GitHub Actions Inactive
@maleck13
Copy link
Contributor

maleck13 commented Aug 9, 2023

@Ygnas is this ready for a final review and merge?

@Ygnas Ygnas temporarily deployed to e2e-internal August 9, 2023 09:11 — with GitHub Actions Inactive
@Ygnas Ygnas force-pushed the traffic_dashboard branch from d01f215 to c69f39b Compare August 9, 2023 09:17
@Ygnas Ygnas temporarily deployed to e2e-internal August 9, 2023 09:17 — with GitHub Actions Inactive
@Ygnas Ygnas requested review from maleck13 and mikenairn August 9, 2023 09:29
Copy link
Contributor

@maleck13 maleck13 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

changes look good to me, I am having some connectivity issues locally so wasn't able to create request metrics, but I had tried before

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Aug 9, 2023

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: david-martin, maleck13

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:
  • OWNERS [david-martin,maleck13]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@maleck13
Copy link
Contributor

maleck13 commented Aug 9, 2023

/lgtm

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Create an example Grafana dashboard that shows traffic data, leveraging Istio metrics
6 participants