Skip to content
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

[Uptime] Uptime to APM integration #34892

Merged
merged 27 commits into from
May 1, 2019

Conversation

justinkambic
Copy link
Contributor

@justinkambic justinkambic commented Apr 10, 2019

Summary

Add APM integration. The intended result of these changes is to allow users to quickly and efficiently navigate from Uptime to APM, with a pre-filtered list of services based on the domain of a selected service/host they're monitoring in both solutions.

Example: Jennifer is monitoring her company's production site home page and notices several blips in its sparkline on the Uptime monitor list. She clicks the APM integration button and is navigated to the APM app, where she can view internal app performance and determine if there are actionable problems related to the 404s she noticed.

WIP.

Testing

Prereq's

To test these changes, we will need to do some configuration. The prerequisites to testing this feature is to have:

  1. A running APM server
  2. A service that is transmitting monitoring data to your APM server
  3. A heartbeat instance monitoring your service from step 2.
  4. Configure an APM index pattern
  • Go to Management -> Index Patterns and configure an apm-* pattern

A few options for configuring APM/your service:

  • when I'm testing locally I use a node process I've configured to use APM's node agent.
  • There's also the APM integration testing repo, which you can configure locally.
  • Eden: you can correspond with the APM team to see if you can use EDEN with a local Kibana instance running these changes.

Testing functionality

After you've configured your APM server/service, configure Heartbeat to monitor the same service. Then load the Uptime UI and attempt to follow the integration link:

apmintegration1

image

  • APM should be filtered by the same date range as your Uptime page, and the url.domain field should correspond to the domain that Heartbeat has supplied.

Visual review

After conferring with the design team I've decided that it's better to implement these integrations as Actions Column items using the API provided by EuiBasicTable.

The primary thing we are adding here is a popover to our Monitors list component.

We have an icon button to expose the popover:

Today we are just adding an integration for APM. We will be adding additional integrations to this popover targeting 7.1. The expanded popover looks like:

Checklist

Use strikethroughs to remove checklist items you don't feel are applicable to this PR.

For maintainers

@justinkambic justinkambic added WIP Work in progress enhancement New value added to drive a business result v8.0.0 Team:Uptime - DEPRECATED Synthetics & RUM sub-team of Application Observability v7.2.0 labels Apr 10, 2019
@elasticmachine
Copy link
Contributor

Pinging @elastic/uptime

@elasticmachine
Copy link
Contributor

💔 Build Failed

@justinkambic justinkambic force-pushed the uptime_apm-integration branch from 5e5c4bc to b9c94ac Compare April 12, 2019 19:01
@elasticmachine
Copy link
Contributor

💔 Build Failed

@justinkambic justinkambic force-pushed the uptime_apm-integration branch from b9c94ac to 0e34a0f Compare April 16, 2019 14:16
@justinkambic justinkambic added review and removed enhancement New value added to drive a business result WIP Work in progress labels Apr 16, 2019
@justinkambic justinkambic marked this pull request as ready for review April 16, 2019 14:42
@elasticmachine
Copy link
Contributor

💔 Build Failed

@justinkambic justinkambic self-assigned this Apr 17, 2019
@justinkambic justinkambic requested a review from dov0211 April 17, 2019 15:29
@elasticmachine
Copy link
Contributor

💚 Build Succeeded

@elasticmachine
Copy link
Contributor

💔 Build Failed

@elasticmachine
Copy link
Contributor

💔 Build Failed

@elasticmachine
Copy link
Contributor

💔 Build Failed

}
)}
color="subdued"
iconType="boxesHorizontal"
Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe there's a better icon option now that we don't show other icons next to this. The boxes make sense as an ellipsis to other icons, but alone they are weird. See the SS below:

image

There is a popout icon, but that's not really right for a popover:

image

Maybe we could get some input from @elastic/eui-design or @elastic/kibana-design ?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@andrewvc I am fine with changing the icon. Would you be ok with me making a follow-up issue where we could discuss this in more detail so we don't hold up this PR any longer? There are other PRs downstream of this one that are blocked until some of this code gets merged.

Copy link
Contributor

Choose a reason for hiding this comment

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

Yes, I'm OK with that

@andrewvc
Copy link
Contributor

Code and functionality LGTM (WFG). Two follow-ups:

  1. Update Icon for popover
  2. Integrate with [Uptime] Check availability of integrated applications #35543

If this winds up being merged before those things are done, can you create issues for those two things @justinkambic ?

@justinkambic
Copy link
Contributor Author

jenkins test this

@justinkambic
Copy link
Contributor Author

If this winds up being merged before those things are done, can you create issues for those two things @justinkambic ?

Sure thing. The first one will almost definitely be an issue, the second one won't because I'm not planning to merge this before that PR.

@elasticmachine
Copy link
Contributor

💔 Build Failed

@elasticmachine
Copy link
Contributor

💚 Build Succeeded

@justinkambic justinkambic merged commit 5fdb23c into elastic:master May 1, 2019
justinkambic added a commit to justinkambic/kibana that referenced this pull request May 6, 2019
* Add integrations popover.

* Add some more functionality, code is WIP/mocked.

* Trying some things WIP.

* Import settings values from context.

* Remove obsolete comment.

* Add links.

* Rename component. Clean up placeholder text and add translations.

* Minor tweaks. Rename component file.

* Fix import for renamed file.

* Add domain to api query result fixtures.

* Change integration to utilize EuiTable's actions API.

* Add translation for new column heading.

* Update busted snapshot.

* Add snapshot test for new component.

* Refactor integration links to dedicated component.

* Remove obsolete index export.

* Update monitor list test snapshot.

* Default monitor list to empty array instead of undefined.

* Extract URL construction to helper function.

* Make entire link text clickable for APM integration.

* Update broken test snapshot.

* Fix type and update test snapshot.
justinkambic added a commit that referenced this pull request May 6, 2019
* Add integrations popover.

* Add some more functionality, code is WIP/mocked.

* Trying some things WIP.

* Import settings values from context.

* Remove obsolete comment.

* Add links.

* Rename component. Clean up placeholder text and add translations.

* Minor tweaks. Rename component file.

* Fix import for renamed file.

* Add domain to api query result fixtures.

* Change integration to utilize EuiTable's actions API.

* Add translation for new column heading.

* Update busted snapshot.

* Add snapshot test for new component.

* Refactor integration links to dedicated component.

* Remove obsolete index export.

* Update monitor list test snapshot.

* Default monitor list to empty array instead of undefined.

* Extract URL construction to helper function.

* Make entire link text clickable for APM integration.

* Update broken test snapshot.

* Fix type and update test snapshot.
@justinkambic
Copy link
Contributor Author

Backported to:
7.x/7.2.0 55cd59b
#35870

@justinkambic justinkambic deleted the uptime_apm-integration branch May 6, 2019 20:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
review Team:Uptime - DEPRECATED Synthetics & RUM sub-team of Application Observability v7.2.0 v8.0.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants