[role="xpack"] [[usage-api]] == Usage API Provides usage information about the installed {xpack} features. [discrete] [[usage-api-request]] === {api-request-title} `GET /_xpack/usage` [discrete] [[usage-api-prereqs]] === {api-prereq-title} * If the {es} {security-features} are enabled, you must have the `monitor` or `manage` <> to use this API. [discrete] [[usage-api-desc]] === {api-description-title} This API provides information about which features are currently enabled and available under the current license and some usage statistics. [discrete] [[usage-api-query-parms]] === {api-query-parms-title} include::{es-ref-dir}/rest-api/common-parms.asciidoc[tag=master-timeout] [discrete] [[usage-api-example]] === {api-examples-title} [source,console] ------------------------------------------------------------ GET /_xpack/usage ------------------------------------------------------------ // TEST[s/usage/usage?filter_path=-watcher.execution.actions.index*\,-watcher.execution.actions.logging*,-watcher.execution.actions.email*,-esql.functions*/] // This response filter removes watcher logging results if they are included // to avoid errors in the CI builds. // Same for ES|QL functions, that is a long list and quickly evolving. [source,console-result] ------------------------------------------------------------ { "security" : { "available" : true, "enabled" : true, ... }, "monitoring" : { "available" : true, "enabled" : true, "collection_enabled" : false, "enabled_exporters" : { "local" : 1 } }, "watcher" : { "available" : true, "enabled" : true, "execution" : { "actions" : { "_all" : { "total" : 0, "total_time_in_ms" : 0 } } }, "watch" : { "input" : { "_all" : { "total" : 0, "active" : 0 } }, "trigger" : { "_all" : { "total" : 0, "active" : 0 } } }, "count" : { "total" : 0, "active" : 0 } }, "graph" : { "available" : true, "enabled" : true }, "ml" : { "available" : true, "enabled" : true, "jobs" : { "_all" : { "count" : 0, "detectors" : { ... }, "created_by" : { }, "model_size" : { ... }, "forecasts" : { "total" : 0, "forecasted_jobs" : 0 } } }, "datafeeds" : { "_all" : { "count" : 0 } }, "data_frame_analytics_jobs" : { "_all" : { "count" : 0 }, "analysis_counts": { }, "memory_usage": { "peak_usage_bytes": { "min": 0.0, "max": 0.0, "avg": 0.0, "total": 0.0 } } }, "inference" : { "ingest_processors" : { "_all" : { "num_docs_processed" : { "max" : 0, "sum" : 0, "min" : 0 }, "pipelines" : { "count" : 0 }, "num_failures" : { "max" : 0, "sum" : 0, "min" : 0 }, "time_ms" : { "max" : 0, "sum" : 0, "min" : 0 } } }, "trained_models" : { "_all" : { "count": 1 }, "count": { "total": 1, "prepackaged": 1, "other": 0 }, "model_size_bytes": { "min": 0.0, "max": 0.0, "avg": 0.0, "total": 0.0 }, "estimated_operations": { "min": 0.0, "max": 0.0, "avg": 0.0, "total": 0.0 } }, "deployments": { "count": 0, "inference_counts": { "total": 0.0, "min": 0.0, "avg": 0.0, "max": 0.0 }, "stats_by_model": [], "model_sizes_bytes": { "total": 0.0, "min": 0.0, "avg": 0.0, "max": 0.0 }, "time_ms": { "avg": 0.0 } } }, "node_count" : 1, "memory": { anomaly_detectors_memory_bytes: 0, data_frame_analytics_memory_bytes: 0, pytorch_inference_memory_bytes: 0, total_used_memory_bytes: 0 } }, "inference": { "available" : true, "enabled" : true, "models" : [{ "service": "elasticsearch", "task_type": "SPARSE_EMBEDDING", "count": 1 }, { "service": "elasticsearch", "task_type": "TEXT_EMBEDDING", "count": 1 }, ] }, "logstash" : { "available" : true, "enabled" : true }, "eql" : { "available" : true, "enabled" : true }, "esql" : { "available" : true, "enabled" : true, "features" : { "eval" : 0, "stats" : 0, "dissect": 0, "grok" : 0, "limit" : 0, "where" : 0, "sort" : 0, "drop" : 0, "show" : 0, "rename" : 0, "mv_expand" : 0, "keep" : 0, "enrich" : 0, "from" : 0, "row" : 0 }, "queries" : { "rest" : { "total" : 0, "failed" : 0 }, "kibana" : { "total" : 0, "failed" : 0 }, "_all" : { "total" : 0, "failed" : 0 } } }, "sql" : { "available" : true, "enabled" : true, "features" : { "having" : 0, "subselect" : 0, "limit" : 0, "orderby" : 0, "where" : 0, "join" : 0, "groupby" : 0, "command" : 0, "local" : 0 }, "queries" : { "rest" : { "total" : 0, "paging" : 0, "failed" : 0 }, "cli" : { "total" : 0, "paging" : 0, "failed" : 0 }, "canvas" : { "total" : 0, "paging" : 0, "failed" : 0 }, "odbc" : { "total" : 0, "paging" : 0, "failed" : 0 }, "jdbc" : { "total" : 0, "paging" : 0, "failed" : 0 }, "odbc32" : { "total" : 0, "paging" : 0, "failed" : 0 }, "odbc64" : { "total" : 0, "paging" : 0, "failed" : 0 }, "_all" : { "total" : 0, "paging" : 0, "failed" : 0 }, "translate" : { "count" : 0 } } }, "rollup" : { "available" : true, "enabled" : true, ... }, "ilm" : { "policy_count" : 3, "policy_stats" : [ ... ] }, "slm" : { "available" : true, "enabled" : true }, "ccr" : { "available" : true, "enabled" : true, "follower_indices_count" : 0, "auto_follow_patterns_count" : 0 }, "transform" : { "available" : true, "enabled" : true }, "voting_only" : { "available" : true, "enabled" : true }, "searchable_snapshots" : { "available" : true, "enabled" : true, "indices_count" : 0, "full_copy_indices_count" : 0, "shared_cache_indices_count" : 0 }, "frozen_indices" : { "available" : true, "enabled" : true, "indices_count" : 0 }, "spatial" : { "available" : true, "enabled" : true }, "analytics" : { "available" : true, "enabled" : true, "stats": { "boxplot_usage" : 0, "top_metrics_usage" : 0, "normalize_usage" : 0, "cumulative_cardinality_usage" : 0, "t_test_usage" : 0, "rate_usage" : 0, "string_stats_usage" : 0, "moving_percentiles_usage" : 0, "multi_terms_usage" : 0 } }, "data_streams" : { "available" : true, "enabled" : true, "data_streams" : 0, "indices_count" : 0 }, "data_lifecycle" : { "available": true, "enabled": true, "count": 0, "default_rollover_used": true, "data_retention": { "configured_data_streams": 0 }, "effective_retention": { "retained_data_streams": 0 }, "global_retention": { "default": { "defined": false }, "max": { "defined": false } } }, "data_tiers" : { "available" : true, "enabled" : true, "data_warm" : { "node_count" : 0, "index_count" : 0, "total_shard_count" : 0, "primary_shard_count" : 0, "doc_count" : 0, "total_size_bytes" : 0, "primary_size_bytes" : 0, "primary_shard_size_avg_bytes" : 0, "primary_shard_size_median_bytes" : 0, "primary_shard_size_mad_bytes" : 0 }, "data_frozen" : { "node_count" : 1, "index_count" : 0, "total_shard_count" : 0, "primary_shard_count" : 0, "doc_count" : 0, "total_size_bytes" : 0, "primary_size_bytes" : 0, "primary_shard_size_avg_bytes" : 0, "primary_shard_size_median_bytes" : 0, "primary_shard_size_mad_bytes" : 0 }, "data_cold" : { "node_count" : 0, "index_count" : 0, "total_shard_count" : 0, "primary_shard_count" : 0, "doc_count" : 0, "total_size_bytes" : 0, "primary_size_bytes" : 0, "primary_shard_size_avg_bytes" : 0, "primary_shard_size_median_bytes" : 0, "primary_shard_size_mad_bytes" : 0 }, "data_content" : { "node_count" : 0, "index_count" : 0, "total_shard_count" : 0, "primary_shard_count" : 0, "doc_count" : 0, "total_size_bytes" : 0, "primary_size_bytes" : 0, "primary_shard_size_avg_bytes" : 0, "primary_shard_size_median_bytes" : 0, "primary_shard_size_mad_bytes" : 0 }, "data_hot" : { "node_count" : 0, "index_count" : 0, "total_shard_count" : 0, "primary_shard_count" : 0, "doc_count" : 0, "total_size_bytes" : 0, "primary_size_bytes" : 0, "primary_shard_size_avg_bytes" : 0, "primary_shard_size_median_bytes" : 0, "primary_shard_size_mad_bytes" : 0 } }, "aggregate_metric" : { "available" : true, "enabled" : true }, "archive" : { "available" : true, "enabled" : true, "indices_count" : 0 }, "health_api" : { "available" : true, "enabled" : true, "invocations": { "total": 0 } }, "remote_clusters": { "size": 0, "mode": { "proxy": 0, "sniff": 0 }, "security": { "cert": 0, "api_key": 0 } }, "enterprise_search" : { "available": true, "enabled": true, "search_applications" : { "count": 0 }, "analytics_collections": { "count": 0 }, "query_rulesets": { "total_rule_count": 0, "total_count": 0, "min_rule_count": 0, "max_rule_count": 0 } }, "universal_profiling" : { "available" : true, "enabled" : true }, "logsdb": { "available": true, "enabled": false, "indices_count": 0, "indices_with_synthetic_source": 0 } } ------------------------------------------------------------ // TESTRESPONSE[s/"security" : \{[^\}]*\},/"security" : $body.$_path,/] // TESTRESPONSE[s/"rollup" : \{[^\}]*\},/"rollup" : $body.$_path,/] // TESTRESPONSE[s/"detectors" : \{[^\}]*\},/"detectors" : $body.$_path,/] // TESTRESPONSE[s/"model_size" : \{[^\}]*\},/"model_size" : $body.$_path,/] // TESTRESPONSE[s/"eql" : \{[^\}]*\},/"eql" : $body.$_path,/] // TESTRESPONSE[s/"policy_stats" : \[[^\]]*\]/"policy_stats" : $body.$_path/] // TESTRESPONSE[s/"slm" : \{[^\}]*\},/"slm" : $body.$_path,/] // TESTRESPONSE[s/"health_api" : \{[^\}]*\}\s*\}/"health_api" : $body.$_path/] // TESTRESPONSE[s/"data_streams" : \{[^\}]*\},/"data_streams" : $body.$_path,/] // TESTRESPONSE[s/ : true/ : $body.$_path/] // TESTRESPONSE[s/ : false/ : $body.$_path/] // TESTRESPONSE[s/ : (\-)?[0-9]+/ : $body.$_path/] // These replacements do a few things: // 1. Ignore the contents of the `policy_stats` object because we don't know all // of the policies that will be in it. And because we figure folks don't need // to see an exhaustive list anyway. // 2. Handling eql, which is disabled by default on release builds and enabled // everywhere else during the initial implementation phase until its release // 3. Ignore the contents of the `slm` object because it might contain policies // 4. Ignore the contents of the `health_api` object because we do not know if the api has been called or not // 5. All of the numbers and strings on the right hand side of *every* field in // the response are ignored. So we're really only asserting things about the // the shape of this response, not the values in it. // 6. Ignore the contents of data streams until the failure store is tech preview.