Problem
This is a placeholder feature for metrics-related tasks that will be driven by the eventing-observability subgroup and scoped down to 0.9, 0.9+ releases.
Here are some initial tasks we identified:
[x] Infrastructure setup and scraping of metrics - Stackdriver
[ ] Data plane metrics
[ ] Graphana Dashboards
[ ] E2E tests for metrics
[ ] Documentation
Persona:
Which persona is this feature for?
Event consumer, Event producer, and Operator.
Exit Criteria
Users should be able to see metrics in the grafana/prometheus UI and stackdriver. Documentation should be available in knative.dev, indicating what metrics are defined and how to add new ones, as well as how to configure the metrics infrastructure. E2E tests should be in place as well.
Additional context (optional)
Some notes on the eventing-observability subgroup https://docs.google.com/document/d/178iKE5_qtnXQfYcXp-NeKWKguoM_GLKuz3E2w96F0gI/edit?usp=sharing
/assign @nachocano
/assign @sayanh
@nachocano: GitHub didn't allow me to assign the following users: sayanh.
Note that only knative members, repo collaborators and people who have commented on this issue/PR can be assigned. Additionally, issues/PRs can only have 10 assignees at the same time.
For more information please see the contributor guide
In response to this:
/assign @nachocano
/assign @sayanh
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.
fyi @sayanh
apparently we cannot have two persons assigned.
fyi @Harwayne
/milestone v0.9.0
The way we defined the metrics for Broker, could we define for Importers and add it to the data plane contract of the importer (@n3wscott @nachocano ) ?
The way we defined the metrics for Broker, could we define for Importers and add it to the data plane contract of the importer (@n3wscott @nachocano ) ?
I think we can do that.
Infrastructure setup and scraping of metrics (e.g., prometheus operator, or via configMaps, as with serving)
Working on a first prototype with configmaps. After discussion with @nachocano, few more concrete stuff came up:
- [ ] Create a common repo for dashboards ( as patching from serving is not ideal)
I think this one refers to something like have a common repo for cross-observability things. There is one called knative-observability, but not sure about the work being done there.
I think for 0.9 we'll have to patch, but we can start the discussions on what is the right approach.
Thanks for working on this @sayanh
The way we defined the metrics for Broker, could we define for Importers and add it to the data plane contract of the importer (@n3wscott @nachocano ) ?
I think we can do that.
Then lets add it to the list of tasks (checkboxes) and follow-up with @n3wscott to add to importer spec.
Current documentation: https://github.com/knative/eventing/blob/master/docs/metrics.md
I'm looking at Infrastructure setup and scraping of metrics - Stackdriver subtask
Other tasks that I'm looking at
Working on:
Data plane metrics -> Importers -> CronJobSource
Infrastructure setup -> Control plane -> NATSS Channel
Working on:
Infrastructure setup -> Control plane -> GitHubSource
Data plane metrics -> Importers -> GitHubSource
/project Observability In progress
/milestone v0.10.0
Working on:
Infrastructure setup -> Control plane -> NATSS Channel
Agreed with Sayan about it: https://github.com/knative/eventing/issues/1693#issuecomment-526759177.
Update
Working on:
Infrastructure setup -> Control plane -> GitHubSource
Data plane metrics -> Importers -> GitHubSource
@nachtmaar was wondering if you were able to finish these ones, or if there are things pending?
Working on:
Infrastructure setup -> Control plane -> GitHubSource
Data plane metrics -> Importers -> GitHubSource@nachtmaar was wondering if you were able to finish these ones, or if there are things pending?
Hey @nachocano. I am currently only working on Control Plane. Did not start with Data plane yet.
Here is a quick status update:
knative.dev/pkg/controller runtime.sigs.k8s.io/controller-runtimeknative.dev/pkg/controller runtimeTableTest which is a big rewrite too. Got the first two tests working.Working on:
Infrastructure setup -> Control plane -> GitHubSource
Data plane metrics -> Importers -> GitHubSource@nachtmaar was wondering if you were able to finish these ones, or if there are things pending?
Hey @nachocano. I am currently only working on
Control Plane. Did not start with Data plane yet.
Here is a quick status update:
- I already refactored GitHubSource to make use of
knative.dev/pkg/controllerruntime.- For that I had to refactor the whole Reconciler, it was still using
sigs.k8s.io/controller-runtime- Metrics are working now with
knative.dev/pkg/controllerruntime- Currently trying to port all reconciler test to use
TableTestwhich is a big rewrite too. Got the first two tests working.- Reconciler works after refactoring, but still having a few issues (emitting events e.g.). For that reason I started working on reconciler tests, which were not working anymore with controller refactoring
- Don't have a PR yet, but all my code is at https://github.com/nachtmaar/eventing-contrib/tree/pkg-controller-refactoring
Thanks @nachtmaar for the detailed update! Sounds great, thanks for taking care of this. And yeah, whenever you have the tests working, let's get the control plane part in, and then we can focus on data plane in another PR.
@yolocs is starting to work on Data Plane metrics for InMemoryChannel
This issue is stale because it has been open for 90 days with no
activity. It will automatically close after 30 more days of
inactivity. Reopen the issue with /reopen. Mark the issue as
fresh by adding the comment /remove-lifecycle stale.
Most helpful comment
Working on:
Infrastructure setup -> Control plane -> NATSS Channel
Agreed with Sayan about it: https://github.com/knative/eventing/issues/1693#issuecomment-526759177.
Update