diff --git a/packages/ess_billing/changelog.yml b/packages/ess_billing/changelog.yml index ce4409f12a4..0892c1969db 100644 --- a/packages/ess_billing/changelog.yml +++ b/packages/ess_billing/changelog.yml @@ -1,4 +1,12 @@ # newer versions go on top +- version: "1.8.0" + changes: + - description: Fix serverless billing schema — remove null kind field, add deployment_name fallback for serverless projects. + type: bugfix + link: https://github.com/elastic/integrations/pull/99999 + - description: Add include_names query parameter to billing API requests to populate deployment names for serverless projects. + type: bugfix + link: https://github.com/elastic/integrations/pull/99999 - version: "1.7.0" changes: - description: Added deployment tags for ECH diff --git a/packages/ess_billing/data_stream/billing/_dev/test/pipeline/test-billing.json b/packages/ess_billing/data_stream/billing/_dev/test/pipeline/test-billing.json index 7951908035d..8f59233eb77 100644 --- a/packages/ess_billing/data_stream/billing/_dev/test/pipeline/test-billing.json +++ b/packages/ess_billing/data_stream/billing/_dev/test/pipeline/test-billing.json @@ -125,6 +125,69 @@ "forwarded", "billing" ] + }, + { + "@timestamp": "2025-08-20T14:08:02.405Z", + "agent": { + "ephemeral_id": "082a402e-e376-4e6a-8ae4-9fcd12471589", + "id": "e4875ac3-72d6-4ad5-87bc-1e0030128d0a", + "name": "elastic-agent-89987", + "type": "filebeat", + "version": "9.0.4" + }, + "data_stream": { + "dataset": "ess_billing.billing", + "namespace": "68465", + "type": "metrics" + }, + "ecs": { + "version": "8.0.0" + }, + "elastic_agent": { + "id": "e4875ac3-72d6-4ad5-87bc-1e0030128d0a", + "snapshot": false, + "version": "9.0.4" + }, + "ess": { + "billing": { + "deployment_id": "aaa111bbb222ccc333", + "deployment_name": "", + "deployment_type": "observability", + "display_quantity": { + "value": 0.025, + "formatted_value": "0.025 GBs", + "type": "default" + }, + "from": "2025-08-19T00:00:00Z", + "kind": null, + "name": "Observability Complete - Data Retention (AWS us-east-1)", + "organization_id": "1111", + "quantities": [], + "quantity": { + "value": 0.025, + "formatted_value": "0.025 GBs" + }, + "rate": { + "value": 0.04, + "formatted_value": "0.0400 per GB" + }, + "sku": "observability.observability-complete-retained_aws-us-east-1", + "to": "2025-08-20T00:00:00Z", + "total_ecu": 0.001, + "type": "Search AI Lake", + "unit": "GB" + } + }, + "event": { + "dataset": "ess_billing.billing" + }, + "input": { + "type": "cel" + }, + "tags": [ + "forwarded", + "billing" + ] } ] } diff --git a/packages/ess_billing/data_stream/billing/_dev/test/pipeline/test-billing.json-expected.json b/packages/ess_billing/data_stream/billing/_dev/test/pipeline/test-billing.json-expected.json index 5248a89ccb9..2a4e3bf7c04 100644 --- a/packages/ess_billing/data_stream/billing/_dev/test/pipeline/test-billing.json-expected.json +++ b/packages/ess_billing/data_stream/billing/_dev/test/pipeline/test-billing.json-expected.json @@ -166,6 +166,88 @@ "tags": [ "preserve_original_event" ] + }, + { + "@timestamp": "2025-08-19T00:00:00.000Z", + "agent": { + "ephemeral_id": "082a402e-e376-4e6a-8ae4-9fcd12471589", + "id": "e4875ac3-72d6-4ad5-87bc-1e0030128d0a", + "name": "elastic-agent-89987", + "type": "filebeat", + "version": "9.0.4" + }, + "cloud": { + "account": { + "id": "1111" + }, + "geo": { + "location": { + "lat": 39.9612, + "lon": -77.0369 + }, + "name": "aws-us-east-2" + }, + "instance": { + "id": "aaa111bbb222ccc333", + "name": "aaa111bbb222ccc333" + }, + "provider": "serverless", + "region": "aws-us-east-1", + "service": { + "type": "observability-complete-retained" + } + }, + "data_stream": { + "dataset": "ess_billing.billing", + "namespace": "68465", + "type": "metrics" + }, + "ecs": { + "version": "8.0.0" + }, + "elastic_agent": { + "id": "e4875ac3-72d6-4ad5-87bc-1e0030128d0a", + "snapshot": false, + "version": "9.0.4" + }, + "ess": { + "billing": { + "deployment_id": "aaa111bbb222ccc333", + "deployment_name": "aaa111bbb222ccc333", + "deployment_type": "observability", + "display_quantity": { + "formatted_value": "0.025 GBs", + "type": "default", + "value": 0.025 + }, + "from": "2025-08-19T00:00:00Z", + "name": "Observability Complete - Data Retention (AWS us-east-1)", + "organization_id": "1111", + "quantity": { + "formatted_value": "0.025 GBs", + "value": 0.025 + }, + "rate": { + "formatted_value": "0.0400 per GB", + "value": 0.04 + }, + "sku": "observability.observability-complete-retained_aws-us-east-1", + "to": "2025-08-20T00:00:00Z", + "total_ecu": 0.001, + "type": "Search AI Lake", + "unit": "GB" + } + }, + "event": { + "created": "2021-11-11T01:02:03.123456789Z", + "dataset": "ess_billing.billing" + }, + "input": { + "type": "cel" + }, + "tags": [ + "preserve_original_event" + ] } ] } diff --git a/packages/ess_billing/data_stream/billing/agent/stream/cel.yml.hbs b/packages/ess_billing/data_stream/billing/agent/stream/cel.yml.hbs index 3721db617a6..550e2116ddd 100644 --- a/packages/ess_billing/data_stream/billing/agent/stream/cel.yml.hbs +++ b/packages/ess_billing/data_stream/billing/agent/stream/cel.yml.hbs @@ -88,6 +88,7 @@ program: |- state.url + "?" + { "from": [req.from.format(time_layout.RFC3339)], "to": [req.to.format(time_layout.RFC3339)], + "include_names": ["true"], }.format_query() ).with( { "Header": { "Authorization": ["ApiKey " + state.api_key] } } @@ -167,6 +168,7 @@ program: |- state.url + "?" + { "from": [req.from.format(time_layout.RFC3339)], "to": [req.to.format(time_layout.RFC3339)], + "include_names": ["true"], }.format_query() ).with( { diff --git a/packages/ess_billing/data_stream/billing/elasticsearch/ingest_pipeline/default.yml b/packages/ess_billing/data_stream/billing/elasticsearch/ingest_pipeline/default.yml index 3d00f1d5d31..69f672e2d9b 100644 --- a/packages/ess_billing/data_stream/billing/elasticsearch/ingest_pipeline/default.yml +++ b/packages/ess_billing/data_stream/billing/elasticsearch/ingest_pipeline/default.yml @@ -25,6 +25,11 @@ processors: - remove: field: ess.billing.quantities ignore_missing: true + - remove: + field: ess.billing.kind + if: "ctx.ess?.billing?.kind == null" + ignore_missing: true + tag: remove_null_kind - set: field: event.created copy_from: '@timestamp' @@ -59,6 +64,11 @@ processors: # project names being empty in the billing API. to be removed when Names in billing api fixed field: cloud.instance.name copy_from: ess.billing.deployment_id + - set: + field: ess.billing.deployment_name + copy_from: ess.billing.deployment_id + if: "ctx.ess?.billing?.deployment_name != null && ctx.ess.billing.deployment_name == ''" + tag: fallback_deployment_name - set: field: cloud.instance.name copy_from: ess.billing.deployment_name diff --git a/packages/ess_billing/kibana/dashboard/ess_billing-billingdashboard.json b/packages/ess_billing/kibana/dashboard/ess_billing-billingdashboard.json index 6b7aa166790..bab6711b7ab 100644 --- a/packages/ess_billing/kibana/dashboard/ess_billing-billingdashboard.json +++ b/packages/ess_billing/kibana/dashboard/ess_billing-billingdashboard.json @@ -47,6 +47,24 @@ "order": 1, "type": "optionsListControl", "width": "medium" + }, + "847eb190-9f1e-43d3-b60e-11ed96fddbdb": { + "explicitInput": { + "dataViewId": "metrics-*", + "exclude": false, + "existsSelected": false, + "fieldName": "ess.billing.deployment_name", + "searchTechnique": "wildcard", + "selectedOptions": [], + "sort": { + "by": "_count", + "direction": "desc" + } + }, + "grow": false, + "order": 2, + "type": "optionsListControl", + "width": "medium" } }, "showApplySelections": false @@ -54,11 +72,11 @@ "description": "This dashboard gives you high-level insights in the metrics exposed by the ESS billing API.", "kibanaSavedObjectMeta": { "searchSourceJSON": { - "filter": [], "query": { "language": "kuery", "query": "" - } + }, + "filter": [] } }, "optionsJSON": { @@ -71,33 +89,31 @@ "panelsJSON": [ { "embeddableConfig": { - "attributes": { - "layout": "vertical", - "links": [ - { - "destinationRefName": "link_41ef1269-cf4b-479b-b6b1-e259df2f610e_dashboard", - "id": "41ef1269-cf4b-479b-b6b1-e259df2f610e", - "label": "Billing", - "order": 0, - "type": "dashboardLink" - }, - { - "destinationRefName": "link_94e5341a-801b-40fd-91d5-69d0da0b2a83_dashboard", - "id": "94e5341a-801b-40fd-91d5-69d0da0b2a83", - "label": "Credits", - "order": 1, - "type": "dashboardLink" - }, - { - "destination": "https://cloud.elastic.co", - "id": "c10197c7-0ff6-49ce-81a7-7e140c18d430", - "label": "☁️ Elastic Cloud", - "order": 2, - "type": "externalLink" - } - ] - }, - "enhancements": {} + "enhancements": {}, + "layout": "vertical", + "links": [ + { + "destinationRefName": "link_41ef1269-cf4b-479b-b6b1-e259df2f610e_dashboard", + "id": "41ef1269-cf4b-479b-b6b1-e259df2f610e", + "label": "Billing", + "order": 0, + "type": "dashboardLink" + }, + { + "destinationRefName": "link_94e5341a-801b-40fd-91d5-69d0da0b2a83_dashboard", + "id": "94e5341a-801b-40fd-91d5-69d0da0b2a83", + "label": "Credits", + "order": 1, + "type": "dashboardLink" + }, + { + "destination": "https://cloud.elastic.co", + "id": "c10197c7-0ff6-49ce-81a7-7e140c18d430", + "label": "\u2601\ufe0f Elastic Cloud", + "order": 2, + "type": "externalLink" + } + ] }, "gridData": { "h": 7, @@ -112,90 +128,78 @@ { "embeddableConfig": { "attributes": { - "references": [ - { - "id": "metrics-*", - "name": "indexpattern-datasource-layer-8c4e8172-eb9b-4d3b-822d-2cf041d9a9af", - "type": "index-pattern" - } - ], + "references": [], "state": { - "adHocDataViews": {}, + "adHocDataViews": { + "526a9afe6163dadf5ade822595b5568e52d3b7d4ff831b30e1b2031e42b6677e": { + "allowHidden": false, + "allowNoIndex": false, + "fieldFormats": {}, + "id": "526a9afe6163dadf5ade822595b5568e52d3b7d4ff831b30e1b2031e42b6677e", + "managed": false, + "name": "metrics-ess_billing.billing-*", + "runtimeFieldMap": {}, + "sourceFilters": [], + "timeFieldName": "@timestamp", + "title": "metrics-ess_billing.billing-*", + "type": "esql" + } + }, "datasourceStates": { - "formBased": { - "currentIndexPatternId": "metrics-*", + "textBased": { + "indexPatternRefs": [ + { + "id": "526a9afe6163dadf5ade822595b5568e52d3b7d4ff831b30e1b2031e42b6677e", + "timeField": "@timestamp", + "title": "metrics-ess_billing.billing-*" + } + ], "layers": { - "8c4e8172-eb9b-4d3b-822d-2cf041d9a9af": { - "columnOrder": [ - "0ea16e71-0cd4-4578-a0cc-8b5325fcd01b", - "0ea16e71-0cd4-4578-a0cc-8b5325fcd01bX0" - ], - "columns": { - "0ea16e71-0cd4-4578-a0cc-8b5325fcd01b": { + "1ff02993-1e4e-42c5-83bf-27ead7063ffa": { + "columns": [ + { + "columnId": "total_ECUs", "customLabel": true, - "dataType": "number", - "isBucketed": false, - "label": "Total cost for period (ECUs)", - "operationType": "formula", + "fieldName": "total_ECUs", + "inMetricDimension": true, + "label": "Total cost for period", + "meta": { + "esType": "double", + "type": "number" + }, "params": { "format": { "id": "number", "params": { - "compact": false, "decimals": 0, - "suffix": "" + "suffix": " ECUs" } - }, - "formula": "sum(ess.billing.total_ecu)", - "isFormulaBroken": false - }, - "references": [ - "0ea16e71-0cd4-4578-a0cc-8b5325fcd01bX0" - ], - "scale": "ratio" - }, - "0ea16e71-0cd4-4578-a0cc-8b5325fcd01bX0": { - "customLabel": true, - "dataType": "number", - "isBucketed": false, - "label": "Part of Total cost for period", - "operationType": "sum", - "params": { - "emptyAsNull": false - }, - "scale": "ratio", - "sourceField": "ess.billing.total_ecu" + } + } } + ], + "index": "526a9afe6163dadf5ade822595b5568e52d3b7d4ff831b30e1b2031e42b6677e", + "query": { + "esql": "FROM metrics-ess_billing.billing-*\n| STATS total_ECUs = SUM(ess.billing.total_ecu)" }, - "ignoreGlobalFilters": false, - "incompleteColumns": {}, - "indexPatternId": "metrics-*", - "sampling": 1 + "timeField": "@timestamp" } } - }, - "indexpattern": { - "layers": {} - }, - "textBased": { - "layers": {} } }, "filters": [], - "internalReferences": [], + "needsRefresh": false, "query": { - "language": "kuery", - "query": "data_stream.dataset :\"ess_billing.billing\" " + "esql": "FROM metrics-ess_billing.billing-*\n| STATS total_ECUs = SUM(ess.billing.total_ecu)" }, "visualization": { - "layerId": "8c4e8172-eb9b-4d3b-822d-2cf041d9a9af", + "layerId": "1ff02993-1e4e-42c5-83bf-27ead7063ffa", "layerType": "data", - "metricAccessor": "0ea16e71-0cd4-4578-a0cc-8b5325fcd01b", - "showBar": false + "metricAccessor": "total_ECUs" } }, - "title": "", - "type": "lens", + "title": "total_ECUs", + "version": 1, "visualizationType": "lnsMetric" }, "enhancements": { @@ -206,706 +210,576 @@ "filters": [], "hidePanelTitles": true, "query": { - "language": "kuery", - "query": "data_stream.dataset :\"ess_billing.billing\" " + "esql": "FROM metrics-ess_billing.billing-*\n| STATS total_ECUs = SUM(ess.billing.total_ecu)" }, "syncColors": false, "syncCursor": true, - "syncTooltips": false + "syncTooltips": false, + "title": "" }, "gridData": { "h": 7, - "i": "2c1d1abc-1103-4a7a-bae0-811bff2cbbd7", + "i": "734d1f7a-dd77-43bb-9201-5e619332b809", "w": 6, "x": 5, "y": 0 }, - "panelIndex": "2c1d1abc-1103-4a7a-bae0-811bff2cbbd7", - "title": "", + "panelIndex": "734d1f7a-dd77-43bb-9201-5e619332b809", "type": "lens" }, { "embeddableConfig": { "attributes": { - "references": [ - { - "id": "metrics-*", - "name": "indexpattern-datasource-layer-8c4e8172-eb9b-4d3b-822d-2cf041d9a9af", - "type": "index-pattern" - } - ], + "references": [], "state": { - "adHocDataViews": {}, + "adHocDataViews": { + "526a9afe6163dadf5ade822595b5568e52d3b7d4ff831b30e1b2031e42b6677e": { + "allowHidden": false, + "allowNoIndex": false, + "fieldFormats": {}, + "id": "526a9afe6163dadf5ade822595b5568e52d3b7d4ff831b30e1b2031e42b6677e", + "managed": false, + "name": "metrics-ess_billing.billing-*", + "runtimeFieldMap": {}, + "sourceFilters": [], + "timeFieldName": "@timestamp", + "title": "metrics-ess_billing.billing-*", + "type": "esql" + } + }, "datasourceStates": { - "formBased": { - "currentIndexPatternId": "metrics-*", + "textBased": { + "indexPatternRefs": [ + { + "id": "526a9afe6163dadf5ade822595b5568e52d3b7d4ff831b30e1b2031e42b6677e", + "timeField": "@timestamp", + "title": "metrics-ess_billing.billing-*" + } + ], "layers": { - "8c4e8172-eb9b-4d3b-822d-2cf041d9a9af": { - "columnOrder": [ - "0ea16e71-0cd4-4578-a0cc-8b5325fcd01b", - "0ea16e71-0cd4-4578-a0cc-8b5325fcd01bX0", - "0ea16e71-0cd4-4578-a0cc-8b5325fcd01bX1", - "0ea16e71-0cd4-4578-a0cc-8b5325fcd01bX2", - "0ea16e71-0cd4-4578-a0cc-8b5325fcd01bX3" - ], - "columns": { - "0ea16e71-0cd4-4578-a0cc-8b5325fcd01b": { + "f51922ed-26ad-4e0d-bc76-06e235ebf952": { + "columns": [ + { + "columnId": "recent_run_rate", "customLabel": true, - "dataType": "number", - "isBucketed": false, - "label": "Avg. run-rate (ECUs/day)", - "operationType": "formula", + "fieldName": "recent_run_rate", + "inMetricDimension": true, + "label": "Recent run rate", + "meta": { + "esType": "double", + "type": "number" + }, "params": { "format": { "id": "number", "params": { - "compact": false, "decimals": 0, - "suffix": "" + "suffix": " ECUs/d" } - }, - "formula": "sum(\n ess.billing.total_ecu,\n kql='@timestamp \u003e now-7d/d'\n) / (\n (\n max(@timestamp,\n kql='@timestamp \u003e now-7d/d')\n -\n min(@timestamp,\n kql='@timestamp \u003e now-7d/d')\n ) / (1000*3600*24) + 1\n)\n", - "isFormulaBroken": false - }, - "references": [ - "0ea16e71-0cd4-4578-a0cc-8b5325fcd01bX3" - ], - "scale": "ratio" - }, - "0ea16e71-0cd4-4578-a0cc-8b5325fcd01bX0": { - "customLabel": true, - "dataType": "number", - "filter": { - "language": "kuery", - "query": "@timestamp \u003e now-7d/d" - }, - "isBucketed": false, - "label": "Part of Avg. run-rate", - "operationType": "sum", - "params": { - "emptyAsNull": false - }, - "scale": "ratio", - "sourceField": "ess.billing.total_ecu" - }, - "0ea16e71-0cd4-4578-a0cc-8b5325fcd01bX1": { - "customLabel": true, - "dataType": "date", - "filter": { - "language": "kuery", - "query": "@timestamp \u003e now-7d/d" - }, - "isBucketed": false, - "label": "Part of Avg. run-rate", - "operationType": "max", - "params": { - "emptyAsNull": false - }, - "scale": "ratio", - "sourceField": "@timestamp" - }, - "0ea16e71-0cd4-4578-a0cc-8b5325fcd01bX2": { - "customLabel": true, - "dataType": "date", - "filter": { - "language": "kuery", - "query": "@timestamp \u003e now-7d/d" - }, - "isBucketed": false, - "label": "Part of Avg. run-rate", - "operationType": "min", - "params": { - "emptyAsNull": false - }, - "scale": "ratio", - "sourceField": "@timestamp" - }, - "0ea16e71-0cd4-4578-a0cc-8b5325fcd01bX3": { - "customLabel": true, - "dataType": "number", - "isBucketed": false, - "label": "Part of Avg. run-rate", - "operationType": "math", - "params": { - "tinymathAst": { - "args": [ - "0ea16e71-0cd4-4578-a0cc-8b5325fcd01bX0", - { - "args": [ - { - "args": [ - { - "args": [ - "0ea16e71-0cd4-4578-a0cc-8b5325fcd01bX1", - "0ea16e71-0cd4-4578-a0cc-8b5325fcd01bX2" - ], - "location": { - "max": 220, - "min": 88 - }, - "name": "subtract", - "text": "max(@timestamp,\n kql='@timestamp \u003e now-7d/d')\n -\n min(@timestamp,\n kql='@timestamp \u003e now-7d/d')\n ", - "type": "function" - }, - { - "args": [ - { - "args": [ - 1000, - 3600 - ], - "name": "multiply", - "type": "function" - }, - 24 - ], - "location": { - "max": 237, - "min": 225 - }, - "name": "multiply", - "text": "1000*3600*24", - "type": "function" - } - ], - "location": { - "max": 239, - "min": 78 - }, - "name": "divide", - "text": "(\n max(@timestamp,\n kql='@timestamp \u003e now-7d/d')\n -\n min(@timestamp,\n kql='@timestamp \u003e now-7d/d')\n ) / (1000*3600*24) ", - "type": "function" - }, - 1 - ], - "location": { - "max": 243, - "min": 78 - }, - "name": "add", - "text": "(\n max(@timestamp,\n kql='@timestamp \u003e now-7d/d')\n -\n min(@timestamp,\n kql='@timestamp \u003e now-7d/d')\n ) / (1000*3600*24) + 1\n", - "type": "function" - } - ], - "location": { - "max": 245, - "min": 0 - }, - "name": "divide", - "text": "sum(\n ess.billing.total_ecu,\n kql='@timestamp \u003e now-7d/d'\n) / (\n (\n max(@timestamp,\n kql='@timestamp \u003e now-7d/d')\n -\n min(@timestamp,\n kql='@timestamp \u003e now-7d/d')\n ) / (1000*3600*24) + 1\n)\n", - "type": "function" } - }, - "references": [ - "0ea16e71-0cd4-4578-a0cc-8b5325fcd01bX0", - "0ea16e71-0cd4-4578-a0cc-8b5325fcd01bX1", - "0ea16e71-0cd4-4578-a0cc-8b5325fcd01bX2" - ], - "scale": "ratio" + } } + ], + "index": "526a9afe6163dadf5ade822595b5568e52d3b7d4ff831b30e1b2031e42b6677e", + "query": { + "esql": "FROM metrics-ess_billing.billing-*\n| WHERE @timestamp >= ?_tend - 7 days\n| STATS\n total_ECUs_period = SUM(ess.billing.total_ecu),\n count_days_period = COUNT_DISTINCT(DATE_TRUNC(1 day, @timestamp))\n| EVAL recent_run_rate = total_ECUs_period / count_days_period\n| KEEP recent_run_rate" }, - "ignoreGlobalFilters": false, - "incompleteColumns": {}, - "indexPatternId": "metrics-*", - "sampling": 1 + "timeField": "@timestamp" } } - }, - "indexpattern": { - "layers": {} - }, - "textBased": { - "layers": {} } }, "filters": [], - "internalReferences": [], + "needsRefresh": false, "query": { - "language": "kuery", - "query": "data_stream.dataset :\"ess_billing.billing\" " + "esql": "FROM metrics-ess_billing.billing-*\n| WHERE @timestamp >= ?_tend - 7 days\n| STATS\n total_ECUs_period = SUM(ess.billing.total_ecu),\n count_days_period = COUNT_DISTINCT(DATE_TRUNC(1 day, @timestamp))\n| EVAL recent_run_rate = total_ECUs_period / count_days_period\n| KEEP recent_run_rate" }, "visualization": { "icon": "temperature", - "layerId": "8c4e8172-eb9b-4d3b-822d-2cf041d9a9af", + "iconAlign": "right", + "layerId": "f51922ed-26ad-4e0d-bc76-06e235ebf952", "layerType": "data", - "metricAccessor": "0ea16e71-0cd4-4578-a0cc-8b5325fcd01b", - "showBar": false + "metricAccessor": "recent_run_rate" } }, - "title": "", - "type": "lens", + "title": "recent_run_rate", + "version": 1, "visualizationType": "lnsMetric" }, - "description": "Run rate computed from the recent consumption", + "description": "Run rate (ECUs per day) computed as average of the last 7 days of the filtered time period", "enhancements": { "dynamicActions": { "events": [] } }, "filters": [], - "hidePanelTitles": true, "query": { - "language": "kuery", - "query": "data_stream.dataset :\"ess_billing.billing\" " + "esql": "FROM metrics-ess_billing.billing-*\n| WHERE @timestamp >= ?_tend - 7 days\n| STATS\n total_ECUs_period = SUM(ess.billing.total_ecu),\n count_days_period = COUNT_DISTINCT(DATE_TRUNC(1 day, @timestamp))\n| EVAL recent_run_rate = total_ECUs_period / count_days_period\n| KEEP recent_run_rate" }, "syncColors": false, "syncCursor": true, - "syncTooltips": false + "syncTooltips": false, + "title": "" }, "gridData": { "h": 7, - "i": "f8867591-437e-4b1d-be5c-b5d5d606e742", + "i": "4e262e1c-0c7f-42d3-994c-c3559c9262dd", "w": 6, "x": 11, "y": 0 }, - "panelIndex": "f8867591-437e-4b1d-be5c-b5d5d606e742", - "title": "", + "panelIndex": "4e262e1c-0c7f-42d3-994c-c3559c9262dd", "type": "lens" }, { "embeddableConfig": { "attributes": { - "references": [ - { - "id": "metrics-*", - "name": "indexpattern-datasource-layer-8c4e8172-eb9b-4d3b-822d-2cf041d9a9af", - "type": "index-pattern" - } - ], + "references": [], "state": { - "adHocDataViews": {}, + "adHocDataViews": { + "526a9afe6163dadf5ade822595b5568e52d3b7d4ff831b30e1b2031e42b6677e": { + "allowHidden": false, + "allowNoIndex": false, + "fieldFormats": {}, + "id": "526a9afe6163dadf5ade822595b5568e52d3b7d4ff831b30e1b2031e42b6677e", + "managed": false, + "name": "metrics-ess_billing.billing-*", + "runtimeFieldMap": {}, + "sourceFilters": [], + "timeFieldName": "@timestamp", + "title": "metrics-ess_billing.billing-*", + "type": "esql" + } + }, "datasourceStates": { - "formBased": { - "currentIndexPatternId": "metrics-*", + "textBased": { + "indexPatternRefs": [ + { + "id": "526a9afe6163dadf5ade822595b5568e52d3b7d4ff831b30e1b2031e42b6677e", + "timeField": "@timestamp", + "title": "metrics-ess_billing.billing-*" + } + ], "layers": { - "8c4e8172-eb9b-4d3b-822d-2cf041d9a9af": { - "columnOrder": [ - "0ea16e71-0cd4-4578-a0cc-8b5325fcd01b" - ], - "columns": { - "0ea16e71-0cd4-4578-a0cc-8b5325fcd01b": { + "1b122545-3c75-4bb2-b729-b226af04c920": { + "columns": [ + { + "columnId": "dep_count", "customLabel": true, - "dataType": "number", - "isBucketed": false, + "fieldName": "dep_count", + "inMetricDimension": true, "label": "Deployments", - "operationType": "unique_count", + "meta": { + "esType": "long", + "type": "number" + }, "params": { - "emptyAsNull": true, "format": { "id": "number", "params": { - "compact": false, - "decimals": 0, - "suffix": "" + "decimals": 0 } } - }, - "reducedTimeRange": "7d", - "scale": "ratio", - "sourceField": "ess.billing.deployment_id" + } } + ], + "index": "526a9afe6163dadf5ade822595b5568e52d3b7d4ff831b30e1b2031e42b6677e", + "query": { + "esql": "FROM metrics-ess_billing.billing-*\n| WHERE @timestamp >= ?_tend - 7 days\n| STATS\n dep_count = COUNT_DISTINCT(ess.billing.deployment_id)" }, - "ignoreGlobalFilters": false, - "incompleteColumns": {}, - "indexPatternId": "metrics-*", - "sampling": 1 + "timeField": "@timestamp" } } - }, - "indexpattern": { - "layers": {} - }, - "textBased": { - "layers": {} } }, "filters": [], - "internalReferences": [], + "needsRefresh": false, "query": { - "language": "kuery", - "query": "data_stream.dataset :\"ess_billing.billing\" " + "esql": "FROM metrics-ess_billing.billing-*\n| WHERE @timestamp >= ?_tend - 7 days\n| STATS\n dep_count = COUNT_DISTINCT(ess.billing.deployment_id)" }, "visualization": { "icon": "globe", - "layerId": "8c4e8172-eb9b-4d3b-822d-2cf041d9a9af", + "iconAlign": "right", + "layerId": "1b122545-3c75-4bb2-b729-b226af04c920", "layerType": "data", - "metricAccessor": "0ea16e71-0cd4-4578-a0cc-8b5325fcd01b", - "showBar": false + "metricAccessor": "dep_count" } }, - "title": "", - "type": "lens", + "title": "dep_count", + "version": 1, "visualizationType": "lnsMetric" }, + "description": "", "enhancements": { "dynamicActions": { "events": [] } }, "filters": [], - "hidePanelTitles": true, "query": { - "language": "kuery", - "query": "data_stream.dataset :\"ess_billing.billing\" " + "esql": "FROM metrics-ess_billing.billing-*\n| WHERE @timestamp >= ?_tend - 7 days\n| STATS\n dep_count = COUNT_DISTINCT(ess.billing.deployment_id)" }, "syncColors": false, "syncCursor": true, - "syncTooltips": false + "syncTooltips": false, + "title": "" }, "gridData": { "h": 7, - "i": "7f12fd27-25ec-49dc-b933-355fd9240e84", + "i": "8c2c761b-6714-43e4-91d7-bb31049b8e9c", "w": 6, "x": 17, "y": 0 }, - "panelIndex": "7f12fd27-25ec-49dc-b933-355fd9240e84", - "title": "", + "panelIndex": "8c2c761b-6714-43e4-91d7-bb31049b8e9c", "type": "lens" }, { "embeddableConfig": { "attributes": { - "references": [ - { - "id": "metrics-*", - "name": "indexpattern-datasource-layer-8c4e8172-eb9b-4d3b-822d-2cf041d9a9af", - "type": "index-pattern" - } - ], + "references": [], "state": { - "adHocDataViews": {}, + "adHocDataViews": { + "526a9afe6163dadf5ade822595b5568e52d3b7d4ff831b30e1b2031e42b6677e": { + "allowHidden": false, + "allowNoIndex": false, + "fieldFormats": {}, + "id": "526a9afe6163dadf5ade822595b5568e52d3b7d4ff831b30e1b2031e42b6677e", + "managed": false, + "name": "metrics-ess_billing.billing-*", + "runtimeFieldMap": {}, + "sourceFilters": [], + "timeFieldName": "@timestamp", + "title": "metrics-ess_billing.billing-*", + "type": "esql" + } + }, "datasourceStates": { - "formBased": { - "currentIndexPatternId": "metrics-*", + "textBased": { + "indexPatternRefs": [ + { + "id": "526a9afe6163dadf5ade822595b5568e52d3b7d4ff831b30e1b2031e42b6677e", + "timeField": "@timestamp", + "title": "metrics-ess_billing.billing-*" + } + ], "layers": { - "8c4e8172-eb9b-4d3b-822d-2cf041d9a9af": { - "columnOrder": [ - "c5a97199-cf18-4de8-a657-50611c96c28f", - "02355646-e65e-4e99-9ce0-080ff8671206" - ], - "columns": { - "02355646-e65e-4e99-9ce0-080ff8671206": { - "customLabel": true, - "dataType": "number", - "isBucketed": false, - "label": "Total deployment count", - "operationType": "unique_count", - "params": { - "emptyAsNull": true, - "format": { - "id": "number", - "params": { - "compact": false, - "decimals": 0, - "suffix": "" - } - } - }, - "reducedTimeRange": "7d", - "scale": "ratio", - "sourceField": "ess.billing.deployment_id" - }, - "c5a97199-cf18-4de8-a657-50611c96c28f": { + "1b122545-3c75-4bb2-b729-b226af04c920": { + "columns": [ + { + "columnId": "dep_count", "customLabel": true, - "dataType": "number", - "filter": { - "language": "kuery", - "query": "ess.billing.sku : *ml*" - }, - "isBucketed": false, + "fieldName": "ml_enabled", + "inMetricDimension": true, "label": "ML-enabled deployments", - "operationType": "unique_count", + "meta": { + "esType": "long", + "params": { + "id": "number" + }, + "sourceParams": { + "indexPattern": "metrics-ess_billing.billing-*", + "sourceField": "ml_enabled" + }, + "type": "number" + }, "params": { - "emptyAsNull": true, "format": { "id": "number", "params": { - "compact": false, - "decimals": 0, - "suffix": "" + "decimals": 0 } } - }, - "reducedTimeRange": "7d", - "scale": "ratio", - "sourceField": "ess.billing.deployment_id" + } + }, + { + "columnId": "6ca8c5e2-4894-4395-9705-e663258e3aa4", + "fieldName": "dep_count", + "label": "dep_count", + "meta": { + "esType": "long", + "params": { + "id": "number" + }, + "sourceParams": { + "indexPattern": "metrics-ess_billing.billing-*", + "sourceField": "dep_count" + }, + "type": "number" + } } + ], + "index": "526a9afe6163dadf5ade822595b5568e52d3b7d4ff831b30e1b2031e42b6677e", + "query": { + "esql": "FROM metrics-ess_billing.billing-*\n| WHERE @timestamp >= ?_tend - 7 days\n| STATS\n dep_count = COUNT_DISTINCT(ess.billing.deployment_id),\n ml_enabled = COUNT_DISTINCT(ess.billing.deployment_id) WHERE ess.billing.sku LIKE \"*ml*\"" }, - "ignoreGlobalFilters": false, - "incompleteColumns": {}, - "indexPatternId": "metrics-*", - "sampling": 1 + "timeField": "@timestamp" } } - }, - "indexpattern": { - "layers": {} - }, - "textBased": { - "layers": {} } }, "filters": [], - "internalReferences": [], + "needsRefresh": false, "query": { - "language": "kuery", - "query": "data_stream.dataset :\"ess_billing.billing\" " + "esql": "FROM metrics-ess_billing.billing-*\n| WHERE @timestamp >= ?_tend - 7 days\n| STATS\n dep_count = COUNT_DISTINCT(ess.billing.deployment_id),\n ml_enabled = COUNT_DISTINCT(ess.billing.deployment_id) WHERE ess.billing.sku LIKE \"*ml*\"" }, "visualization": { - "color": "#9170B8", - "layerId": "8c4e8172-eb9b-4d3b-822d-2cf041d9a9af", + "color": "#EE72A6", + "icon": "compute", + "iconAlign": "right", + "layerId": "1b122545-3c75-4bb2-b729-b226af04c920", "layerType": "data", - "maxAccessor": "02355646-e65e-4e99-9ce0-080ff8671206", - "metricAccessor": "c5a97199-cf18-4de8-a657-50611c96c28f", + "maxAccessor": "6ca8c5e2-4894-4395-9705-e663258e3aa4", + "metricAccessor": "dep_count", "showBar": true } }, - "title": "", - "type": "lens", + "title": "dep_count", + "version": 1, "visualizationType": "lnsMetric" }, + "description": "", "enhancements": { "dynamicActions": { "events": [] } }, "filters": [], - "hidePanelTitles": true, "query": { - "language": "kuery", - "query": "data_stream.dataset :\"ess_billing.billing\" " + "esql": "FROM metrics-ess_billing.billing-*\n| WHERE @timestamp >= ?_tend - 7 days\n| STATS\n dep_count = COUNT_DISTINCT(ess.billing.deployment_id),\n ml_enabled = COUNT_DISTINCT(ess.billing.deployment_id) WHERE ess.billing.sku LIKE \"*ml*\"" }, "syncColors": false, "syncCursor": true, - "syncTooltips": false + "syncTooltips": false, + "title": "" }, "gridData": { "h": 7, - "i": "323689e7-0739-46dc-bf47-8f36487e7db4", + "i": "71f1671b-0f8f-47b3-a7aa-f3a70effa2d2", "w": 5, "x": 23, "y": 0 }, - "panelIndex": "323689e7-0739-46dc-bf47-8f36487e7db4", - "title": "", + "panelIndex": "71f1671b-0f8f-47b3-a7aa-f3a70effa2d2", "type": "lens" }, { "embeddableConfig": { "attributes": { - "references": [ - { - "id": "metrics-*", - "name": "indexpattern-datasource-layer-8c4e8172-eb9b-4d3b-822d-2cf041d9a9af", - "type": "index-pattern" - } - ], + "references": [], "state": { - "adHocDataViews": {}, + "adHocDataViews": { + "526a9afe6163dadf5ade822595b5568e52d3b7d4ff831b30e1b2031e42b6677e": { + "allowHidden": false, + "allowNoIndex": false, + "fieldFormats": {}, + "id": "526a9afe6163dadf5ade822595b5568e52d3b7d4ff831b30e1b2031e42b6677e", + "managed": false, + "name": "metrics-ess_billing.billing-*", + "runtimeFieldMap": {}, + "sourceFilters": [], + "timeFieldName": "@timestamp", + "title": "metrics-ess_billing.billing-*", + "type": "esql" + } + }, "datasourceStates": { - "formBased": { - "currentIndexPatternId": "metrics-*", + "textBased": { + "indexPatternRefs": [ + { + "id": "526a9afe6163dadf5ade822595b5568e52d3b7d4ff831b30e1b2031e42b6677e", + "timeField": "@timestamp", + "title": "metrics-ess_billing.billing-*" + } + ], "layers": { - "8c4e8172-eb9b-4d3b-822d-2cf041d9a9af": { - "columnOrder": [ - "c5a97199-cf18-4de8-a657-50611c96c28f", - "02355646-e65e-4e99-9ce0-080ff8671206" - ], - "columns": { - "02355646-e65e-4e99-9ce0-080ff8671206": { - "customLabel": true, - "dataType": "number", - "isBucketed": false, - "label": "Total deployment count", - "operationType": "unique_count", - "params": { - "emptyAsNull": true, - "format": { - "id": "number", - "params": { - "compact": false, - "decimals": 0, - "suffix": "" - } - } - }, - "reducedTimeRange": "7d", - "scale": "ratio", - "sourceField": "ess.billing.deployment_id" - }, - "c5a97199-cf18-4de8-a657-50611c96c28f": { + "8b4e6918-8313-4c62-a64a-b998f33602d1": { + "columns": [ + { + "columnId": "dep_count", "customLabel": true, - "dataType": "number", - "filter": { - "language": "kuery", - "query": "ess.billing.sku : *frozen*" - }, - "isBucketed": false, + "fieldName": "frozen_enabled", + "inMetricDimension": true, "label": "Frozen-enabled deployments", - "operationType": "unique_count", + "meta": { + "esType": "long", + "params": { + "id": "number" + }, + "sourceParams": { + "indexPattern": "metrics-ess_billing.billing-*", + "sourceField": "frozen_enabled" + }, + "type": "number" + }, "params": { - "emptyAsNull": true, "format": { "id": "number", "params": { - "compact": false, - "decimals": 0, - "suffix": "" + "decimals": 0 } } - }, - "reducedTimeRange": "7d", - "scale": "ratio", - "sourceField": "ess.billing.deployment_id" + } + }, + { + "columnId": "frozen_enabled", + "customLabel": false, + "fieldName": "frozen_enabled", + "inMetricDimension": true, + "label": "frozen_enabled", + "meta": { + "esType": "long", + "type": "number" + } + }, + { + "columnId": "0eb69944-9dff-4d66-8955-6f427bf87596", + "fieldName": "dep_count", + "label": "dep_count", + "meta": { + "esType": "long", + "params": { + "id": "number" + }, + "sourceParams": { + "indexPattern": "metrics-ess_billing.billing-*", + "sourceField": "dep_count" + }, + "type": "number" + } } + ], + "index": "526a9afe6163dadf5ade822595b5568e52d3b7d4ff831b30e1b2031e42b6677e", + "query": { + "esql": "FROM metrics-ess_billing.billing-*\n| WHERE @timestamp >= ?_tend - 7 days\n| STATS\n dep_count = COUNT_DISTINCT(ess.billing.deployment_id),\n frozen_enabled = COUNT_DISTINCT(ess.billing.deployment_id) WHERE ess.billing.sku LIKE \"*frozen*\"" }, - "ignoreGlobalFilters": false, - "incompleteColumns": {}, - "indexPatternId": "metrics-*", - "sampling": 1 + "timeField": "@timestamp" } } - }, - "indexpattern": { - "layers": {} - }, - "textBased": { - "layers": {} } }, "filters": [], - "internalReferences": [], + "needsRefresh": false, "query": { - "language": "kuery", - "query": "data_stream.dataset :\"ess_billing.billing\" " + "esql": "FROM metrics-ess_billing.billing-*\n| WHERE @timestamp >= ?_tend - 7 days\n| STATS\n dep_count = COUNT_DISTINCT(ess.billing.deployment_id),\n frozen_enabled = COUNT_DISTINCT(ess.billing.deployment_id) WHERE ess.billing.sku LIKE \"*frozen*\"" }, "visualization": { - "color": "#54B399", - "layerId": "8c4e8172-eb9b-4d3b-822d-2cf041d9a9af", + "color": "#16C5C0", + "icon": "starEmpty", + "iconAlign": "right", + "layerId": "8b4e6918-8313-4c62-a64a-b998f33602d1", "layerType": "data", - "maxAccessor": "02355646-e65e-4e99-9ce0-080ff8671206", - "metricAccessor": "c5a97199-cf18-4de8-a657-50611c96c28f", + "maxAccessor": "0eb69944-9dff-4d66-8955-6f427bf87596", + "metricAccessor": "dep_count", "showBar": true } }, - "title": "", - "type": "lens", + "title": "dep_count", + "version": 1, "visualizationType": "lnsMetric" }, + "description": "", "enhancements": { "dynamicActions": { "events": [] } }, "filters": [], - "hidePanelTitles": true, "query": { - "language": "kuery", - "query": "data_stream.dataset :\"ess_billing.billing\" " + "esql": "FROM metrics-ess_billing.billing-*\n| WHERE @timestamp >= ?_tend - 7 days\n| STATS\n dep_count = COUNT_DISTINCT(ess.billing.deployment_id),\n frozen_enabled = COUNT_DISTINCT(ess.billing.deployment_id) WHERE ess.billing.sku LIKE \"*frozen*\"" }, "syncColors": false, "syncCursor": true, - "syncTooltips": false + "syncTooltips": false, + "title": "" }, "gridData": { "h": 7, - "i": "1786e834-ffd4-4303-b466-2fe2c5f9247b", + "i": "9afedf1d-a053-4aff-bc9b-09def47d3ff2", "w": 5, "x": 28, "y": 0 }, - "panelIndex": "1786e834-ffd4-4303-b466-2fe2c5f9247b", - "title": "", + "panelIndex": "9afedf1d-a053-4aff-bc9b-09def47d3ff2", "type": "lens" }, { "embeddableConfig": { "attributes": { - "references": [ - { - "id": "metrics-*", - "name": "indexpattern-datasource-layer-26b528c1-3098-4152-ae1f-1c1e59d61e04", - "type": "index-pattern" - } - ], + "references": [], "state": { - "adHocDataViews": {}, + "adHocDataViews": { + "526a9afe6163dadf5ade822595b5568e52d3b7d4ff831b30e1b2031e42b6677e": { + "allowHidden": false, + "allowNoIndex": false, + "fieldFormats": {}, + "id": "526a9afe6163dadf5ade822595b5568e52d3b7d4ff831b30e1b2031e42b6677e", + "managed": false, + "name": "metrics-ess_billing.billing-*", + "runtimeFieldMap": {}, + "sourceFilters": [], + "timeFieldName": "@timestamp", + "title": "metrics-ess_billing.billing-*", + "type": "esql" + } + }, "datasourceStates": { - "formBased": { - "currentIndexPatternId": "metrics-*", + "textBased": { + "indexPatternRefs": [ + { + "id": "526a9afe6163dadf5ade822595b5568e52d3b7d4ff831b30e1b2031e42b6677e", + "timeField": "@timestamp", + "title": "metrics-ess_billing.billing-*" + } + ], "layers": { - "26b528c1-3098-4152-ae1f-1c1e59d61e04": { - "columnOrder": [ - "a0d6a089-3f54-4fdc-82a6-82ef4bc267fe", - "bb874b41-b527-4e6e-9420-8c1988f82766" - ], - "columns": { - "a0d6a089-3f54-4fdc-82a6-82ef4bc267fe": { - "dataType": "string", - "isBucketed": true, - "label": "Top 5 values of cloud.provider", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "bb874b41-b527-4e6e-9420-8c1988f82766", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 5 + "f5c93f3b-876b-4c36-a9e5-0b0160d39ee7": { + "columns": [ + { + "columnId": "total_ECUs", + "customLabel": false, + "fieldName": "total_ECUs", + "inMetricDimension": true, + "label": "total_ECUs", + "meta": { + "esType": "double", + "type": "number" }, - "scale": "ordinal", - "sourceField": "cloud.provider" - }, - "bb874b41-b527-4e6e-9420-8c1988f82766": { - "customLabel": true, - "dataType": "number", - "isBucketed": false, - "label": "Total cost", - "operationType": "sum", "params": { - "emptyAsNull": true, "format": { "id": "number", "params": { - "decimals": 0, + "compact": true, + "decimals": 2, "suffix": " ECUs" } } - }, - "scale": "ratio", - "sourceField": "ess.billing.total_ecu" + } + }, + { + "columnId": "cloud.provider", + "customLabel": false, + "fieldName": "cloud.provider", + "label": "cloud.provider", + "meta": { + "esType": "keyword", + "type": "string" + } } + ], + "index": "526a9afe6163dadf5ade822595b5568e52d3b7d4ff831b30e1b2031e42b6677e", + "query": { + "esql": "FROM metrics-ess_billing.billing-*\n| STATS total_ECUs = SUM(ess.billing.total_ecu::DOUBLE) BY cloud.provider" }, - "ignoreGlobalFilters": false, - "incompleteColumns": {}, - "indexPatternId": "metrics-*", - "sampling": 1 + "timeField": "@timestamp" } } - }, - "indexpattern": { - "layers": {} - }, - "textBased": { - "layers": {} } }, "filters": [], - "internalReferences": [], + "needsRefresh": false, "query": { - "language": "kuery", - "query": "data_stream.dataset :\"ess_billing.billing\" " + "esql": "FROM metrics-ess_billing.billing-*\n| STATS total_ECUs = SUM(ess.billing.total_ecu::DOUBLE) BY cloud.provider" }, "visualization": { "layers": [ @@ -916,38 +790,40 @@ "colorMode": { "type": "categorical" }, - "paletteId": "eui_amsterdam_color_blind", + "paletteId": "default", "specialAssignments": [ { "color": { "type": "loop" }, - "rule": { - "type": "other" - }, + "rules": [ + { + "type": "other" + } + ], "touched": false } ] }, - "layerId": "26b528c1-3098-4152-ae1f-1c1e59d61e04", + "emptySizeRatio": 0.7, + "layerId": "f5c93f3b-876b-4c36-a9e5-0b0160d39ee7", "layerType": "data", - "legendDisplay": "default", + "legendDisplay": "hide", "metrics": [ - "bb874b41-b527-4e6e-9420-8c1988f82766" + "total_ECUs" ], "nestedLegend": false, "numberDisplay": "value", - "percentDecimals": 0, "primaryGroups": [ - "a0d6a089-3f54-4fdc-82a6-82ef4bc267fe" + "cloud.provider" ] } ], - "shape": "pie" + "shape": "donut" } }, - "title": "", - "type": "lens", + "title": "Bar vertical stacked", + "version": 1, "visualizationType": "lnsPie" }, "enhancements": { @@ -957,114 +833,109 @@ }, "filters": [], "query": { - "language": "kuery", - "query": "data_stream.dataset :\"ess_billing.billing\" " + "esql": "FROM metrics-ess_billing.billing-*\n| STATS total_ECUs = SUM(ess.billing.total_ecu::DOUBLE) BY cloud.provider" }, "syncColors": false, "syncCursor": true, - "syncTooltips": false + "syncTooltips": false, + "title": "Consumption per hyperscaler" }, "gridData": { "h": 16, - "i": "a3b36499-5bb7-4a5f-9ef5-9a9f5e0cf7e3", + "i": "98d229bc-0e43-453e-8d1e-20e309d2bcc3", "w": 15, "x": 33, "y": 0 }, - "panelIndex": "a3b36499-5bb7-4a5f-9ef5-9a9f5e0cf7e3", - "title": "Cost per provider", + "panelIndex": "98d229bc-0e43-453e-8d1e-20e309d2bcc3", "type": "lens" }, { "embeddableConfig": { "attributes": { - "references": [ - { - "id": "metrics-*", - "name": "indexpattern-datasource-layer-c9af8b12-7fac-4ff6-9e4e-796c744c3f1d", - "type": "index-pattern" - } - ], + "references": [], "state": { - "adHocDataViews": {}, + "adHocDataViews": { + "526a9afe6163dadf5ade822595b5568e52d3b7d4ff831b30e1b2031e42b6677e": { + "allowHidden": false, + "allowNoIndex": false, + "fieldFormats": {}, + "id": "526a9afe6163dadf5ade822595b5568e52d3b7d4ff831b30e1b2031e42b6677e", + "managed": false, + "name": "metrics-ess_billing.billing-*", + "runtimeFieldMap": {}, + "sourceFilters": [], + "timeFieldName": "@timestamp", + "title": "metrics-ess_billing.billing-*", + "type": "esql" + } + }, "datasourceStates": { - "formBased": { - "currentIndexPatternId": "metrics-*", + "textBased": { + "indexPatternRefs": [ + { + "id": "526a9afe6163dadf5ade822595b5568e52d3b7d4ff831b30e1b2031e42b6677e", + "timeField": "@timestamp", + "title": "metrics-ess_billing.billing-*" + } + ], "layers": { - "c9af8b12-7fac-4ff6-9e4e-796c744c3f1d": { - "columnOrder": [ - "964a9602-36b4-4143-a4a5-4ef2ae4eeb20", - "e32c3485-ff5f-41ec-b576-aff6d08672ba", - "f3a939b5-e9dc-4164-a59f-56e7a9aced2a" - ], - "columns": { - "964a9602-36b4-4143-a4a5-4ef2ae4eeb20": { - "customLabel": true, - "dataType": "date", - "isBucketed": true, - "label": "Time", - "operationType": "date_histogram", - "params": { - "dropPartials": false, - "includeEmptyRows": true, - "interval": "1M" - }, - "scale": "interval", - "sourceField": "@timestamp" - }, - "e32c3485-ff5f-41ec-b576-aff6d08672ba": { - "dataType": "date", - "isBucketed": true, - "label": "@timestamp", - "operationType": "date_histogram", - "params": { - "dropPartials": false, - "includeEmptyRows": true, - "interval": "1M" + "8366869a-1880-4b98-80ce-99fb3ea143ac": { + "columns": [ + { + "columnId": "total_ECUs", + "customLabel": false, + "fieldName": "total_ECUs", + "inMetricDimension": true, + "label": "total_ECUs", + "meta": { + "esType": "double", + "type": "number" }, - "scale": "interval", - "sourceField": "@timestamp" - }, - "f3a939b5-e9dc-4164-a59f-56e7a9aced2a": { - "customLabel": true, - "dataType": "number", - "isBucketed": false, - "label": "Deployment ECU cost", - "operationType": "sum", "params": { - "emptyAsNull": true, "format": { "id": "number", "params": { "compact": true, - "decimals": 2, - "suffix": "" + "decimals": 2 } } - }, - "scale": "ratio", - "sourceField": "ess.billing.total_ecu" + } + }, + { + "columnId": "month", + "customLabel": false, + "fieldName": "month", + "label": "month", + "meta": { + "esType": "date", + "type": "date" + } + }, + { + "columnId": "month_str", + "customLabel": false, + "fieldName": "month_str", + "label": "month_str", + "meta": { + "esType": "keyword", + "type": "string" + } } + ], + "index": "526a9afe6163dadf5ade822595b5568e52d3b7d4ff831b30e1b2031e42b6677e", + "query": { + "esql": "FROM metrics-ess_billing.billing-*\n| STATS total_ECUs = SUM(ess.billing.total_ecu::DOUBLE) BY month = BUCKET(@timestamp, 1 month)\n\n| EVAL month_str = DATE_FORMAT(\"MMM yyyy\", month)" }, - "ignoreGlobalFilters": false, - "incompleteColumns": {}, - "indexPatternId": "metrics-*", - "sampling": 1 + "timeField": "@timestamp" } } - }, - "indexpattern": { - "layers": {} - }, - "textBased": { - "layers": {} } }, "filters": [], - "internalReferences": [], + "needsRefresh": false, "query": { - "language": "kuery", - "query": "data_stream.dataset :\"ess_billing.billing\" " + "esql": "FROM metrics-ess_billing.billing-*\n| STATS total_ECUs = SUM(ess.billing.total_ecu::DOUBLE) BY month = BUCKET(@timestamp, 1 month)\n\n| EVAL month_str = DATE_FORMAT(\"MMM yyyy\", month)" }, "visualization": { "axisTitlesVisibilitySettings": { @@ -1072,55 +943,66 @@ "yLeft": false, "yRight": true }, - "fittingFunction": "None", + "fittingFunction": "Linear", + "gridlinesVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "labelsOrientation": { + "x": 0, + "yLeft": 0, + "yRight": 0 + }, "layers": [ { "accessors": [ - "f3a939b5-e9dc-4164-a59f-56e7a9aced2a" + "total_ECUs" ], "colorMapping": { "assignments": [], "colorMode": { "type": "categorical" }, - "paletteId": "eui_amsterdam_color_blind", + "paletteId": "default", "specialAssignments": [ { "color": { "type": "loop" }, - "rule": { - "type": "other" - }, + "rules": [ + { + "type": "other" + } + ], "touched": false } ] }, - "layerId": "c9af8b12-7fac-4ff6-9e4e-796c744c3f1d", + "layerId": "8366869a-1880-4b98-80ce-99fb3ea143ac", "layerType": "data", - "position": "top", "seriesType": "bar_stacked", - "showGridlines": false, - "splitAccessor": "e32c3485-ff5f-41ec-b576-aff6d08672ba", - "xAccessor": "964a9602-36b4-4143-a4a5-4ef2ae4eeb20" + "splitAccessor": "month_str", + "xAccessor": "month" } ], "legend": { "isVisible": false, - "legendSize": "auto", - "legendStats": [ - "total" - ], "position": "right", "showSingleSeries": false }, "preferredSeriesType": "bar_stacked", - "title": "Empty XY chart", + "showCurrentTimeMarker": true, + "tickLabelsVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, "valueLabels": "show" } }, - "title": "", - "type": "lens", + "title": "total_ECUs over month", + "version": 1, "visualizationType": "lnsXY" }, "enhancements": { @@ -1130,8 +1012,7 @@ }, "filters": [], "query": { - "language": "kuery", - "query": "data_stream.dataset :\"ess_billing.billing\" " + "esql": "FROM metrics-ess_billing.billing-*\n| STATS total_ECUs = SUM(ess.billing.total_ecu::DOUBLE) BY month = BUCKET(@timestamp, 1 month)\n\n| EVAL month_str = DATE_FORMAT(\"MMM yyyy\", month)" }, "syncColors": false, "syncCursor": true, @@ -1139,17 +1020,17 @@ "timeRange": { "from": "now-1y/d", "to": "now" - } + }, + "title": "" }, "gridData": { "h": 9, - "i": "3d7876e6-13c8-4a0c-b512-0d12ca9dbbce", + "i": "c87e8419-2465-4a13-9870-f06402a6a6a9", "w": 33, "x": 0, "y": 7 }, - "panelIndex": "3d7876e6-13c8-4a0c-b512-0d12ca9dbbce", - "title": "Last 12 months", + "panelIndex": "c87e8419-2465-4a13-9870-f06402a6a6a9", "type": "lens" }, { @@ -1174,7 +1055,7 @@ "description": "", "params": { "fontSize": 12, - "markdown": "# 💵 Costs overview", + "markdown": "# \ud83d\udcb5 Costs overview", "openLinksInNewTab": false }, "title": "", @@ -1269,7 +1150,7 @@ "822c4ce3-c29c-4c14-8986-09b4190dc5cb": { "dataType": "string", "isBucketed": true, - "label": "Top values of ess.billing.deployment_name + 1 other", + "label": "Top 9 values of ess.billing.deployment_name", "operationType": "terms", "params": { "exclude": [], @@ -1284,11 +1165,9 @@ "orderDirection": "desc", "otherBucket": true, "parentFormat": { - "id": "multi_terms" + "id": "terms" }, - "secondaryFields": [ - "ess.billing.deployment_id" - ], + "secondaryFields": [], "size": 9 }, "sourceField": "ess.billing.deployment_name" @@ -1430,6 +1309,7 @@ }, "title": "", "type": "lens", + "version": 1, "visualizationType": "lnsXY" }, "enhancements": { @@ -1444,7 +1324,8 @@ }, "syncColors": false, "syncCursor": true, - "syncTooltips": false + "syncTooltips": false, + "title": "Cost per deployments/projects over time" }, "gridData": { "h": 14, @@ -1454,7 +1335,143 @@ "y": 20 }, "panelIndex": "bb12c1c0-bdd5-4342-bf93-6aa570ae79d6", - "title": "Cost per deployments/projects over time", + "type": "lens" + }, + { + "embeddableConfig": { + "attributes": { + "references": [], + "state": { + "adHocDataViews": { + "526a9afe6163dadf5ade822595b5568e52d3b7d4ff831b30e1b2031e42b6677e": { + "allowHidden": false, + "allowNoIndex": false, + "fieldFormats": {}, + "id": "526a9afe6163dadf5ade822595b5568e52d3b7d4ff831b30e1b2031e42b6677e", + "managed": false, + "name": "metrics-ess_billing.billing-*", + "runtimeFieldMap": {}, + "sourceFilters": [], + "timeFieldName": "@timestamp", + "title": "metrics-ess_billing.billing-*", + "type": "esql" + } + }, + "datasourceStates": { + "textBased": { + "indexPatternRefs": [ + { + "id": "526a9afe6163dadf5ade822595b5568e52d3b7d4ff831b30e1b2031e42b6677e", + "timeField": "@timestamp", + "title": "metrics-ess_billing.billing-*" + } + ], + "layers": { + "fd1ed434-5241-48f0-8011-43553a0352de": { + "columns": [ + { + "columnId": "total_ECUs", + "customLabel": false, + "fieldName": "total_ECUs", + "inMetricDimension": true, + "label": "total_ECUs", + "meta": { + "esType": "double", + "type": "number" + }, + "params": { + "format": { + "id": "number", + "params": { + "compact": true, + "decimals": 2 + } + } + } + }, + { + "columnId": "ess.billing.deployment_type", + "customLabel": false, + "fieldName": "ess.billing.deployment_type", + "label": "ess.billing.deployment_type", + "meta": { + "esType": "keyword", + "type": "string" + } + }, + { + "columnId": "ess.billing.deployment_name", + "customLabel": false, + "fieldName": "ess.billing.deployment_name", + "label": "ess.billing.deployment_name", + "meta": { + "esType": "keyword", + "type": "string" + } + } + ], + "index": "526a9afe6163dadf5ade822595b5568e52d3b7d4ff831b30e1b2031e42b6677e", + "query": { + "esql": "FROM metrics-ess_billing.billing-*\n| STATS total_ECUs = SUM(ess.billing.total_ecu::DOUBLE) BY ess.billing.deployment_type, ess.billing.deployment_name" + }, + "timeField": "@timestamp" + } + } + } + }, + "filters": [], + "needsRefresh": false, + "query": { + "esql": "FROM metrics-ess_billing.billing-*\n| STATS total_ECUs = SUM(ess.billing.total_ecu::DOUBLE) BY ess.billing.deployment_type, ess.billing.deployment_name" + }, + "visualization": { + "layers": [ + { + "categoryDisplay": "default", + "emptySizeRatio": 0.3, + "layerId": "fd1ed434-5241-48f0-8011-43553a0352de", + "layerType": "data", + "legendDisplay": "hide", + "metrics": [ + "total_ECUs" + ], + "nestedLegend": false, + "numberDisplay": "value", + "primaryGroups": [ + "ess.billing.deployment_type", + "ess.billing.deployment_name" + ] + } + ], + "shape": "donut" + } + }, + "title": "Treemap", + "version": 1, + "visualizationType": "lnsPie" + }, + "enhancements": { + "dynamicActions": { + "events": [] + } + }, + "filters": [], + "query": { + "esql": "FROM metrics-ess_billing.billing-*\n| STATS total_ECUs = SUM(ess.billing.total_ecu::DOUBLE) BY ess.billing.deployment_type, ess.billing.deployment_name" + }, + "syncColors": false, + "syncCursor": true, + "syncTooltips": false, + "title": "Consumption per deployment" + }, + "gridData": { + "h": 14, + "i": "d5a29a12-411a-42bc-9126-8a49ab0a23e6", + "w": 10, + "x": 38, + "y": 20 + }, + "panelIndex": "d5a29a12-411a-42bc-9126-8a49ab0a23e6", "type": "lens" }, { @@ -1463,7 +1480,12 @@ "references": [ { "id": "metrics-*", - "name": "indexpattern-datasource-layer-26b528c1-3098-4152-ae1f-1c1e59d61e04", + "name": "indexpattern-datasource-layer-a417037b-2171-4ff8-aafe-3f7e2e503886", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "indexpattern-datasource-layer-c9af8b12-7fac-4ff6-9e4e-796c744c3f1d", "type": "index-pattern" } ], @@ -1473,24 +1495,24 @@ "formBased": { "currentIndexPatternId": "metrics-*", "layers": { - "26b528c1-3098-4152-ae1f-1c1e59d61e04": { + "a417037b-2171-4ff8-aafe-3f7e2e503886": { "columnOrder": [ - "3e339399-51fa-4618-9dda-b4ecf6220697", - "e0648c10-9af5-480d-8fe6-9a08048fb587", - "1d501ad6-5a57-4e37-aa8d-e1227858b119" + "fa9067f0-7641-4988-9297-58dd983cb390", + "d399e78a-8818-4562-acd2-80b9553066e5" ], "columns": { - "1d501ad6-5a57-4e37-aa8d-e1227858b119": { + "d399e78a-8818-4562-acd2-80b9553066e5": { "customLabel": true, "dataType": "number", "isBucketed": false, - "label": "Cost", + "label": "Total ECU cost", "operationType": "sum", "params": { "emptyAsNull": true, "format": { "id": "number", "params": { + "compact": false, "decimals": 0, "suffix": " ECUs" } @@ -1499,34 +1521,37 @@ "scale": "ratio", "sourceField": "ess.billing.total_ecu" }, - "3e339399-51fa-4618-9dda-b4ecf6220697": { - "dataType": "string", + "fa9067f0-7641-4988-9297-58dd983cb390": { + "customLabel": true, + "dataType": "date", "isBucketed": true, - "label": "Top 5 values of ess.billing.deployment_type", - "operationType": "terms", + "label": "Time", + "operationType": "date_histogram", "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "1d501ad6-5a57-4e37-aa8d-e1227858b119", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 5 + "dropPartials": true, + "includeEmptyRows": true, + "interval": "d" }, - "sourceField": "ess.billing.deployment_type" - }, - "e0648c10-9af5-480d-8fe6-9a08048fb587": { + "scale": "interval", + "sourceField": "@timestamp" + } + }, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "indexPatternId": "metrics-*", + "sampling": 1 + }, + "c9af8b12-7fac-4ff6-9e4e-796c744c3f1d": { + "columnOrder": [ + "10cdba83-4b9f-446e-a858-86576c05ff37", + "964a9602-36b4-4143-a4a5-4ef2ae4eeb20", + "f3a939b5-e9dc-4164-a59f-56e7a9aced2a" + ], + "columns": { + "10cdba83-4b9f-446e-a858-86576c05ff37": { "dataType": "string", "isBucketed": true, - "label": "Top 9 values of ess.billing.deployment_id", + "label": "Top values of ess.billing.deployment_type + 1 other", "operationType": "terms", "params": { "exclude": [], @@ -1535,17 +1560,55 @@ "includeIsRegex": false, "missingBucket": false, "orderBy": { - "columnId": "1d501ad6-5a57-4e37-aa8d-e1227858b119", + "columnId": "f3a939b5-e9dc-4164-a59f-56e7a9aced2a", "type": "column" }, "orderDirection": "desc", "otherBucket": true, "parentFormat": { - "id": "terms" + "id": "multi_terms" }, + "secondaryFields": [ + "ess.billing.type" + ], "size": 9 }, - "sourceField": "ess.billing.deployment_id" + "scale": "ordinal", + "sourceField": "ess.billing.deployment_type" + }, + "964a9602-36b4-4143-a4a5-4ef2ae4eeb20": { + "customLabel": true, + "dataType": "date", + "isBucketed": true, + "label": "Time", + "operationType": "date_histogram", + "params": { + "dropPartials": true, + "includeEmptyRows": true, + "interval": "d" + }, + "scale": "interval", + "sourceField": "@timestamp" + }, + "f3a939b5-e9dc-4164-a59f-56e7a9aced2a": { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Deployment ECU cost", + "operationType": "sum", + "params": { + "emptyAsNull": true, + "format": { + "id": "number", + "params": { + "compact": false, + "decimals": 0, + "suffix": " ECUs" + } + } + }, + "scale": "ratio", + "sourceField": "ess.billing.total_ecu" } }, "ignoreGlobalFilters": false, @@ -1577,22 +1640,33 @@ "query": "data_stream.dataset :\"ess_billing.billing\" " }, "visualization": { + "axisTitlesVisibilitySettings": { + "x": true, + "yLeft": false, + "yRight": true + }, + "fittingFunction": "None", "layers": [ { - "categoryDisplay": "default", + "accessors": [ + "f3a939b5-e9dc-4164-a59f-56e7a9aced2a" + ], + "layerId": "c9af8b12-7fac-4ff6-9e4e-796c744c3f1d", + "layerType": "data", + "position": "top", + "seriesType": "bar_stacked", + "showGridlines": false, + "splitAccessor": "10cdba83-4b9f-446e-a858-86576c05ff37", + "xAccessor": "964a9602-36b4-4143-a4a5-4ef2ae4eeb20" + }, + { + "accessors": [ + "d399e78a-8818-4562-acd2-80b9553066e5" + ], "colorMapping": { "assignments": [], "colorMode": { - "sort": "desc", - "steps": [ - { - "colorIndex": 0, - "paletteId": "eui_amsterdam_color_blind", - "touched": false, - "type": "categorical" - } - ], - "type": "gradient" + "type": "categorical" }, "paletteId": "eui_amsterdam_color_blind", "specialAssignments": [ @@ -1609,33 +1683,175 @@ } ] }, + "layerId": "a417037b-2171-4ff8-aafe-3f7e2e503886", + "layerType": "data", + "position": "top", + "seriesType": "line", + "showGridlines": false, + "xAccessor": "fa9067f0-7641-4988-9297-58dd983cb390", + "yConfig": [ + { + "color": "#000000", + "forAccessor": "d399e78a-8818-4562-acd2-80b9553066e5" + } + ] + } + ], + "legend": { + "isVisible": true, + "legendSize": "auto", + "legendStats": [ + "total" + ], + "position": "right", + "showSingleSeries": true + }, + "preferredSeriesType": "bar_stacked", + "title": "Empty XY chart", + "valueLabels": "hide" + } + }, + "title": "", + "type": "lens", + "version": 1, + "visualizationType": "lnsXY" + }, + "enhancements": { + "dynamicActions": { + "events": [] + } + }, + "filters": [], + "query": { + "language": "kuery", + "query": "data_stream.dataset :\"ess_billing.billing\" " + }, + "syncColors": false, + "syncCursor": true, + "syncTooltips": false, + "title": "Cost per features over time" + }, + "gridData": { + "h": 14, + "i": "62b36fc0-fd3f-42c3-adf8-678e39af680b", + "w": 38, + "x": 0, + "y": 34 + }, + "panelIndex": "62b36fc0-fd3f-42c3-adf8-678e39af680b", + "type": "lens" + }, + { + "embeddableConfig": { + "attributes": { + "references": [], + "state": { + "adHocDataViews": { + "526a9afe6163dadf5ade822595b5568e52d3b7d4ff831b30e1b2031e42b6677e": { + "allowHidden": false, + "allowNoIndex": false, + "fieldFormats": {}, + "id": "526a9afe6163dadf5ade822595b5568e52d3b7d4ff831b30e1b2031e42b6677e", + "managed": false, + "name": "metrics-ess_billing.billing-*", + "runtimeFieldMap": {}, + "sourceFilters": [], + "timeFieldName": "@timestamp", + "title": "metrics-ess_billing.billing-*", + "type": "esql" + } + }, + "datasourceStates": { + "textBased": { + "indexPatternRefs": [ + { + "id": "526a9afe6163dadf5ade822595b5568e52d3b7d4ff831b30e1b2031e42b6677e", + "timeField": "@timestamp", + "title": "metrics-ess_billing.billing-*" + } + ], + "layers": { + "791ea2d1-a33e-4fc4-a5e5-0f297b9493dc": { + "columns": [ + { + "columnId": "total_ECUs", + "customLabel": false, + "fieldName": "total_ECUs", + "inMetricDimension": true, + "label": "total_ECUs", + "meta": { + "esType": "double", + "type": "number" + }, + "params": { + "format": { + "id": "number", + "params": { + "compact": true, + "decimals": 2 + } + } + } + }, + { + "columnId": "ess.billing.deployment_type", + "customLabel": false, + "fieldName": "ess.billing.deployment_type", + "label": "ess.billing.deployment_type", + "meta": { + "esType": "keyword", + "type": "string" + } + }, + { + "columnId": "ess.billing.type", + "customLabel": false, + "fieldName": "ess.billing.type", + "label": "ess.billing.type", + "meta": { + "esType": "keyword", + "type": "string" + } + } + ], + "index": "526a9afe6163dadf5ade822595b5568e52d3b7d4ff831b30e1b2031e42b6677e", + "query": { + "esql": "FROM metrics-ess_billing.billing-*\n| STATS total_ECUs = SUM(ess.billing.total_ecu::DOUBLE) BY ess.billing.deployment_type, ess.billing.type" + }, + "timeField": "@timestamp" + } + } + } + }, + "filters": [], + "needsRefresh": false, + "query": { + "esql": "FROM metrics-ess_billing.billing-*\n| STATS total_ECUs = SUM(ess.billing.total_ecu::DOUBLE) BY ess.billing.deployment_type, ess.billing.type" + }, + "visualization": { + "layers": [ + { + "categoryDisplay": "default", "emptySizeRatio": 0.3, - "layerId": "26b528c1-3098-4152-ae1f-1c1e59d61e04", + "layerId": "791ea2d1-a33e-4fc4-a5e5-0f297b9493dc", "layerType": "data", "legendDisplay": "hide", - "legendSize": "small", "metrics": [ - "1d501ad6-5a57-4e37-aa8d-e1227858b119" + "total_ECUs" ], "nestedLegend": false, - "numberDisplay": "percent", - "percentDecimals": 1, + "numberDisplay": "value", "primaryGroups": [ - "3e339399-51fa-4618-9dda-b4ecf6220697", - "e0648c10-9af5-480d-8fe6-9a08048fb587" - ], - "truncateLegend": false + "ess.billing.deployment_type", + "ess.billing.type" + ] } ], - "palette": { - "name": "default", - "type": "palette" - }, "shape": "donut" } }, - "title": "", - "type": "lens", + "title": "Treemap", + "version": 1, "visualizationType": "lnsPie" }, "enhancements": { @@ -1645,22 +1861,21 @@ }, "filters": [], "query": { - "language": "kuery", - "query": "data_stream.dataset :\"ess_billing.billing\" " + "esql": "FROM metrics-ess_billing.billing-*\n| STATS total_ECUs = SUM(ess.billing.total_ecu::DOUBLE) BY ess.billing.deployment_type, ess.billing.type" }, "syncColors": false, "syncCursor": true, - "syncTooltips": false + "syncTooltips": false, + "title": "Consumption per feature" }, "gridData": { "h": 14, - "i": "57afeec6-583c-4f23-9264-d6243d92957f", + "i": "b829ba53-37cd-4ec5-aae6-341dcffa0489", "w": 10, "x": 38, - "y": 20 + "y": 34 }, - "panelIndex": "57afeec6-583c-4f23-9264-d6243d92957f", - "title": "Cost per deployments/projects", + "panelIndex": "b829ba53-37cd-4ec5-aae6-341dcffa0489", "type": "lens" }, { @@ -1740,7 +1955,7 @@ "10cdba83-4b9f-446e-a858-86576c05ff37": { "dataType": "string", "isBucketed": true, - "label": "Top values of ess.billing.deployment_type + 1 other", + "label": "Top values of ess.billing.type + 1 other", "operationType": "terms", "params": { "exclude": [], @@ -1758,12 +1973,12 @@ "id": "multi_terms" }, "secondaryFields": [ - "ess.billing.type" + "cloud.machine.type" ], "size": 9 }, "scale": "ordinal", - "sourceField": "ess.billing.deployment_type" + "sourceField": "ess.billing.type" }, "964a9602-36b4-4143-a4a5-4ef2ae4eeb20": { "customLabel": true, @@ -1902,8 +2117,10 @@ }, "title": "", "type": "lens", + "version": 1, "visualizationType": "lnsXY" }, + "description": "", "enhancements": { "dynamicActions": { "events": [] @@ -1916,17 +2133,17 @@ }, "syncColors": false, "syncCursor": true, - "syncTooltips": false + "syncTooltips": false, + "title": "ECH Capacity Costs per instance flavors over time" }, "gridData": { "h": 14, - "i": "62b36fc0-fd3f-42c3-adf8-678e39af680b", - "w": 38, + "i": "ca7e42b9-9981-4810-80ba-9b23b67e31d5", + "w": 24, "x": 0, - "y": 34 + "y": 48 }, - "panelIndex": "62b36fc0-fd3f-42c3-adf8-678e39af680b", - "title": "Cost per features over time", + "panelIndex": "ca7e42b9-9981-4810-80ba-9b23b67e31d5", "type": "lens" }, { @@ -1935,7 +2152,12 @@ "references": [ { "id": "metrics-*", - "name": "indexpattern-datasource-layer-26b528c1-3098-4152-ae1f-1c1e59d61e04", + "name": "indexpattern-datasource-layer-a417037b-2171-4ff8-aafe-3f7e2e503886", + "type": "index-pattern" + }, + { + "id": "metrics-*", + "name": "indexpattern-datasource-layer-c9af8b12-7fac-4ff6-9e4e-796c744c3f1d", "type": "index-pattern" } ], @@ -1943,26 +2165,25 @@ "adHocDataViews": {}, "datasourceStates": { "formBased": { - "currentIndexPatternId": "metrics-*", "layers": { - "26b528c1-3098-4152-ae1f-1c1e59d61e04": { + "a417037b-2171-4ff8-aafe-3f7e2e503886": { "columnOrder": [ - "733ef233-66c7-4fef-ab26-58dfc0796393", - "ad974b5a-545b-42d6-9690-073f2b8bff68", - "1d501ad6-5a57-4e37-aa8d-e1227858b119" + "fa9067f0-7641-4988-9297-58dd983cb390", + "d399e78a-8818-4562-acd2-80b9553066e5" ], "columns": { - "1d501ad6-5a57-4e37-aa8d-e1227858b119": { + "d399e78a-8818-4562-acd2-80b9553066e5": { "customLabel": true, "dataType": "number", "isBucketed": false, - "label": "Cost", + "label": "Total ECU cost", "operationType": "sum", "params": { "emptyAsNull": true, "format": { "id": "number", "params": { + "compact": false, "decimals": 0, "suffix": " ECUs" } @@ -1971,34 +2192,36 @@ "scale": "ratio", "sourceField": "ess.billing.total_ecu" }, - "733ef233-66c7-4fef-ab26-58dfc0796393": { - "dataType": "string", + "fa9067f0-7641-4988-9297-58dd983cb390": { + "customLabel": true, + "dataType": "date", "isBucketed": true, - "label": "Top 5 values of ess.billing.deployment_type", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "1d501ad6-5a57-4e37-aa8d-e1227858b119", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "terms" - }, - "size": 5 + "label": "Time", + "operationType": "date_histogram", + "params": { + "dropPartials": true, + "includeEmptyRows": true, + "interval": "d" }, - "sourceField": "ess.billing.deployment_type" - }, - "ad974b5a-545b-42d6-9690-073f2b8bff68": { + "scale": "interval", + "sourceField": "@timestamp" + } + }, + "ignoreGlobalFilters": false, + "incompleteColumns": {}, + "sampling": 1 + }, + "c9af8b12-7fac-4ff6-9e4e-796c744c3f1d": { + "columnOrder": [ + "10cdba83-4b9f-446e-a858-86576c05ff37", + "964a9602-36b4-4143-a4a5-4ef2ae4eeb20", + "f3a939b5-e9dc-4164-a59f-56e7a9aced2a" + ], + "columns": { + "10cdba83-4b9f-446e-a858-86576c05ff37": { "dataType": "string", "isBucketed": true, - "label": "Top 10 values of ess.billing.type", + "label": "Top values of ess.billing.type + 1 other", "operationType": "terms", "params": { "exclude": [], @@ -2007,40 +2230,67 @@ "includeIsRegex": false, "missingBucket": false, "orderBy": { - "columnId": "1d501ad6-5a57-4e37-aa8d-e1227858b119", + "columnId": "f3a939b5-e9dc-4164-a59f-56e7a9aced2a", "type": "column" }, "orderDirection": "desc", "otherBucket": true, "parentFormat": { - "id": "terms" + "id": "multi_terms" }, - "secondaryFields": [], - "size": 10 + "secondaryFields": [ + "ess.billing.cloud.service.type" + ], + "size": 9 }, "scale": "ordinal", "sourceField": "ess.billing.type" + }, + "964a9602-36b4-4143-a4a5-4ef2ae4eeb20": { + "customLabel": true, + "dataType": "date", + "isBucketed": true, + "label": "Time", + "operationType": "date_histogram", + "params": { + "dropPartials": true, + "includeEmptyRows": true, + "interval": "d" + }, + "scale": "interval", + "sourceField": "@timestamp" + }, + "f3a939b5-e9dc-4164-a59f-56e7a9aced2a": { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Deployment ECU cost", + "operationType": "sum", + "params": { + "emptyAsNull": true, + "format": { + "id": "number", + "params": { + "compact": false, + "decimals": 0, + "suffix": " ECUs" + } + } + }, + "scale": "ratio", + "sourceField": "ess.billing.total_ecu" } }, "ignoreGlobalFilters": false, "incompleteColumns": {}, - "indexPatternId": "metrics-*", "sampling": 1 } } }, "indexpattern": { - "currentIndexPatternId": "metrics-*", "layers": {} }, "textBased": { - "indexPatternRefs": [ - { - "id": "metrics-*", - "timeField": "@timestamp", - "title": "metrics-*" - } - ], "layers": {} } }, @@ -2048,12 +2298,32 @@ "internalReferences": [], "query": { "language": "kuery", - "query": "data_stream.dataset :\"ess_billing.billing\" " + "query": "data_stream.dataset :\"ess_billing.billing\" AND ess.billing.cloud.service.type: *" }, "visualization": { + "axisTitlesVisibilitySettings": { + "x": true, + "yLeft": false, + "yRight": true + }, + "fittingFunction": "None", "layers": [ { - "categoryDisplay": "default", + "accessors": [ + "f3a939b5-e9dc-4164-a59f-56e7a9aced2a" + ], + "layerId": "c9af8b12-7fac-4ff6-9e4e-796c744c3f1d", + "layerType": "data", + "position": "top", + "seriesType": "bar_stacked", + "showGridlines": false, + "splitAccessor": "10cdba83-4b9f-446e-a858-86576c05ff37", + "xAccessor": "964a9602-36b4-4143-a4a5-4ef2ae4eeb20" + }, + { + "accessors": [ + "d399e78a-8818-4562-acd2-80b9553066e5" + ], "colorMapping": { "assignments": [], "colorMode": { @@ -2074,28 +2344,38 @@ } ] }, - "emptySizeRatio": 0.3, - "layerId": "26b528c1-3098-4152-ae1f-1c1e59d61e04", + "layerId": "a417037b-2171-4ff8-aafe-3f7e2e503886", "layerType": "data", - "legendDisplay": "hide", - "metrics": [ - "1d501ad6-5a57-4e37-aa8d-e1227858b119" - ], - "nestedLegend": false, - "numberDisplay": "percent", - "percentDecimals": 1, - "primaryGroups": [ - "733ef233-66c7-4fef-ab26-58dfc0796393", - "ad974b5a-545b-42d6-9690-073f2b8bff68" + "position": "top", + "seriesType": "line", + "showGridlines": false, + "xAccessor": "fa9067f0-7641-4988-9297-58dd983cb390", + "yConfig": [ + { + "color": "#000000", + "forAccessor": "d399e78a-8818-4562-acd2-80b9553066e5" + } ] } ], - "shape": "donut" + "legend": { + "isVisible": true, + "legendSize": "auto", + "legendStats": [ + "total" + ], + "position": "right", + "showSingleSeries": true + }, + "preferredSeriesType": "bar_stacked", + "title": "Empty XY chart", + "valueLabels": "hide" } }, "title": "", "type": "lens", - "visualizationType": "lnsPie" + "version": 1, + "visualizationType": "lnsXY" }, "enhancements": { "dynamicActions": { @@ -2105,21 +2385,21 @@ "filters": [], "query": { "language": "kuery", - "query": "data_stream.dataset :\"ess_billing.billing\" " + "query": "data_stream.dataset :\"ess_billing.billing\" AND ess.billing.cloud.service.type: *" }, "syncColors": false, "syncCursor": true, - "syncTooltips": false + "syncTooltips": false, + "title": "Serverless features per service types over time" }, "gridData": { "h": 14, - "i": "dd9d7fe4-80a0-4e18-94cb-f2bb4c1f02a4", - "w": 10, - "x": 38, - "y": 34 + "i": "50054a4c-0c91-4410-9365-69dde704d232", + "w": 24, + "x": 24, + "y": 48 }, - "panelIndex": "dd9d7fe4-80a0-4e18-94cb-f2bb4c1f02a4", - "title": "Cost per features", + "panelIndex": "50054a4c-0c91-4410-9365-69dde704d232", "type": "lens" }, { @@ -2144,7 +2424,7 @@ "description": "", "params": { "fontSize": 12, - "markdown": "# 📈 Traffic", + "markdown": "# \ud83d\udcc8 Traffic", "openLinksInNewTab": false }, "title": "", @@ -2514,9 +2794,11 @@ "color": { "type": "loop" }, - "rule": { - "type": "other" - }, + "rules": [ + { + "type": "other" + } + ], "touched": false } ] @@ -2544,9 +2826,11 @@ "color": { "type": "loop" }, - "rule": { - "type": "other" - }, + "rules": [ + { + "type": "other" + } + ], "touched": false } ] @@ -2581,6 +2865,7 @@ }, "title": "", "type": "lens", + "version": 1, "visualizationType": "lnsXY" }, "enhancements": { @@ -2595,7 +2880,8 @@ }, "syncColors": false, "syncCursor": true, - "syncTooltips": false + "syncTooltips": false, + "title": "Ingress per deployment" }, "gridData": { "h": 14, @@ -2605,7 +2891,6 @@ "y": 66 }, "panelIndex": "04b837c4-86dd-4535-a732-5b0de9a94139", - "title": "Ingress per deployment", "type": "lens" }, { @@ -2960,9 +3245,11 @@ "color": { "type": "loop" }, - "rule": { - "type": "other" - }, + "rules": [ + { + "type": "other" + } + ], "touched": false } ] @@ -2990,9 +3277,11 @@ "color": { "type": "loop" }, - "rule": { - "type": "other" - }, + "rules": [ + { + "type": "other" + } + ], "touched": false } ] @@ -3027,6 +3316,7 @@ }, "title": "", "type": "lens", + "version": 1, "visualizationType": "lnsXY" }, "enhancements": { @@ -3041,7 +3331,8 @@ }, "syncColors": false, "syncCursor": true, - "syncTooltips": false + "syncTooltips": false, + "title": "Egress per deployment" }, "gridData": { "h": 14, @@ -3051,7 +3342,6 @@ "y": 66 }, "panelIndex": "0f377612-d063-410a-8c9d-17b82bb78222", - "title": "Egress per deployment", "type": "lens" }, { @@ -3076,7 +3366,7 @@ "description": "", "params": { "fontSize": 12, - "markdown": "# 🔎 Deployment drilldown", + "markdown": "# \ud83d\udd0e Deployment drilldown", "openLinksInNewTab": false }, "title": "", @@ -3295,6 +3585,7 @@ }, "title": "", "type": "lens", + "version": 1, "visualizationType": "lnsDatatable" }, "enhancements": { @@ -3328,7 +3619,8 @@ }, "syncColors": false, "syncCursor": true, - "syncTooltips": false + "syncTooltips": false, + "title": "" }, "gridData": { "h": 19, @@ -3338,13 +3630,11 @@ "y": 84 }, "panelIndex": "6c1840ba-460b-4882-8dd5-92aeb27c33a9", - "title": "", "type": "lens" }, { "embeddableConfig": { "attributes": { - "description": "", "layerListJSON": [ { "alpha": 0.75, @@ -3462,25 +3752,6 @@ "minZoom": 0, "sourceDescriptor": { "applyForceRefresh": true, - "columns": [ - { - "name": "cloud.geo.name", - "type": "keyword" - }, - { - "name": "Total spends", - "type": "double" - }, - { - "name": "Deployment count", - "type": "long" - }, - { - "name": "cloud.geo.location", - "type": "geo_point" - } - ], - "dataViewId": "d3b7e528216ce7ef65e68e07a803b7ab53e440cafdb52d9d7ee1ef4bbf5d8afa", "dateField": "@timestamp", "esql": "from metrics-*\n| WHERE data_stream.dataset == \"ess_billing.billing\"\n| STATS cloud.geo.name=VALUES(cloud.geo.name), `Total spends`=SUM(ess.billing.total_ecu), `Deployment count`=COUNT_DISTINCT(ess.billing.deployment_id) BY cloud.geo.location", "geoField": "cloud.geo.location", @@ -3691,18 +3962,17 @@ "isLayerTOCOpen": true, "mapBuffer": { "maxLat": 85.05113, - "maxLon": 720, + "maxLon": 540, "minLat": -85.05113, - "minLon": -540 + "minLon": -360 }, "mapCenter": { "lat": 9.05491, "lon": 101.72431, "zoom": 0.13 }, - "openTOCDetails": [ - "4743fd95-b5b4-45ab-ab7a-acb294f2ce8f" - ] + "openTOCDetails": [], + "title": "" }, "gridData": { "h": 19, @@ -3712,624 +3982,81 @@ "y": 84 }, "panelIndex": "256702fa-08ec-479d-a706-7c6299062a89", - "title": "", "type": "map" - }, - { - "embeddableConfig": { - "attributes": { - "references": [ - { - "id": "metrics-*", - "name": "indexpattern-datasource-layer-a417037b-2171-4ff8-aafe-3f7e2e503886", - "type": "index-pattern" - }, - { - "id": "metrics-*", - "name": "indexpattern-datasource-layer-c9af8b12-7fac-4ff6-9e4e-796c744c3f1d", - "type": "index-pattern" - } - ], - "state": { - "adHocDataViews": {}, - "datasourceStates": { - "formBased": { - "currentIndexPatternId": "metrics-*", - "layers": { - "a417037b-2171-4ff8-aafe-3f7e2e503886": { - "columnOrder": [ - "fa9067f0-7641-4988-9297-58dd983cb390", - "d399e78a-8818-4562-acd2-80b9553066e5" - ], - "columns": { - "d399e78a-8818-4562-acd2-80b9553066e5": { - "customLabel": true, - "dataType": "number", - "isBucketed": false, - "label": "Total ECU cost", - "operationType": "sum", - "params": { - "emptyAsNull": true, - "format": { - "id": "number", - "params": { - "compact": false, - "decimals": 0, - "suffix": " ECUs" - } - } - }, - "scale": "ratio", - "sourceField": "ess.billing.total_ecu" - }, - "fa9067f0-7641-4988-9297-58dd983cb390": { - "customLabel": true, - "dataType": "date", - "isBucketed": true, - "label": "Time", - "operationType": "date_histogram", - "params": { - "dropPartials": true, - "includeEmptyRows": true, - "interval": "d" - }, - "scale": "interval", - "sourceField": "@timestamp" - } - }, - "ignoreGlobalFilters": false, - "incompleteColumns": {}, - "indexPatternId": "metrics-*", - "sampling": 1 - }, - "c9af8b12-7fac-4ff6-9e4e-796c744c3f1d": { - "columnOrder": [ - "10cdba83-4b9f-446e-a858-86576c05ff37", - "964a9602-36b4-4143-a4a5-4ef2ae4eeb20", - "f3a939b5-e9dc-4164-a59f-56e7a9aced2a" - ], - "columns": { - "10cdba83-4b9f-446e-a858-86576c05ff37": { - "dataType": "string", - "isBucketed": true, - "label": "Top values of ess.billing.type + 1 other", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "f3a939b5-e9dc-4164-a59f-56e7a9aced2a", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "multi_terms" - }, - "secondaryFields": [ - "cloud.machine.type" - ], - "size": 9 - }, - "scale": "ordinal", - "sourceField": "ess.billing.type" - }, - "964a9602-36b4-4143-a4a5-4ef2ae4eeb20": { - "customLabel": true, - "dataType": "date", - "isBucketed": true, - "label": "Time", - "operationType": "date_histogram", - "params": { - "dropPartials": true, - "includeEmptyRows": true, - "interval": "d" - }, - "scale": "interval", - "sourceField": "@timestamp" - }, - "f3a939b5-e9dc-4164-a59f-56e7a9aced2a": { - "customLabel": true, - "dataType": "number", - "isBucketed": false, - "label": "Deployment ECU cost", - "operationType": "sum", - "params": { - "emptyAsNull": true, - "format": { - "id": "number", - "params": { - "compact": false, - "decimals": 0, - "suffix": " ECUs" - } - } - }, - "scale": "ratio", - "sourceField": "ess.billing.total_ecu" - } - }, - "ignoreGlobalFilters": false, - "incompleteColumns": {}, - "indexPatternId": "metrics-*", - "sampling": 1 - } - } - }, - "indexpattern": { - "currentIndexPatternId": "metrics-*", - "layers": {} - }, - "textBased": { - "indexPatternRefs": [ - { - "id": "metrics-*", - "timeField": "@timestamp", - "title": "metrics-*" - } - ], - "layers": {} - } - }, - "filters": [], - "internalReferences": [], - "query": { - "language": "kuery", - "query": "data_stream.dataset :\"ess_billing.billing\" " - }, - "visualization": { - "axisTitlesVisibilitySettings": { - "x": true, - "yLeft": false, - "yRight": true - }, - "fittingFunction": "None", - "layers": [ - { - "accessors": [ - "f3a939b5-e9dc-4164-a59f-56e7a9aced2a" - ], - "layerId": "c9af8b12-7fac-4ff6-9e4e-796c744c3f1d", - "layerType": "data", - "position": "top", - "seriesType": "bar_stacked", - "showGridlines": false, - "splitAccessor": "10cdba83-4b9f-446e-a858-86576c05ff37", - "xAccessor": "964a9602-36b4-4143-a4a5-4ef2ae4eeb20" - }, - { - "accessors": [ - "d399e78a-8818-4562-acd2-80b9553066e5" - ], - "colorMapping": { - "assignments": [], - "colorMode": { - "type": "categorical" - }, - "paletteId": "eui_amsterdam_color_blind", - "specialAssignments": [ - { - "color": { - "type": "loop" - }, - "rules": [ - { - "type": "other" - } - ], - "touched": false - } - ] - }, - "layerId": "a417037b-2171-4ff8-aafe-3f7e2e503886", - "layerType": "data", - "position": "top", - "seriesType": "line", - "showGridlines": false, - "xAccessor": "fa9067f0-7641-4988-9297-58dd983cb390", - "yConfig": [ - { - "color": "#000000", - "forAccessor": "d399e78a-8818-4562-acd2-80b9553066e5" - } - ] - } - ], - "legend": { - "isVisible": true, - "legendSize": "auto", - "legendStats": [ - "total" - ], - "position": "right", - "showSingleSeries": true - }, - "preferredSeriesType": "bar_stacked", - "title": "Empty XY chart", - "valueLabels": "hide" - } - }, - "title": "", - "type": "lens", - "visualizationType": "lnsXY" - }, - "description": "", - "enhancements": { - "dynamicActions": { - "events": [] - } - }, - "filters": [], - "query": { - "language": "kuery", - "query": "data_stream.dataset :\"ess_billing.billing\" " - }, - "syncColors": false, - "syncCursor": true, - "syncTooltips": false - }, - "gridData": { - "h": 14, - "i": "ca7e42b9-9981-4810-80ba-9b23b67e31d5", - "w": 24, - "x": 0, - "y": 48 - }, - "panelIndex": "ca7e42b9-9981-4810-80ba-9b23b67e31d5", - "title": "ECH Capacity Costs per instance flavors over time", - "type": "lens" - }, - { - "embeddableConfig": { - "attributes": { - "references": [ - { - "id": "metrics-*", - "name": "indexpattern-datasource-layer-a417037b-2171-4ff8-aafe-3f7e2e503886", - "type": "index-pattern" - }, - { - "id": "metrics-*", - "name": "indexpattern-datasource-layer-c9af8b12-7fac-4ff6-9e4e-796c744c3f1d", - "type": "index-pattern" - } - ], - "state": { - "adHocDataViews": {}, - "datasourceStates": { - "formBased": { - "currentIndexPatternId": "metrics-*", - "layers": { - "a417037b-2171-4ff8-aafe-3f7e2e503886": { - "columnOrder": [ - "fa9067f0-7641-4988-9297-58dd983cb390", - "d399e78a-8818-4562-acd2-80b9553066e5" - ], - "columns": { - "d399e78a-8818-4562-acd2-80b9553066e5": { - "customLabel": true, - "dataType": "number", - "isBucketed": false, - "label": "Total ECU cost", - "operationType": "sum", - "params": { - "emptyAsNull": true, - "format": { - "id": "number", - "params": { - "compact": false, - "decimals": 0, - "suffix": " ECUs" - } - } - }, - "scale": "ratio", - "sourceField": "ess.billing.total_ecu" - }, - "fa9067f0-7641-4988-9297-58dd983cb390": { - "customLabel": true, - "dataType": "date", - "isBucketed": true, - "label": "Time", - "operationType": "date_histogram", - "params": { - "dropPartials": true, - "includeEmptyRows": true, - "interval": "d" - }, - "scale": "interval", - "sourceField": "@timestamp" - } - }, - "ignoreGlobalFilters": false, - "incompleteColumns": {}, - "indexPatternId": "metrics-*", - "sampling": 1 - }, - "c9af8b12-7fac-4ff6-9e4e-796c744c3f1d": { - "columnOrder": [ - "10cdba83-4b9f-446e-a858-86576c05ff37", - "964a9602-36b4-4143-a4a5-4ef2ae4eeb20", - "f3a939b5-e9dc-4164-a59f-56e7a9aced2a" - ], - "columns": { - "10cdba83-4b9f-446e-a858-86576c05ff37": { - "dataType": "string", - "isBucketed": true, - "label": "Top values of ess.billing.type + 1 other", - "operationType": "terms", - "params": { - "exclude": [], - "excludeIsRegex": false, - "include": [], - "includeIsRegex": false, - "missingBucket": false, - "orderBy": { - "columnId": "f3a939b5-e9dc-4164-a59f-56e7a9aced2a", - "type": "column" - }, - "orderDirection": "desc", - "otherBucket": true, - "parentFormat": { - "id": "multi_terms" - }, - "secondaryFields": [ - "cloud.service.type" - ], - "size": 9 - }, - "scale": "ordinal", - "sourceField": "ess.billing.type" - }, - "964a9602-36b4-4143-a4a5-4ef2ae4eeb20": { - "customLabel": true, - "dataType": "date", - "isBucketed": true, - "label": "Time", - "operationType": "date_histogram", - "params": { - "dropPartials": true, - "includeEmptyRows": true, - "interval": "d" - }, - "scale": "interval", - "sourceField": "@timestamp" - }, - "f3a939b5-e9dc-4164-a59f-56e7a9aced2a": { - "customLabel": true, - "dataType": "number", - "isBucketed": false, - "label": "Deployment ECU cost", - "operationType": "sum", - "params": { - "emptyAsNull": true, - "format": { - "id": "number", - "params": { - "compact": false, - "decimals": 0, - "suffix": " ECUs" - } - } - }, - "scale": "ratio", - "sourceField": "ess.billing.total_ecu" - } - }, - "ignoreGlobalFilters": false, - "incompleteColumns": {}, - "indexPatternId": "metrics-*", - "sampling": 1 - } - } - }, - "indexpattern": { - "currentIndexPatternId": "metrics-*", - "layers": {} - }, - "textBased": { - "indexPatternRefs": [ - { - "id": "metrics-*", - "timeField": "@timestamp", - "title": "metrics-*" - } - ], - "layers": {} - } - }, - "filters": [], - "internalReferences": [], - "query": { - "language": "kuery", - "query": "data_stream.dataset :\"ess_billing.billing\" " - }, - "visualization": { - "axisTitlesVisibilitySettings": { - "x": true, - "yLeft": false, - "yRight": true - }, - "fittingFunction": "None", - "layers": [ - { - "accessors": [ - "f3a939b5-e9dc-4164-a59f-56e7a9aced2a" - ], - "layerId": "c9af8b12-7fac-4ff6-9e4e-796c744c3f1d", - "layerType": "data", - "position": "top", - "seriesType": "bar_stacked", - "showGridlines": false, - "splitAccessor": "10cdba83-4b9f-446e-a858-86576c05ff37", - "xAccessor": "964a9602-36b4-4143-a4a5-4ef2ae4eeb20" - }, - { - "accessors": [ - "d399e78a-8818-4562-acd2-80b9553066e5" - ], - "colorMapping": { - "assignments": [], - "colorMode": { - "type": "categorical" - }, - "paletteId": "eui_amsterdam_color_blind", - "specialAssignments": [ - { - "color": { - "type": "loop" - }, - "rules": [ - { - "type": "other" - } - ], - "touched": false - } - ] - }, - "layerId": "a417037b-2171-4ff8-aafe-3f7e2e503886", - "layerType": "data", - "position": "top", - "seriesType": "line", - "showGridlines": false, - "xAccessor": "fa9067f0-7641-4988-9297-58dd983cb390", - "yConfig": [ - { - "color": "#000000", - "forAccessor": "d399e78a-8818-4562-acd2-80b9553066e5" - } - ] - } - ], - "legend": { - "isVisible": true, - "legendSize": "auto", - "legendStats": [ - "total" - ], - "position": "right", - "showSingleSeries": true - }, - "preferredSeriesType": "bar_stacked", - "title": "Empty XY chart", - "valueLabels": "hide" - } - }, - "title": "", - "type": "lens", - "visualizationType": "lnsXY" - }, - "enhancements": { - "dynamicActions": { - "events": [] - } - }, - "filters": [], - "query": { - "language": "kuery", - "query": "data_stream.dataset :\"ess_billing.billing\" " - }, - "syncColors": false, - "syncCursor": true, - "syncTooltips": false - }, - "gridData": { - "h": 14, - "i": "50054a4c-0c91-4410-9365-69dde704d232", - "w": 24, - "x": 24, - "y": 48 - }, - "panelIndex": "50054a4c-0c91-4410-9365-69dde704d232", - "title": "Serverless features per service types over time", - "type": "lens" } ], - "timeRestore": false, - "title": "[Metrics ESS Billing] Billing dashboard", - "version": 3 + "timeFrom": "now-1y/d", + "timeRestore": true, + "timeTo": "now", + "title": "[Metrics ESS Billing] Billing dashboard" }, "coreMigrationVersion": "8.8.0", - "created_at": "2025-08-27T14:00:58.925Z", + "created_at": "2026-03-12T21:40:54.021Z", "id": "ess_billing-billingdashboard", "references": [ - { - "id": "ess_billing-billingdashboard", - "name": "2b4e81ec-acbf-4261-a518-6355b8ad9507:link_41ef1269-cf4b-479b-b6b1-e259df2f610e_dashboard", - "type": "dashboard" - }, - { - "id": "ess_billing-creditsdashboard", - "name": "2b4e81ec-acbf-4261-a518-6355b8ad9507:link_94e5341a-801b-40fd-91d5-69d0da0b2a83_dashboard", - "type": "dashboard" - }, { "id": "metrics-*", - "name": "2c1d1abc-1103-4a7a-bae0-811bff2cbbd7:indexpattern-datasource-layer-8c4e8172-eb9b-4d3b-822d-2cf041d9a9af", + "name": "controlGroup_148407b7-0d24-4a6d-8d7b-cda1deb607b0:optionsListDataView", "type": "index-pattern" }, { "id": "metrics-*", - "name": "f8867591-437e-4b1d-be5c-b5d5d606e742:indexpattern-datasource-layer-8c4e8172-eb9b-4d3b-822d-2cf041d9a9af", + "name": "controlGroup_148d1220-9036-47a3-b5c1-1cfb2242282f:optionsListDataView", "type": "index-pattern" }, { "id": "metrics-*", - "name": "7f12fd27-25ec-49dc-b933-355fd9240e84:indexpattern-datasource-layer-8c4e8172-eb9b-4d3b-822d-2cf041d9a9af", + "name": "controlGroup_847eb190-9f1e-43d3-b60e-11ed96fddbdb:optionsListDataView", "type": "index-pattern" }, { - "id": "metrics-*", - "name": "323689e7-0739-46dc-bf47-8f36487e7db4:indexpattern-datasource-layer-8c4e8172-eb9b-4d3b-822d-2cf041d9a9af", - "type": "index-pattern" + "id": "ess_billing-billingdashboard", + "name": "2b4e81ec-acbf-4261-a518-6355b8ad9507:link_41ef1269-cf4b-479b-b6b1-e259df2f610e_dashboard", + "type": "dashboard" }, { - "id": "metrics-*", - "name": "1786e834-ffd4-4303-b466-2fe2c5f9247b:indexpattern-datasource-layer-8c4e8172-eb9b-4d3b-822d-2cf041d9a9af", - "type": "index-pattern" + "id": "ess_billing-creditsdashboard", + "name": "2b4e81ec-acbf-4261-a518-6355b8ad9507:link_94e5341a-801b-40fd-91d5-69d0da0b2a83_dashboard", + "type": "dashboard" }, { "id": "metrics-*", - "name": "a3b36499-5bb7-4a5f-9ef5-9a9f5e0cf7e3:indexpattern-datasource-layer-26b528c1-3098-4152-ae1f-1c1e59d61e04", + "name": "bb12c1c0-bdd5-4342-bf93-6aa570ae79d6:indexpattern-datasource-layer-a417037b-2171-4ff8-aafe-3f7e2e503886", "type": "index-pattern" }, { "id": "metrics-*", - "name": "3d7876e6-13c8-4a0c-b512-0d12ca9dbbce:indexpattern-datasource-layer-c9af8b12-7fac-4ff6-9e4e-796c744c3f1d", + "name": "bb12c1c0-bdd5-4342-bf93-6aa570ae79d6:indexpattern-datasource-layer-c9af8b12-7fac-4ff6-9e4e-796c744c3f1d", "type": "index-pattern" }, { "id": "metrics-*", - "name": "bb12c1c0-bdd5-4342-bf93-6aa570ae79d6:indexpattern-datasource-layer-a417037b-2171-4ff8-aafe-3f7e2e503886", + "name": "62b36fc0-fd3f-42c3-adf8-678e39af680b:indexpattern-datasource-layer-a417037b-2171-4ff8-aafe-3f7e2e503886", "type": "index-pattern" }, { "id": "metrics-*", - "name": "bb12c1c0-bdd5-4342-bf93-6aa570ae79d6:indexpattern-datasource-layer-c9af8b12-7fac-4ff6-9e4e-796c744c3f1d", + "name": "62b36fc0-fd3f-42c3-adf8-678e39af680b:indexpattern-datasource-layer-c9af8b12-7fac-4ff6-9e4e-796c744c3f1d", "type": "index-pattern" }, { "id": "metrics-*", - "name": "57afeec6-583c-4f23-9264-d6243d92957f:indexpattern-datasource-layer-26b528c1-3098-4152-ae1f-1c1e59d61e04", + "name": "ca7e42b9-9981-4810-80ba-9b23b67e31d5:indexpattern-datasource-layer-a417037b-2171-4ff8-aafe-3f7e2e503886", "type": "index-pattern" }, { "id": "metrics-*", - "name": "62b36fc0-fd3f-42c3-adf8-678e39af680b:indexpattern-datasource-layer-a417037b-2171-4ff8-aafe-3f7e2e503886", + "name": "ca7e42b9-9981-4810-80ba-9b23b67e31d5:indexpattern-datasource-layer-c9af8b12-7fac-4ff6-9e4e-796c744c3f1d", "type": "index-pattern" }, { "id": "metrics-*", - "name": "62b36fc0-fd3f-42c3-adf8-678e39af680b:indexpattern-datasource-layer-c9af8b12-7fac-4ff6-9e4e-796c744c3f1d", + "name": "50054a4c-0c91-4410-9365-69dde704d232:indexpattern-datasource-layer-a417037b-2171-4ff8-aafe-3f7e2e503886", "type": "index-pattern" }, { "id": "metrics-*", - "name": "dd9d7fe4-80a0-4e18-94cb-f2bb4c1f02a4:indexpattern-datasource-layer-26b528c1-3098-4152-ae1f-1c1e59d61e04", + "name": "50054a4c-0c91-4410-9365-69dde704d232:indexpattern-datasource-layer-c9af8b12-7fac-4ff6-9e4e-796c744c3f1d", "type": "index-pattern" }, { @@ -4356,39 +4083,8 @@ "id": "metrics-*", "name": "6c1840ba-460b-4882-8dd5-92aeb27c33a9:indexpattern-datasource-layer-d4458216-7d1d-4314-aeca-e47939db8a25", "type": "index-pattern" - }, - { - "id": "metrics-*", - "name": "ca7e42b9-9981-4810-80ba-9b23b67e31d5:indexpattern-datasource-layer-a417037b-2171-4ff8-aafe-3f7e2e503886", - "type": "index-pattern" - }, - { - "id": "metrics-*", - "name": "ca7e42b9-9981-4810-80ba-9b23b67e31d5:indexpattern-datasource-layer-c9af8b12-7fac-4ff6-9e4e-796c744c3f1d", - "type": "index-pattern" - }, - { - "id": "metrics-*", - "name": "50054a4c-0c91-4410-9365-69dde704d232:indexpattern-datasource-layer-a417037b-2171-4ff8-aafe-3f7e2e503886", - "type": "index-pattern" - }, - { - "id": "metrics-*", - "name": "50054a4c-0c91-4410-9365-69dde704d232:indexpattern-datasource-layer-c9af8b12-7fac-4ff6-9e4e-796c744c3f1d", - "type": "index-pattern" - }, - { - "id": "metrics-*", - "name": "controlGroup_148407b7-0d24-4a6d-8d7b-cda1deb607b0:optionsListDataView", - "type": "index-pattern" - }, - { - "id": "metrics-*", - "name": "controlGroup_148d1220-9036-47a3-b5c1-1cfb2242282f:optionsListDataView", - "type": "index-pattern" } ], "type": "dashboard", - "typeMigrationVersion": "10.2.0", - "updated_by": "u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0" -} \ No newline at end of file + "typeMigrationVersion": "10.3.0" +} diff --git a/packages/ess_billing/manifest.yml b/packages/ess_billing/manifest.yml index 637406a54da..526872a1ce7 100644 --- a/packages/ess_billing/manifest.yml +++ b/packages/ess_billing/manifest.yml @@ -1,7 +1,7 @@ format_version: 3.3.2 name: ess_billing title: "Elasticsearch Service Billing" -version: "1.7.0" +version: "1.8.0" source: license: "Elastic-2.0" description: "Collects billing metrics from Elasticsearch Service billing API" diff --git a/packages/ess_billing/validation.yml b/packages/ess_billing/validation.yml new file mode 100644 index 00000000000..bcc8f74ac3a --- /dev/null +++ b/packages/ess_billing/validation.yml @@ -0,0 +1,3 @@ +errors: + exclude_checks: + - SVR00002