Created
January 15, 2019 23:13
-
-
Save fieldju/ab2df3e62ea190108dc16fcbcc13f515 to your computer and use it in GitHub Desktop.
This file contains hidden or 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
{ | |
"name": "node-golden-signals-example", | |
"description": "Golden Signals for the Nike SignalFx Node Metrics Lib with Express middleware.", | |
"judge": { | |
"judgeConfigurations": {}, | |
"name": "NetflixACAJudge-v1.0" | |
}, | |
"metrics": [ | |
{ | |
"name": "95th Percentile Request Latency for /hello", | |
"query": { | |
"metricName": "requests.p95", | |
"queryPairs": [ | |
{ | |
"key": "uri", | |
"value": "/hello" | |
}, | |
{ | |
"key": "statusCode", | |
"value": "2*" | |
} | |
], | |
"aggregationMethod": "mean", | |
"serviceType": "signalfx", | |
"type": "signalfx" | |
}, | |
"analysisConfigurations": { | |
"canary": { | |
"direction": "increase", | |
"critical": false | |
} | |
}, | |
"groups": [ | |
"Latency" | |
], | |
"scopeName": "default" | |
}, | |
{ | |
"name": "95th Percentile Request Latency for /foo", | |
"query": { | |
"metricName": "requests.p95", | |
"queryPairs": [ | |
{ | |
"key": "uri", | |
"value": "/foo" | |
}, | |
{ | |
"key": "statusCode", | |
"value": "2*" | |
} | |
], | |
"aggregationMethod": "mean", | |
"serviceType": "signalfx", | |
"type": "signalfx" | |
}, | |
"analysisConfigurations": { | |
"canary": { | |
"direction": "increase", | |
"nanStrategy": "replace", | |
"critical": false | |
} | |
}, | |
"groups": [ | |
"Latency" | |
], | |
"scopeName": "default" | |
}, | |
{ | |
"name": "Successful request count", | |
"query": { | |
"metricName": "requests.count", | |
"queryPairs": [ | |
{ | |
"key": "statusCode", | |
"value": "2*" | |
} | |
], | |
"aggregationMethod": "sum", | |
"serviceType": "signalfx", | |
"type": "signalfx" | |
}, | |
"analysisConfigurations": { | |
"canary": { | |
"direction": "decrease", | |
"nanStrategy": "remove", | |
"critical": false | |
} | |
}, | |
"groups": [ | |
"Traffic" | |
], | |
"scopeName": "default" | |
}, | |
{ | |
"name": "Successful request count for /hello", | |
"query": { | |
"metricName": "requests.count", | |
"queryPairs": [ | |
{ | |
"key": "uri", | |
"value": "/hello" | |
}, | |
{ | |
"key": "statusCode", | |
"value": "2*" | |
} | |
], | |
"aggregationMethod": "sum", | |
"serviceType": "signalfx", | |
"type": "signalfx" | |
}, | |
"analysisConfigurations": { | |
"canary": { | |
"direction": "decrease", | |
"nanStrategy": "replace", | |
"mustHaveData": true | |
} | |
}, | |
"groups": [ | |
"Traffic" | |
], | |
"scopeName": "default" | |
}, | |
{ | |
"name": "Successful request count for /foo", | |
"query": { | |
"metricName": "requests.count", | |
"queryPairs": [ | |
{ | |
"key": "uri", | |
"value": "/foo" | |
}, | |
{ | |
"key": "statusCode", | |
"value": "2*" | |
} | |
], | |
"aggregationMethod": "sum", | |
"serviceType": "signalfx", | |
"type": "signalfx" | |
}, | |
"analysisConfigurations": { | |
"canary": { | |
"direction": "decrease", | |
"nanStrategy": "replace", | |
"critical": false | |
} | |
}, | |
"groups": [ | |
"Traffic" | |
], | |
"scopeName": "default" | |
}, | |
{ | |
"name": "Server Error count for /hello", | |
"query": { | |
"metricName": "requests.count", | |
"queryPairs": [ | |
{ | |
"key": "uri", | |
"value": "/hello" | |
}, | |
{ | |
"key": "statusCode", | |
"value": "5*" | |
} | |
], | |
"aggregationMethod": "sum", | |
"serviceType": "signalfx", | |
"type": "signalfx" | |
}, | |
"analysisConfigurations": { | |
"canary": { | |
"direction": "increase", | |
"nanStrategy": "replace", | |
"critical": false | |
} | |
}, | |
"groups": [ | |
"Errors", | |
"Traffic" | |
], | |
"scopeName": "default" | |
}, | |
{ | |
"name": "Request Error count for /hello", | |
"query": { | |
"metricName": "requests.count", | |
"queryPairs": [ | |
{ | |
"key": "uri", | |
"value": "/hello" | |
}, | |
{ | |
"key": "statusCode", | |
"value": "4*" | |
} | |
], | |
"aggregationMethod": "sum", | |
"serviceType": "signalfx", | |
"type": "signalfx" | |
}, | |
"analysisConfigurations": { | |
"canary": { | |
"direction": "increase", | |
"nanStrategy": "replace", | |
"critical": false | |
} | |
}, | |
"groups": [ | |
"Errors", | |
"Traffic" | |
], | |
"scopeName": "default" | |
}, | |
{ | |
"name": "Server Error count for /foo", | |
"query": { | |
"metricName": "requests.count", | |
"queryPairs": [ | |
{ | |
"key": "uri", | |
"value": "/foo" | |
}, | |
{ | |
"key": "statusCode", | |
"value": "5*" | |
} | |
], | |
"aggregationMethod": "sum", | |
"serviceType": "signalfx", | |
"type": "signalfx" | |
}, | |
"analysisConfigurations": { | |
"canary": { | |
"direction": "increase", | |
"nanStrategy": "replace", | |
"critical": false | |
} | |
}, | |
"groups": [ | |
"Errors", | |
"Traffic" | |
], | |
"scopeName": "default" | |
}, | |
{ | |
"name": "Request Error count for /foo", | |
"query": { | |
"metricName": "requests.count", | |
"queryPairs": [ | |
{ | |
"key": "uri", | |
"value": "/foo" | |
}, | |
{ | |
"key": "statusCode", | |
"value": "4*" | |
} | |
], | |
"aggregationMethod": "sum", | |
"serviceType": "signalfx", | |
"type": "signalfx" | |
}, | |
"analysisConfigurations": { | |
"canary": { | |
"direction": "increase", | |
"nanStrategy": "replace", | |
"critical": false | |
} | |
}, | |
"groups": [ | |
"Errors" | |
], | |
"scopeName": "default" | |
}, | |
{ | |
"name": "Available System Memory", | |
"query": { | |
"metricName": "node.os.freemem", | |
"aggregationMethod": "mean", | |
"serviceType": "signalfx", | |
"type": "signalfx" | |
}, | |
"analysisConfigurations": { | |
"canary": { | |
"direction": "decrease", | |
"nanStrategy": "remove", | |
"critical": false, | |
"effectSize": { | |
"allowedIncrease": 1.10, | |
"criticalIncrease": 25 | |
} | |
} | |
}, | |
"groups": [ | |
"Saturation" | |
], | |
"scopeName": "default" | |
}, | |
{ | |
"name": "OS 1m Load Average", | |
"query": { | |
"metricName": "node.os.loadavg.1m", | |
"aggregationMethod": "mean", | |
"serviceType": "signalfx", | |
"type": "signalfx" | |
}, | |
"analysisConfigurations": { | |
"canary": { | |
"direction": "increase", | |
"nanStrategy": "remove", | |
"critical": false, | |
"effectSize": { | |
"allowedIncrease": 1.50, | |
"criticalIncrease": 25 | |
} | |
} | |
}, | |
"groups": [ | |
"Saturation" | |
], | |
"scopeName": "default" | |
}, | |
{ | |
"name": "Node Heap Used", | |
"query": { | |
"metricName": "node.process.memory-usage.heap-used", | |
"aggregationMethod": "mean", | |
"serviceType": "signalfx", | |
"type": "signalfx" | |
}, | |
"analysisConfigurations": { | |
"canary": { | |
"direction": "increase", | |
"nanStrategy": "remove", | |
"critical": false, | |
"effectSize": { | |
"allowedIncrease": 1.10, | |
"criticalIncrease": 25 | |
} | |
} | |
}, | |
"groups": [ | |
"Saturation" | |
], | |
"scopeName": "default" | |
} | |
], | |
"classifier": { | |
"groupWeights": { | |
"Latency": 20, | |
"Traffic": 20, | |
"Errors": 50, | |
"Saturation": 10 | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment