Skip to content

[AWS] [API Gateway] Split metrics dashboard by API type and filter documents visualized #7876

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

lucian-ioan
Copy link
Contributor

@lucian-ioan lucian-ioan commented Sep 19, 2023

Urgency

  • High

Activity Type

  • Bugfix

What does this PR do?

  1. Split the existing API Gateway metrics dashboard into 3 dashboards by API type.
  2. Add additional metric counters and navigation panels.
  3. Change visualization types to enhance clarity.
  4. Filter data so only documents with API Identifier and Stage dimensions are considered. This is necessary due to additional documents being fetched based on API settings (ex. Detailed Metrics) which will result in inaccurate metrics (ex. Count).
  5. Additional metric filters within the HTTP/WebSocket dashboards to prevent the redundant display of API IDs in both dashboards. (ApiId dimension is shared between HTTP and WebSocket)

Checklist

  • I have reviewed tips for building integrations and this pull request is aligned with them.
  • I have verified that all data streams collect metrics or logs.
  • I have added an entry to my package's changelog.yml file.
  • I have verified that Kibana version constraints are current according to guidelines.

Author's Checklist

  • Remove [Metrics AWS] API Gateway Overview dashboard.
  • Export all dashboards to 8.9
  • Check all data is 1:1 with CloudWatch metric groupings (By Stage - REST and ApiId, Stage - HTTP/WebSocket).

How to test this PR locally

Related issues

Screenshots

REST:
REST_dashboard_8 9 0

HTTP:
HTTP_dashboard_8 9 0

WebSocket:
WebSocket_dashboard_8 9 0

Example CloudWatch:
CloudWatch_REST_count

Example REST:
Dashboard_REST_screenshot

@lucian-ioan lucian-ioan added enhancement New feature or request Integration:aws AWS bugfix Pull request that fixes a bug issue labels Sep 19, 2023
@lucian-ioan lucian-ioan self-assigned this Sep 19, 2023
@elasticmachine
Copy link

elasticmachine commented Sep 19, 2023

💚 Build Succeeded

the below badges are clickable and redirect to their specific view in the CI or DOCS
Pipeline View Test View Changes Artifacts preview preview

Expand to view the summary

Build stats

  • Start Time: 2023-09-27T00:44:57.880+0000

  • Duration: 54 min 14 sec

Test stats 🧪

Test Results
Failed 0
Passed 211
Skipped 3
Total 214

🤖 GitHub comments

Expand to view the GitHub comments

To re-run your PR in the CI, just comment with:

  • /test : Re-trigger the build.

@elasticmachine
Copy link

elasticmachine commented Sep 19, 2023

🌐 Coverage report

Name Metrics % (covered/total) Diff
Packages 100.0% (17/17) 💚
Files 94.444% (17/18) 👎 -5.556
Classes 94.444% (17/18) 👎 -5.556
Methods 85.953% (257/299) 👎 -6.639
Lines 86.024% (7509/8729) 👎 -1.654
Conditionals 100.0% (0/0) 💚

@lucian-ioan lucian-ioan marked this pull request as ready for review September 19, 2023 21:31
@lucian-ioan lucian-ioan requested review from a team as code owners September 19, 2023 21:31
Copy link
Contributor

@kaiyan-sheng kaiyan-sheng left a comment

Choose a reason for hiding this comment

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

Overall it looks good to me. Not sure if users will like the separated dashboards for different kinds of API gateway. But we can always adjust later if we get feedback.
Can we add a screenshot (not sure if multiple screenshots is allowed) into documentation please? Thanks!

Copy link
Contributor

@zmoog zmoog left a comment

Choose a reason for hiding this comment

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

LGTM.

I believe separating the single dashboard into multiple ones per type is fair. I don't have data to back this up, but in my experience as an application developer, I usually check one API at a time;.

Copy link
Contributor

@drewdaemon drewdaemon left a comment

Choose a reason for hiding this comment

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

This better follows dashboard best practices. And, when the links panel arrives, this will be an excellent use case for it.

With the new links panel, navigation between the views is much more performant. The dashboard app itself doesn't have to reload when a link is clicked, minimizing the work it takes to show another API type.

With the links panel, filters and query are also preserved across navigation events.

@lucian-ioan lucian-ioan merged commit dbebc8b into elastic:main Sep 27, 2023
@elasticmachine
Copy link

Package aws - 2.4.0 containing this change is available at https://epr.elastic.co/search?package=aws

@zmoog
Copy link
Contributor

zmoog commented Sep 27, 2023

This better follows dashboard best practices.

@drewdaemon, what's your recommended reading list to know more about dashboard best practices?

@drewdaemon
Copy link
Contributor

drewdaemon commented Sep 27, 2023

@zmoog unfortunately fragmentation is a problem right now. My team created a document. Some designers created a document. Someone from Security solution created a document. Looks like someone from your team tried to collect ideas into a markdown file.

I agree with everything I saw in the markdown file, so you could start there. I can send you our team's document as well. But, basically, we probably need to do some unification.

The specific "best practice" I was referring to is just to keep dashboards a bit smaller to improve comprehensibility and performance. Markdown panels for navigation work okay, but aren't perfect. I think the new links panel will make following this practice easier.

@lucian-ioan lucian-ioan deleted the split_apigateway_metrics_dashboard branch February 6, 2024 14:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bugfix Pull request that fixes a bug issue enhancement New feature or request Integration:aws AWS
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Metrics dashboard approach for AWS API Gateway when Detailed Metrics is enabled
5 participants