Best practice rules
With these methods, you can run best practice rules immediately, as well as view the historical results of running a specific best practice rule. Scheduling a best practice rule to run periodically can be done through the scheduling api Schedule management.
| Manage best practice rules | Method |
|---|---|
Get historical results for running rules. |
|
Get the latest results for all rules that have run. |
|
Run a best practice rule immediately. |
Manage best practice rules
- Best practice results
-
OpsCenter returns a JSON dictionary representing a single run of a best practice rule when querying for rule results.
A best practice result has the following form:
{ "alert-level": "ALERT_LEVEL", "category": "CATEGORY", "description": "DESCRIPTION", "display-name": "DISPLAY", "enabled_by_default": "ENABLED", "errors": { "cluster-error": "CLUSTER_ERROR", "node-errors": "NODE_ERRORS", "request-errors": "REQUEST_ERRORS" }, "importance": "IMPORTANCE", "name": "NAME", "recommendation": "RECOMMENDATION", "run_time": "RUN_TIME", "scope": "SCOPE", "status": "STATUS", "suggested_interval": "SUGGESTED_INTERVAL", "version": "VERSION" }The fields in the dictionary are as follows:
-
ALERT_LEVEL (string): The level used when creating an alert for the failed rule.
-
CATEGORY (string): The category the rule is in. Used by the OpsCenter UI.
-
DESCRIPTION (string): A detailed description of what the rule is checking.
-
DISPLAY (string): A UI-friendly name for the rule.
-
ENABLED (string): Whether the rule is enabled by default or not.
-
CLUSTER_ERROR (string): If the rule failed, and is run at the cluster scope, this describes the failure.
-
NODE_ERRORS (string): The list of individual nodes on which the rule failed to run.
-
REQUEST_ERRORS (string): The list of nodes on which the rule was unable to run.
-
IMPORTANCE (string): The importance of the rule passing. Can be high, medium, or low.
-
RECOMMENDATION (string): The suggested action to resolve the rule.
-
RUN_TIME (string): The time at which this run of the rule occurred.
-
SCOPE (string): The scope of the rule. Can be cluster, node, or cluster-and-node.
-
STATUS (string): Either
PassedorFailed. -
SUGGESTED_INTERVAL (string): The recommended default interval for rules that are enabled by default.
-
VERSION (string): The version of OpsCenter in which the rule was added.
-
GET /{cluster_id}/bestpractice/results
Get the historical results of running the specified rules.
curl http://127.0.0.1:8888/Test_Cluster/bestpractice/results?count=1&rules=check-simple-strategy
Accepts the following parameters:
- cluster_id
-
Path parameter. The ID of a cluster returned from GET /cluster-configs.
- rules
-
Query parameter. A comma-separated list of rules for which to fetch results.
- start
-
Optional query parameter. A Unix timestamp in seconds indicating the start of the window in which to retreive results. Defaults to the current time.
- end
-
Optional query parameter. A Unix timestamp in seconds indicating the end of the window in which to retrieve results.
- count
-
Optional query parameter. Number of results to return. Defaults to
100.
Returns a dictionary describing the rule results. Each key in the dictionary is the name of the rule and each value is an array of dictionaries describing the result. For example:
{
"check-simple-strategy": [
{
"alert-level": "alert",
"category": "Replication",
"description": "Checks that you are not using SimpleStrategy for any keyspaces in a multi-datacenter environment.",
"display-name": "SimpleStrategy keyspace usage found",
"enabled_by_default": true,
"errors": {},
"importance": "medium",
"name": "check-simple-strategy",
"recommendation": "Please update the replication strategies of the relevant keyspace(s) to use NetworkTopologyStrategy.",
"run_time": "2014-07-22 23:37:14.329808",
"scope": "cluster",
"status": "Passed",
"suggested_interval": "daily",
"version": "5.0.0"
}
]
}
GET /{cluster_id}/bestpractice/results/latest
Get the latest results for all rules that have run.
curl http://127.0.0.1:8888/Test_Cluster/bestpractice/results/latest
Accepts the following parameters:
- cluster_id
-
Path parameter. The ID of a cluster returned from GET /cluster-configs.
Returns a dictionary describing the rule results. Each key in the dictionary is the name of the rule and each value is a dictionary describing the latest run of the rule. For example:
{
"check-simple-strategy": {
"alert-level": "alert",
"category": "Replication",
"description": "Checks that you are not using SimpleStrategy for any keyspaces in a multi-datacenter environment.",
"display-name": "SimpleStrategy keyspace usage found",
"enabled_by_default": true,
"errors": {},
"importance": "medium",
"name": "check-simple-strategy",
"recommendation": "Please update the replication strategies of the relevant keyspace(s) to use NetworkTopologyStrategy.",
"run_time": "2014-07-22 23:41:50.727939",
"scope": "cluster",
"status": "Passed",
"suggested_interval": "daily",
"version": "5.0.0"
},
"check-simple-snitch": {
...
}
}
POST /{cluster_id}/bestpractice/run/{rule_name}
Run a specific best practice rule immediately.
curl -X POST http://127.0.0.1:8888/Test_Cluster/bestpractice/run/check-simple-strategy
Accepts the following parameters:
- cluster_id
-
Path parameter. The ID of a cluster returned from GET /cluster-configs.
- rule_name
-
Path parameter. The name of the rule to run.
Returns a dictionary describing the result of running the rule. For example:
{
"alert-level": "alert",
"category": "Replication",
"description": "Checks that you are not using SimpleStrategy for any keyspaces in a multi-datacenter environment.",
"display-name": "SimpleStrategy keyspace usage found",
"enabled_by_default": true,
"errors": {},
"importance": "medium",
"name": "check-simple-strategy",
"recommendation": "Please update the replication strategies of the relevant keyspace(s) to use NetworkTopologyStrategy.",
"run_time": "2014-07-22 23:44:22.179740",
"scope": "cluster",
"status": "Passed",
"suggested_interval": "daily",
"version": "5.0.0"
}