kubernetes-sigs / apisnoop

⭕️Snooping on the Kubernetes OpenAPI communications
https://apisnoop.cncf.io
Apache License 2.0
88 stars 42 forks source link

Feature Request: Search bar to search e2e and see covered API endpoints into the graph #114

Closed mgdevstack closed 4 years ago

mgdevstack commented 5 years ago

Issue: At this moment I'm not able to see which APIs are covered by specific e2e or SIGDescribe. [Reverse lookup is possible to see, which specific API Group is covered by which many E2Es]

Feature Request: Provide an regex search bar in main page to lookup e2e/SIGDescribe/tags/Conformance and see api coverage into graph covered by search result.

Related Issues:

mgdevstack commented 5 years ago

Please provide a thought/concern if it appears to be a useful feature request.

zachmandeville commented 5 years ago

Hi, @mgdevstack ! This is a useful feature request, but I'd like to make sure I'm understanding it correctly.

The test tags for things like "Conformance" or "sig-instrumentation" are a part of the e2e suite, which means that in order to be able to filter by them, those endpoints would already need to be tested.

I would suggest this be split into two features:

The current version of apisnoop is already filtered to e2e only, but it's not indicated in the interface. The next version will show all useragents by default, with the ability to filter by e2e or other useragents.

When filtering on tags of e2e tests; would you be filtering to a single tag/regex or would you want to apply multiple filters?

In other words, what is the question you'd be asking of the data, and what insights would be hoping to see?

I want to make sure we understand your needs so they can be met by our implementation.

mgdevstack commented 5 years ago

I'm looking forward to seeing filter capability based on e2e-name, e2e-tags, api-resources.

When filtering on tags of e2e tests; would you be filtering to a single tag/regex or would you want to apply multiple filters?

Providing multiple filtrations would give better clarity to see coverage in the graph. Filtration can be done by -

  1. E2E name
  2. E2E Tags viz [Conformance], [NodeConformance], [SIG-*]...
  3. Resources/Kind: viz Pod, Service, ReplicaSet, PodDisruptionBudget, Ingress, CronJob, CustomResourceDefinition etc
  4. APIGroups: viz core, apps, policy, extensions, apiextensions.k8s.io, batch (This feature is currently available in the graph by clicking and zoom-level.

In other words, what is the question you'd be asking of the data, and what insights would be hoping to see?

In short, we should be able to gather only requested data i.e. by tag, e2e-name or api-resource. Query 1: [sig-apps] Expected: show all e2e list having this tag in their name. This would highlight "app" group in graph and would show which endpoints are covered (tested + untested) by which resources from app group. Query 2: Select resource like CronJob to get coverage by resource. Expected: Show coverage of e2e varifying CronJob resource. This would appear like zoomed-level highlighted data shown in the graph specific to CronJob and includes all tested non-tested endpoints. List all associated e2e.

Image: {Additional layer of APIVersion is added. Seperated Verbs from Resource} image

To achieve this we will be needing two search box. Search-Box-1: (to serve Query-1) regex based search box to filter e2e by e2e-name or e2e-tag. multiple search items can be provided seperated by ; e.g. [sig-apps], [sig-storage] Search-Box-2: (to serve Query-2) select different API-Resources.

Note: Search-Box-2 would be heavily used instead of Search-Box-1.

Why Search box is needed ? Selecting groups from graph is not feasible all the time as they are very crowded and have narrow borders.

hh commented 5 years ago
Given a regex based filtering on agent
Then we will display only HIT endpoints
mgdevstack commented 5 years ago

Based on offline call - (something like this) image

hh commented 5 years ago

We've incorporated the spirit of the requested data here via User-Agent+(un)tested/conformance filtering and sorting by kind.

We'll leave this open for a week and revisit. /cc @mgdevstack

zachmandeville commented 4 years ago

We've updated significantly how to use apisnoop as a test writer, where you can run sql queries , both pre-made and ad-hoc, against the current spec and its testing coverage by deploying apisnoop in your cluster along with our custom set of emac tools humacs. This allows one to search in a number of ways to find the endpoints you're looking for, which feels like a significant improvement to a searchbar on the web app. Because of this, we are closing this issue for right now. You can view an updated roadmap here: https://github.com/cncf/apisnoop/blob/master/org/roadmap.org