-
-
Notifications
You must be signed in to change notification settings - Fork 157
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: add POC for measuring adoption (#859)
Co-authored-by: Pedro Ramos <[email protected]>
- Loading branch information
Showing
16 changed files
with
59,922 additions
and
11,361 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,7 @@ | ||
#!/usr/bin/env node | ||
|
||
process.env.NODE_ENV = 'development'; | ||
|
||
const oclif = require('@oclif/core'); | ||
|
||
oclif.run() | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
#!/usr/bin/env node | ||
|
||
// Only the binary installed through NPM is considered production environment. See "bin" in package.json. | ||
process.env.NODE_ENV = 'production'; | ||
|
||
const oclif = require('@oclif/core'); | ||
|
||
oclif.run() | ||
.then(require('@oclif/core/flush')) | ||
.catch((err) => { | ||
const oclifHandler = require('@oclif/core/handle'); | ||
return oclifHandler(err.message); | ||
}); | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
@echo off | ||
|
||
node "%~dp0\run_bin" %* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
# Metrics collection guideline | ||
|
||
AsyncAPI **anonymously** tracks command executions to improve the specification and tools, ensuring no sensitive data reaches our servers. It aids in comprehending how AsyncAPI tools are used and adopted, facilitating ongoing improvements to our specifications and tools. | ||
|
||
Even though metrics collection is enabled by default, you can always [disable tracking](#how-to-disable-tracking) if you want to. | ||
|
||
## What we collect | ||
We are collecting the following metrics: | ||
|
||
- `asyncapi_adoption.action.invoked`: | ||
With this metric we are tracking the command executed on the CLI as soon as the command is invoked, so it has already been executed but not finished yet. We just want to know which commands are used, regardless they have failed or succeeded. | ||
|
||
Example of the data collected by this metric when the `validate` command has been executed: | ||
``` | ||
asyncapi_adoption.action.invoked COUNTER { action: 'validate' } 1 | ||
``` | ||
|
||
- `asyncapi_adoption.action.finished`: | ||
This metric tracks the command executed once it has already finished, carrying the result of the execution and some metadata based on the AsyncAPI document in place. | ||
|
||
Example for `validate` command successfully executed and finished: | ||
``` | ||
asyncapi_adoption.action.finished COUNTER { | ||
validation_result: 'valid', | ||
success: true, | ||
asyncapi_version: '2.6.0', | ||
asyncapi_servers: 2, | ||
asyncapi_channels: 4, | ||
asyncapi_messages: 3, | ||
asyncapi_operations_send: 3, | ||
asyncapi_operations_receive: 1, | ||
asyncapi_schemas: 52, | ||
action: 'validate' | ||
} 1 | ||
``` | ||
|
||
## Where the data is stored | ||
We are making use of [New Relic API](https://docs.newrelic.com/docs/apis/intro-apis/introduction-new-relic-apis/#rest-api) to send the metrics collected to _New Relic_ servers, where they are stored, and finally visualized on the AsyncAPI website. | ||
|
||
Metrics won't be collected in CI environments, or when the "CI" env variable is set up to "true". | ||
|
||
## How to disable tracking | ||
To disable tracking, please run the following command: | ||
`asyncapi config analytics --disable` | ||
|
||
Once disabled, if you want to enable tracking back again then run: | ||
`asyncapi config analytics --enable` | ||
|
||
Remember that keeping this tracking enabled will help AsyncAPI community to provide better specifications and tools in the future. |
Oops, something went wrong.