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

[WIP] [Monitoring] APM UI specifics #22508

Conversation

chrisronline
Copy link
Contributor

@chrisronline chrisronline commented Aug 29, 2018

Continuation of #22453
Depends on elastic/elasticsearch#33286

This PR introduces a monitoring UI for monitoring APM.

TODO

Testing

See this comment for how to get the apm environment running with this PR.

Metrics

Here is a list of what we are the visuals in place. They will most likely appear on both the instance and overview page.

Total Events

The difference between the min and max of beats_stats.metrics.libbeat.pipeline.events.total

Bytes Sent

The difference between the min and max of beats_stats.metrics.libbeat.output.write.bytes

Servers

The number of unique uuids we have (or, the number of different apm server instances)

Last Event

The timestamp of the last monitoring document where beats_stats.metrics.libbeat.output.events.acked > 0

CPU Utilization graph

Based off:

  • beats_stats.metrics.beat.cpu.total.value

System Load graph

Based off:

  • beats_stats.metrics.system.load.1
  • beats_stats.metrics.system.load.5
  • beats_stats.metrics.system.load.15

Memory (MB) graph

Based off:

  • beats_stats.metrics.beat.memstats.gc_next
  • beats_stats.metrics.beat.memstats.memory_total
  • beats_stats.metrics.beat.memstats.memory_alloc
  • beats_stats.metrics.beat.memstats.rss

Requests (/m) graph

Based off:

  • beats_stats.metrics.apm-server.server.request.count

Incoming Requests Size (KB) graph

Based off:

  • beats_stats.metrics.apm-server.decoder.deflate.content-length
  • beats_stats.metrics.apm-server.decoder.gzip.content-length
  • beats_stats.metrics.apm-server.decoder.uncompressed.content-length.

Transformations (/m) graph

Based off:

  • beats_stats.metrics.apm-server.processor.transaction.transformations
  • beats_stats.metrics.apm-server.processor.span.transformations
  • beats_stats.metrics.apm-server.processor.error.transformations
  • beats_stats.metrics.apm-server.processor.metric.transformations

Output Events Rate (/m) graph

Based off:

  • beats_stats.metrics.libbeat.output.events.total
  • beats_stats.metrics.libbeat.output.events.active
  • beats_stats.metrics.libbeat.output.events.acked

We should expect to see the Total and Acked as nearly equivalent lines.

Output Failed Events Rate (/m) graph

Based off:

  • beats_stats.metrics.libbeat.output.events.failed,
  • beats_stats.metrics.libbeat.output.events.dropped

Response Count (/m) graph

Based off:

  • beats_stats.metrics.apm-server.server.response.valid.*

Response Errors (/m) graph

Based off:

  • beats_stats.metrics.apm-server.server.response.errors.*

chrisronline and others added 30 commits August 2, 2018 14:50
…ing messages (elastic#22243)

* Update buildHierarchicalData test.
* Rebuild modulePath correctly if on Windows

* Change how we find dashboard add panel is loaded

* Add and use find.byClassName instead of remote

* cleanup a comment
elastic#22124)

translate tutorials(osquery_logs, php_fpm_metrics, postgresql_logs, postgresql_metrics, prometheus_metrics, rabbitmq_metrics, redis_logs)
elastic#22122)

translate tutorials(kafka_logs, kafka_metrics, kibana_metrics, kubernetes_metrics, logstash_logs, logstash_metrics, memcached_metrics)
elastic#22121)

translate tutorials(elasticsearch_metrics, etcd_metrics, golang_metrics, haprozy_metrics, iis_logs)
Upgrades EUI from 3.6.1 => 3.7.0
@chrisronline
Copy link
Contributor Author

@graphaelli Definitely missed that. Should be updated now

@graphaelli
Copy link
Member

Thanks @chrisronline. Something is a bit off with the instance view - looks like there is no padding between the graphs (instance view on left, overview on right):

image

@elasticmachine
Copy link
Contributor

💔 Build Failed

@chrisronline
Copy link
Contributor Author

@graphaelli

That's actually consistent with beats, but I can add the padding into the instance page to make it look better

screen shot 2018-09-10 at 5 05 05 pm

screen shot 2018-09-10 at 5 05 12 pm

@elasticmachine
Copy link
Contributor

💔 Build Failed

@graphaelli
Copy link
Member

Awesome! I think that looks much better. Perhaps beats wants to consider applying the same update. /cc @ruflin

Spencer and others added 18 commits September 11, 2018 08:38
…stic#22814)

This PR addresses parts of elastic#22642:
- It gets rid of the use of var that = this;.
- dragSelect's action strings are moved to a constants file.
- Adds jest tests for the ExplorerSwimlane component.

This also fixes the following bugs:
- The way we subscribe listeners to the events of the dragSelect library could result in the same event being triggered multiple times. This in turn could cause race conditions when on each event new data gets fetched but in between angular's scope gets updated and could end up in a non-intended way. The result of this were view-by swimlanes not updating correctly or anomaly charts showing non-related charts. This PR fixes it by filtering out consecutive swimlane click events.
- When the angular based chart container wrapper directive gets destroyed/re-esetup when using the job pick, it missed unmounting the react component, it didn't trigger componentWillUnmount()and didn't unsubscribe from dragSelectListener.
…ic#22379)

Allows Kibana users to configure the max_concurrent_shard_requests param used by Kibana when sending _msearch requests. Exposes the config as an advanced setting. By default we won't send the param at all, relying on the ES default instead.
…lastic#22904)

The `deepFreeze()` function used by `core.injectedMetadata` uses a recursive type definition to indicate that all of the child types within the passed argument become readonly, which works fine for objects but represents arrays as objects instead of using the `ReadonlyArray<>` type. 

This PR fixes the type definition to use a `RecursiveReadonlyArray<>` type that properly represents arrays with their methods like `push()`, and iterates into the array properly to propagate `ReadOnly<>`, as proven by the tests.
* conditionalize Monitoring tests for Cloud testing

* make security_page/login wait

* revert these files from another PR

* revert these files from another PR
…#21505)

* Default to chromium and add deprecation warning for phantom.

* use int, not float
* migrate reporting top nav to sharing menu

* pass share extensions to visualize share menu

* start creating the reporting panel component

* add buttons

* generate report generatation URL

* require save if url changes

* add print layout UI

* putting it all together - generate reports from share context menu

* ensure copy button fills entire menu width

* inject job params functionallity

* refactor print layout out of ReportingContentPanel

* CSV report generation

* disable report generation when app is dirty

* update URL when window is resized

* remove all the old stuff

* clean up CSV report register provider

* fix typescript errors

* fix functional retests

* remove failure_debug folder

* close popover when generate button clicked, more work on functional tests

* set size on button and text, do not use EuiFormRow

* use ReactElement type

* move ShareContextMenuExtensionsRegistryProvider to ui/share and create interfaces for registy

* strictor typing, do not use hard coded object type name

* move registry files to typescript

* remove destructuring in the interface

* convert createReportingJob to async function, remove unneeded comment
- The aim of this is to more clearly visualize how the timerange of the cell selected in the swimlane relates to the time span shown in the charts.
- The most important change is that the vertical date axis ticks no longer are randomly positioned by d3. Instead they are aligned with the cell interval of the swimlane. This way, the date information shown in the swimlane tooltip will always align with the date tick shown left of the emphasized area in the chart.
- The highlighted area now features a gray rounded border to resemble the styling of the selected cell in the swimlane.
- The chart also fixes where to long chart headers would wrap the "View" link to a new line.
- The x/y axis labels blackness has been reduced to reduce emphasis on the labels.
@elasticmachine
Copy link
Contributor

💔 Build Failed

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

Successfully merging this pull request may close these issues.