πŸ‹οΈβ€β™€οΈ Shape It!
Sign In

Bets

Ideas you're committed to implement during this cycle.

Attention

This cycle has already finished.Go to the current cycle.

Figuring things outMaking it happenMetrics readinessTech stack decision - Tremor or NewRelic WidgetsMetric dashboard Implementation

History

Khuda Dad Nomani
Updated progress of
Metric dashboard Implementation
to 100% ✨ on Fri Mar 29 2024

the metrics website is live. https://asyncapi-metrics-dashboard.vercel.app/dashboard/DeveloperExperience/1W

Khuda Dad Nomani
Updated progress of
Metric dashboard Implementation
to 90% onΒ Thu Mar 14 2024

PR is ready for review. https://github.com/Amzani/asyncapi-metrics-dashboard/pull/6

Khuda Dad Nomani
Updated progress of
Metric dashboard Implementation
to 30% onΒ Thu Mar 07 2024

Started collecting some test metrics in CLI to build the dashboard.

samz
Updated progress of
Metric dashboard Implementation
to 20% onΒ Thu Mar 07 2024

We have an initial UI for the dashboard @KhudaDad414 will continue the work on this

samz
Completed
Tech stack decision - Tremor or NewRelic Widgets
πŸŽ‰ on Thu Feb 15 2024
samz
Updated progress of
Tech stack decision - Tremor or NewRelic Widgets
to 100% ✨ on Thu Feb 15 2024

Decided to go for Tremor library instead of default NewRelic widgets:

  • We will have more flexibility on how to show and compute insights (e.g Time to First API design is impossible to show in NR dashboard https://github.com/Amzani/asyncapi-metrics-dashboard/issues/2#issuecomment-1946098809)
  • As a visitor, you need a NewRelic account to see NewRelic dashboards
  • Future opportunity to centralize all our Insights in one place

Rabbit holes:

  • To prevent being Rate Limited we can cache NR API Requests
samz
Updated progress of
Metrics readiness
to 100% ✨ on Thu Feb 15 2024
(edited)

System errors

SELECT sum(asyncapi_adoption.action.finished) as 'System errors'
FROM Metric
WHERE success = false

Validation errors

SELECT sum(asyncapi_adoption.action.finished) as 'Validation Errors'
FROM Metric
WHERE action = 'validate'
AND validation_result='invalid'

Time to fix a validation error

SELECT filter(latest(endTimestamp), WHERE action = 'validate' AND validation_result ='valid' AND source is not null AND success = true)/1000 - filter(latest(endTimestamp), WHERE action = 'validate' AND validation_result ='invalid' AND source is not null AND success = true)/1000 AS 'TS'
FROM Metric FACET source, user

Then compute averages, median...

samz
Updated progress of
Metrics readiness
to 25% onΒ Thu Feb 15 2024
(edited)

For Time to first API Design we expect to add two metadata in newRelic Metric table :

  • user -> UUID v4
  • source -> SHA1(FileName)

e.g

SELECT filter(latest(endTimestamp), WHERE action = 'generate:fromTemplate' AND source is not null AND success = true)/1000 - filter(latest(endTimestamp), WHERE action = 'new:file' AND source is not null AND success = true)/1000 AS 'TS'
FROM Metric FACET source, user

Then compute averages, median...

samz
Updated progress of
Metrics readiness
to 20% onΒ Thu Feb 15 2024
(edited)

SELECT count(1) doesn't work as expected.

SELECT sum(asyncapi_adoption.action.finished) as 'Asyncapi V3 adoption'
FROM Metric 
WHERE action = 'validate' 
AND  asyncapi_version = '3.0.0'
SELECT sum(asyncapi_adoption.action.finished) as 'Created AsyncAPI files'
FROM Metric 
WHERE action = 'new:file'

Dashboard: https://onenr.io/0Vwga07k8jJ

samz
Completed
Metrics readiness
πŸŽ‰ on Thu Feb 15 2024
samz
Updated progress of
Metrics readiness
to 15% onΒ Mon Feb 12 2024

We have Number of created AsyncAPI files and AsyncAPI 3.0x Adoption

In NewRelic

AsyncAPI 3.0x Adoption

SELECT count(1) FROM Metric WHERE metricName = 'asyncapi_adoption.action.finished' AND action = 'validate' AND  asyncapi_version = '3.0.0' SINCE last week

Number of created AsyncAPI files

SELECT count(1) FROM Metric WHERE metricName = 'asyncapi_adoption.action.finished' AND action = 'new' SINCE last week
samz
Updated progress of
Metrics readiness
to 10% onΒ Fri Feb 09 2024

Checking the metrics we collect