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

Elasticsearch metrics integration #81

Closed
steven-sheehy opened this issue Aug 22, 2019 · 2 comments · Fixed by #753
Closed

Elasticsearch metrics integration #81

steven-sheehy opened this issue Aug 22, 2019 · 2 comments · Fixed by #753
Labels
enhancement Type: New feature monitor Area: Monitoring and dashboard P2
Milestone

Comments

@steven-sheehy
Copy link
Member

steven-sheehy commented Aug 22, 2019

DevOps team uses Elasticsearch and Kibana to store and visualize metrics and logs. Currently the main node generates a CSV file with metrics which is scraped by Filebeat and stored in Elastic. On mirror node, we can do better by using Micrometer and its Elastic integration to push to Elastic on an interval. Micrometer also gives us a lot of built-in metrics by default (JVM, file, memory, logging, JMX, etc.) and we can add our custom ones on top.

@steven-sheehy
Copy link
Member Author

steven-sheehy commented Sep 9, 2019

Custom Metrics:

Download Rate

  • Description: The duration in seconds it took to download the file from S3
  • Name: hedera.mirror.download.request
  • Tags: realm=0, shard=0, node=3, method=GET,status=200, action=(list|signature|signed), type=(balance|event|record)
  • Type: Timer
  • Unit: ms

Download Size

  • Description: The size of the file in bytes that was downloaded from S3
  • Name: hedera.mirror.download.response
  • Tags: realm=0, shard=0, node=3, status=200, action=(list|signature|signed), type=(balance|event|record)
  • Type: Distribution Summary
  • Unit: bytes

Signature Validation

  • Description: The number of signatures verified from a particular node
  • Name: hedera.mirror.signature.verification
  • Tags: realm=0, shard=0, node=3, status=(DOWNLOADED|PARSED|VERIFIED|CONSENSUS_REACHED), type=(balance|event|record)
  • Type: Counter

Stream Verification

  • Description: The duration in seconds it took to verify consensus and hash chain of a stream file
  • Name: hedera.mirror.stream.verification
  • Tags: success=(true|false), type=(balance|event|record)
  • Type: Timer
  • Unit: ms

File Parse Rate

  • Description: The duration in ms it took to parse the file and store it in the database
  • Name: hedera.mirror.parse.duration
  • Tags: success=(true|false), type=(balance|event|record), version=(v1|v2)
  • Type: Timer
  • Unit: ms

Balance Insert Rate

  • Description: The amount of time it took to process an account balance
  • Name: hedera.mirror.balance.duration
  • Tags: success=(true|false)
  • Type: Timer
  • Unit: ms

Event Insert Rate

  • Description: The amount of time it took to process an event
  • Name: hedera.mirror.event.duration
  • Tags: success=(true|false), version=(v1|v2)
  • Type: Timer
  • Unit: ms

Event Latency

  • Description: The difference in ms between the time the event was created and the mirror node processed the event
  • Name: hedera.mirror.event.latency
  • Tags: version=(v1|v2)
  • Type: Timer
  • Unit: ms

Event Size

  • Description: The size of the event in bytes
  • Name: hedera.mirror.event.size
  • Tags: ``
  • Type: Distribution Summary
  • Unit: bytes

Transaction Latency

  • Description: The difference in ms between the time consensus was achieved and the mirror node processed the transaction
  • Name: hedera.mirror.transaction.latency
  • Tags: type=(cryptotransfer|...)
  • Type: Timer
  • Unit: ms

Transaction Size

  • Description: The size of the transaction in bytes
  • Name: hedera.mirror.transaction.size
  • Tags: type=(cryptotransfer|...)
  • Type: Distribution Summary
  • Unit: bytes

Transaction Consensus Time

  • Description: The amount of time it took to achieve consensus by mainnet
  • Name: hedera.transaction.duration
  • Tags: type=(cryptotransfer|...)
  • Type: Timer
  • Unit: ms

Note: Overall latency can't be calculated without events since it should be record.consensusTimestamp - submitEvent.timestamp

@mike-burrage-hedera mike-burrage-hedera added this to the mirror-node 0.3 milestone Sep 17, 2019
@steven-sheehy steven-sheehy self-assigned this Sep 20, 2019
@steven-sheehy steven-sheehy modified the milestones: 0.3.0, 0.4.0 Oct 16, 2019
@steven-sheehy steven-sheehy added the monitor Area: Monitoring and dashboard label Nov 14, 2019
@steven-sheehy steven-sheehy removed this from the 0.4.0 milestone Nov 19, 2019
@steven-sheehy steven-sheehy mentioned this issue Jan 7, 2020
2 tasks
@steven-sheehy steven-sheehy added this to the Mirror 0.12.0 milestone May 14, 2020
@steven-sheehy steven-sheehy linked a pull request May 14, 2020 that will close this issue
2 tasks
@steven-sheehy
Copy link
Member Author

Fixed by #753. Remaining tasks covered by #759

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Type: New feature monitor Area: Monitoring and dashboard P2
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants