From 4e9743bb6c9f8e15c7cde5157fc6838d5fd01606 Mon Sep 17 00:00:00 2001 From: Suchit Sahoo Date: Fri, 1 Mar 2024 20:05:13 +0000 Subject: [PATCH] Add Telemetry Service Documentation Signed-off-by: Suchit Sahoo --- CHANGELOG.md | 1 + docs/telemetry/img/ButtonClickFlow.drawio.png | Bin 0 -> 32334 bytes docs/telemetry/img/ModuleDiagram.drawio.png | Bin 0 -> 75735 bytes .../img/SendTelemetryReport.drawio.png | Bin 0 -> 98688 bytes docs/telemetry/telemetry.md | 978 ++++++++++++++++++ 5 files changed, 979 insertions(+) create mode 100644 docs/telemetry/img/ButtonClickFlow.drawio.png create mode 100644 docs/telemetry/img/ModuleDiagram.drawio.png create mode 100644 docs/telemetry/img/SendTelemetryReport.drawio.png create mode 100644 docs/telemetry/telemetry.md diff --git a/CHANGELOG.md b/CHANGELOG.md index d49655b69e70..a10c5dbd7dfa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -771,6 +771,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) - Document the correct version selection switch in `@osd/plugin-helpers` ([#2810](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/2810)) - Document the global query persistence ([#3001](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3001)) - Document data persistence for plugins ([#3081](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/3081)) +- Document telemetry services ([#6020](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/6020)) ### 🪛 Refactoring diff --git a/docs/telemetry/img/ButtonClickFlow.drawio.png b/docs/telemetry/img/ButtonClickFlow.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..b5e9fa12fd7884d03d59789906bdecd0826b578d GIT binary patch literal 32334 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 YczwW$%a0xW1Myh$GRo40lE%0GKe9HQng9R* literal 0 HcmV?d00001 diff --git a/docs/telemetry/img/ModuleDiagram.drawio.png b/docs/telemetry/img/ModuleDiagram.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..ce69a1dab917843b85a7463fa896e058b119a2b7 GIT binary patch literal 75735 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

g&YW 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 U#C^Lr=@j_EXc}m|Rt<8 literal 0 HcmV?d00001 diff --git a/docs/telemetry/img/SendTelemetryReport.drawio.png b/docs/telemetry/img/SendTelemetryReport.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..3ec9bd76b72b812782e73a06cd6b8ba091a2b193 GIT binary patch literal 98688 zcmeFZ2|ShS`afJsEmMXPlBpt*d6r?JXfTx_8CztYS>_?bLKC$sg%Ay7R*}p_(u7q) z$(S-^EHY$zuZOkDQv2-v{@(ZhKb`a2pR^}Vk9KB=v#Mnk!Ya>a@j zH2e1MKD1&5dGd-CWYwrOaOJXiR2=-X(*2N{@`~)*&3!9YDBs8KF~B-{TiH5TuHY6^ zS^UH;Ds1EIj^!5H%`GZ=%njpZ>nv#D?B*hfam4sKJHcm1_yO*6bUtQlWovnC@lH`; zQE>rbQ2|kDT~QHkF(pxP_#+}CC@mpnxOhLt+R}+ItcJ6%t%C!GTU1p-P#A{d)xcQT zI$@pNZMemh;rl)(tfd3|3zy-qmJa+efd7jKn~6x6N$r4-N-i!AmWM6P57=UnQN*MK z#U$Y}?}5F#8tUAlD)8CC*4`5SQM0tLcSasjv2k;Dge$5dq9TIA$p7G?4#o=OX1inv zWM!6EjP>HG91OHAw7tZ=+>eNE>?h>_k|+h@h09_~H*(9~aBT ztLARbUhbA|$YrrT+`>vQGV-68$}wAvwHpS=DC~rR87)v+8^|LdvN(h-fu;g`G*qn( z_8PeD_0>`~v-6R_7-}pZjX0*Gx0)Nq#YV&V*aGE_c@t(PE-bb<=rNzgD>BlAw^+Lo z-?QX`j;$|YLLx9(gc#Nyw#O{p7oR2Eh;?>$z}mWyUbJv_a$+K3@ z4usVa?s0*IliYz^(6PWc{CxGW?J+D!2qKu$5`^g?cki{dwYDL?Swxudiz9}3GvR`} z4d$4$*W&XFmzHv6k&Z-ax;Z<;cuSbJ^k?Etj@~Mk4v3f%=}34FNYnrOXTMX!?Yoxz ze;LleM@eg+tGkwjvYUpPmYJr(ZeLXa&=7>9?pPlpaV?JltqEV9-LN*!*3M2Chdn>8 zD!Vy*I2~J1a*$l*ANQy`JG%fWLDiM*EU{Q0g5Y30u+DJF2J7fR_!XAp=3@X~kmnb^ z96`PaN)W&9Mnv`dkGl~uUHo=T2@xOo>g4PM!T=8+Qw6g@_}v|gal;btuyDY*yW3j8 zO$(O^w;_{TTr#pwcn-e&g3g3X?#>==7KFQgNj}1T@Lp?6g0%heJ_+QV|5|u{h>)5k z7$u+(@Wsv20fV*mB%LURpgz{$??YJlcSH>CAxP-Io(p35mkIJOmnBA|)4xf4en`xM z0R4sd{2TZ#_AiafBFq0H8Bg#a|0cVEXz~9Fy8(**-)J`oX2TQX;6X5LI+kvpwqR

5glVSt0 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

8sAE`1XoijVK`152ykU@F5x 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 XUD7IlcvOQ2{@b@lZ+8yf=Jfvq(g?o2 literal 0 HcmV?d00001 diff --git a/docs/telemetry/telemetry.md b/docs/telemetry/telemetry.md new file mode 100644 index 000000000000..1669c29abb8b --- /dev/null +++ b/docs/telemetry/telemetry.md @@ -0,0 +1,978 @@ +# Telemetry Plugin +These features hasn't been enabled yet. This documentation discusses the current architecture of Telemetry Services within OpenSearch Dashboards. + +## Introduction + +The article covers the working of telemetry services within the OpenSearch Application. +Telemetry services provides various page level analytics and other tools to track users behaviour on OpenSearch Dashboards. Currently the user can either Opt In/ Opt out entirely of the telemetry, they can't opt In /opt Out for a specifc feature of telemetry. +The telemetry services are governed by the following four plugins. +* telemetry +* telemetry_collection_manager +* telemetry_management_section +* usage_collection + +THe relationship amongst the above plugins are described in the below diagram. + +![img](./img/ModuleDiagram.drawio.png) + + +## Details about plugins + +### telemetry plugin + +This plugin serves as the base for all the telemetric activity. It exposes APIs to set/get users optIn statuses for telemetry services while also exposing services to send reports to the server containing the telemetry data. + +#### Public APIs + +The `start` function exposes the following interface: + +- **TelemetryService**: + - `async fetchTelemetry()`: Collates the data from cluster stats, nodes stats, node usage and plugin usage. + - `async getIsOptedIn() => Promise`: An async function that resolves into `true` if the user has opted into send OpenSearch usage data. + Resolves to `false` if the user explicitly opted out of sending usage data to OpenSearch or did not choose + to opt-in or out yet after a minor or major upgrade (only when previously opted out). + - `async getTelemetryUrl() => Promise:` An async function that resolves into the telemetry Url used to send telemetry. The url is wrapped with node's [URL constructor](https://nodejs.org/api/url.html). Here is an example on how to grab the url origin: + ``` + const telemetryUrl = await getTelemetryUrl(); + > telemetryUrl.origin; // 'https://telemetry.opensearch.org' + ``` + Note that the telemetry URL is a opensearch_dashboards.yml configuration hence it is recommended to call the `getTelemetryUrl` everytime before using the actual url. + +#### Usage + +To use the exposed plugin start and setup contracts: + +1. Make sure `telemetry` is in your `optionalPlugins` in the `opensearch_dashboards.json` file: + +```json5 +// /opensearch_dashboards.json +{ +"id": "...", +"optionalPlugins": ["telemetry"] +} +``` + +2. Use the exposed contracts: +```ts +// /public/plugin.ts + +import { TelemetryPluginsStart } from '../telemetry/public`; + + +class MyPlugin { + public async start( + core: CoreStart, + { telemetry }: MyPlyginStartDeps + ) { + const isOptedIn = await telemetry?.telemetryService?.getIsOptedIn(); + ... + } +} +``` + + +### telemetry_collection_manager plugin: + +Telemetry's collection manager goes through all the telemetry sources when fetching it before reporting it. + +### telemetry_management_section: + +This plugin adds in functionality of Opting In/ Opting out of telemetry under the Advanced Settings Section. + +### usage_collection + +Usage Collection forms the basic unit that allows collection of usage data which is consumed by other services (like telemetry). The Usage Collection provides methods to create a new usage colector, register the new collector and also houses a predefined usage collector in UI Metric App. + +#### Public APIs +The `setup` method under `public` exposes following methods. + +- `async reportUiStats():` This method utilizes the UiMetric Usage collector to track the event and type of Metric. This method taks 2 parameters `METRIC_TYPE` and `event_name`. + +The `setup` method under `server` exposes following methods. + +- `makeUsageCollector(CollectorOptions) => UsageCollector` This method is used to create a new UsageCollector based on the CollectorOptions arguments. Please refer the schema section below to identify the right data types that could be used for T. + +- `registerCollector(Collector) => void`: This method is used to register a new collection to the collectorSet. + +- `makeStatsCollector(CollectorOptions) => Collector`: This method is used to create a new Collector based on the CollectorOptions arguments. Please refer the schema section below to identify the right data types that could be used for T. + +- `async bulkFetch(LegacyAPICaller,OpensearchClient) => Map`: This method provides the fetch response for each of the individual collectors, while filtering out the undefined responses. + +- `async bulkUsageFetch(LegacyAPICaller,OpensearchClient) => Map`: This method provides the fetch response for each of the UsageCollectors, while filtering out the undefined responses. + +#### Usage +```json5 +// /opensearch_dashboards.json +{ +"id": "...", +"optionalPlugins": ["usageCollection"] +} +``` + +2. Use the exposed contracts: +```ts +// /public/plugin.ts + +import { UsageCollectionSetup } from 'src/plugins/usage_collection/server'; + + interface Usage { + my_objects: { + total: number, + }, + } + +class MyPlugin { + public async start( + core: CoreStart, + plugins: { usageCollection?: UsageCollectionSetup } + ) { + plugins.usageCollection.makeUsageCollector({ + type: 'MY_USAGE_TYPE', + schema: { + my_objects: { + total: 'long', + }, + }, + fetch: async (callCluster: APICluster, opensearchClient: IClusterClient) => { + + // query OpenSearch and get some data + // summarize the data into a model + // return the modeled object that includes whatever you want to track + + return { + my_objects: { + total: SOME_NUMBER + } + }; + }, + }); + } +} +``` + +## Telemetry Report +The diagram below showcases the flow of how a telemetry Report is being sent. + +![img](./img/SendTelemetryReport.drawio.png) + +A sample telemetry report is shown below. + +```json + [ + { + "timestamp": "2024-02-28T23:00:03.741Z", + "cluster_uuid": "BO4QBTj1Q6-rg0hhreXsRA", + "cluster_name": "opensearch", + "version": "3.0.0-SNAPSHOT", + "cluster_stats": { + "cluster_uuid": "BO4QBTj1Q6-rg0hhreXsRA", + "timestamp": 1709161203730, + "status": "yellow", + "indices": { + "count": 3, + "shards": { + "total": 3, + "primaries": 3, + "replication": 0, + "index": { + "shards": { + "min": 1, + "max": 1, + "avg": 1 + }, + "primaries": { + "min": 1, + "max": 1, + "avg": 1 + }, + "replication": { + "min": 0, + "max": 0, + "avg": 0 + } + } + }, + "docs": { + "count": 37, + "deleted": 4 + }, + "store": { + "size_in_bytes": 85160, + "reserved_in_bytes": 0 + }, + "fielddata": { + "memory_size_in_bytes": 0, + "evictions": 0 + }, + "query_cache": { + "memory_size_in_bytes": 0, + "total_count": 0, + "hit_count": 0, + "miss_count": 0, + "cache_size": 0, + "cache_count": 0, + "evictions": 0 + }, + "completion": { + "size_in_bytes": 0 + }, + "segments": { + "count": 5, + "memory_in_bytes": 0, + "terms_memory_in_bytes": 0, + "stored_fields_memory_in_bytes": 0, + "term_vectors_memory_in_bytes": 0, + "norms_memory_in_bytes": 0, + "points_memory_in_bytes": 0, + "doc_values_memory_in_bytes": 0, + "index_writer_memory_in_bytes": 0, + "version_map_memory_in_bytes": 0, + "fixed_bit_set_memory_in_bytes": 240, + "max_unsafe_auto_id_timestamp": -1, + "remote_store": { + "upload": { + "total_upload_size": { + "started_bytes": 0, + "succeeded_bytes": 0, + "failed_bytes": 0 + }, + "refresh_size_lag": { + "total_bytes": 0, + "max_bytes": 0 + }, + "max_refresh_time_lag_in_millis": 0, + "total_time_spent_in_millis": 0, + "pressure": { + "total_rejections": 0 + } + }, + "download": { + "total_download_size": { + "started_bytes": 0, + "succeeded_bytes": 0, + "failed_bytes": 0 + }, + "total_time_spent_in_millis": 0 + } + }, + "segment_replication": { + "max_bytes_behind": 0, + "total_bytes_behind": 0, + "max_replication_lag": 0 + }, + "file_sizes": {} + }, + "mappings": { + "field_types": [ + { + "name": "boolean", + "count": 7, + "index_count": 2 + }, + { + "name": "date", + "count": 9, + "index_count": 2 + }, + { + "name": "integer", + "count": 21, + "index_count": 2 + }, + { + "name": "keyword", + "count": 43, + "index_count": 2 + }, + { + "name": "long", + "count": 12, + "index_count": 2 + }, + { + "name": "nested", + "count": 2, + "index_count": 2 + }, + { + "name": "object", + "count": 59, + "index_count": 2 + }, + { + "name": "text", + "count": 62, + "index_count": 2 + } + ] + }, + "analysis": { + "char_filter_types": [], + "tokenizer_types": [], + "filter_types": [], + "analyzer_types": [], + "built_in_char_filters": [], + "built_in_tokenizers": [], + "built_in_filters": [], + "built_in_analyzers": [] + } + }, + "nodes": { + "count": { + "total": 1, + "cluster_manager": 1, + "coordinating_only": 0, + "data": 1, + "ingest": 1, + "master": 1, + "remote_cluster_client": 1, + "search": 0 + }, + "versions": [ + "3.0.0" + ], + "os": { + "available_processors": 48, + "allocated_processors": 48, + "names": [ + { + "name": "Linux", + "count": 1 + } + ], + "pretty_names": [ + { + "pretty_name": "Ubuntu 22.04.3 LTS", + "count": 1 + } + ], + "mem": { + "total_in_bytes": 98983333888, + "free_in_bytes": 57885601792, + "used_in_bytes": 41097732096, + "free_percent": 58, + "used_percent": 42 + } + }, + "process": { + "cpu": { + "percent": 1 + }, + "open_file_descriptors": { + "min": 276, + "max": 276, + "avg": 276 + } + }, + "jvm": { + "max_uptime_in_millis": 13726615, + "versions": [ + { + "version": "21.0.2", + "vm_name": "OpenJDK 64-Bit Server VM", + "vm_version": "21.0.2+13-LTS", + "vm_vendor": "Eclipse Adoptium", + "bundled_jdk": true, + "using_bundled_jdk": true, + "count": 1 + } + ], + "mem": { + "heap_used_in_bytes": 568064768, + "heap_max_in_bytes": 1073741824 + }, + "threads": 255 + }, + "fs": { + "total_in_bytes": 520120602624, + "free_in_bytes": 486887292928, + "available_in_bytes": 486870515712, + "cache_reserved_in_bytes": 0 + }, + "plugins": [], + "network_types": { + "transport_types": { + "netty4": 1 + }, + "http_types": { + "netty4": 1 + } + }, + "discovery_types": { + "zen": 1 + }, + "packaging_types": [ + { + "type": "tar", + "count": 1 + } + ], + "ingest": { + "number_of_pipelines": 0, + "processor_stats": {} + }, + "usage": { + "nodes": [ + { + "timestamp": 1709161203730, + "since": 1709147480822, + "rest_actions": { + "nodes_usage_action": 20, + "document_update_action": 45, + "cat_plugins_action": 4, + "nodes_info_action": 10816, + "get_mapping_action": 19, + "document_index_action": 19, + "cat_indices_action": 20, + "get_indices_action": 12, + "create_index_action": 1, + "document_create_action_auto_id": 1, + "indices_stats_action": 19, + "cluster_stats_action": 40, + "search_action": 200, + "document_mget_action": 25, + "document_get_action": 165, + "document_delete_action": 52, + "count_action": 4, + "bulk_action": 58, + "main_action": 23 + }, + "aggregations": { + "terms": { + "bytes": 19 + } + }, + "node_id": "Om8Amo8STkWMBhUa0pwyGA" + } + ] + } + } + }, + "collection": "local", + "stack_stats": { + "data": [], + "opensearch_dashboards": { + "dashboard": { + "total": 0 + }, + "visualization": { + "total": 0 + }, + "search": { + "total": 0 + }, + "index_pattern": { + "total": 0 + }, + "graph_workspace": { + "total": 0 + }, + "count": 1, + "indices": 1, + "os": { + "platforms": [ + { + "platform": "linux", + "count": 1 + } + ], + "platformReleases": [ + { + "platformRelease": "linux-6.2.0-1017-aws", + "count": 1 + } + ], + "distros": [ + { + "distro": "Ubuntu", + "count": 1 + } + ], + "distroReleases": [ + { + "distroRelease": "Ubuntu-22.04", + "count": 1 + } + ] + }, + "versions": [ + { + "version": "3.0.0", + "count": 1 + } + ], + "plugins": { + "telemetry": { + "opt_in_status": true, + "usage_fetcher": "server" + }, + "stack_management": {}, + "ui_metric": { + "superPlugin": [ + { + "key": "clicked_get_time_button", + "value": 3 + }, + { + "key": "button_clicked", + "value": 2 + }, + { + "key": "opened_app", + "value": 44 + }, + { + "key": "superPulgin_button_clicked", + "value": 48 + } + ], + "console": [ + { + "key": "GET_search", + "value": 3 + }, + { + "key": "GET_cluster.stats", + "value": 1 + }, + { + "key": "GET_nodes.usage", + "value": 1 + }, + { + "key": "opened_app", + "value": 12 + } + ], + "opensearchDashboards-user_agent": [ + { + "key": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36", + "value": 1 + } + ], + "OpenSearch_Dashboards_home": [ + { + "key": "welcomeScreenMount", + "value": 3 + }, + { + "key": "sampleDataDecline", + "value": 3 + } + ] + }, + "application_usage": { + "home": { + "clicks_total": 42, + "clicks_7_days": 42, + "clicks_30_days": 42, + "clicks_90_days": 42, + "minutes_on_screen_total": 23.5473, + "minutes_on_screen_7_days": 23.5473, + "minutes_on_screen_30_days": 23.5473, + "minutes_on_screen_90_days": 23.5473 + }, + "dashboards": { + "clicks_total": 2, + "clicks_7_days": 2, + "clicks_30_days": 2, + "clicks_90_days": 2, + "minutes_on_screen_total": 0.0020833333333333333, + "minutes_on_screen_7_days": 0.0020833333333333333, + "minutes_on_screen_30_days": 0.0020833333333333333, + "minutes_on_screen_90_days": 0.0020833333333333333 + }, + "opensearchDashboardsOverview": { + "clicks_total": 1, + "clicks_7_days": 1, + "clicks_30_days": 1, + "clicks_90_days": 1, + "minutes_on_screen_total": 0.07795, + "minutes_on_screen_7_days": 0.07795, + "minutes_on_screen_30_days": 0.07795, + "minutes_on_screen_90_days": 0.07795 + }, + "management": { + "clicks_total": 52, + "clicks_7_days": 52, + "clicks_30_days": 52, + "clicks_90_days": 52, + "minutes_on_screen_total": 30.768516666666667, + "minutes_on_screen_7_days": 30.768516666666667, + "minutes_on_screen_30_days": 30.768516666666667, + "minutes_on_screen_90_days": 30.768516666666667 + }, + "superPlugin": { + "clicks_total": 181, + "clicks_7_days": 181, + "clicks_30_days": 181, + "clicks_90_days": 181, + "minutes_on_screen_total": 748.5297833333333, + "minutes_on_screen_7_days": 748.5297833333333, + "minutes_on_screen_30_days": 748.5297833333333, + "minutes_on_screen_90_days": 748.5297833333333 + }, + "dev_tools": { + "clicks_total": 57, + "clicks_7_days": 57, + "clicks_30_days": 57, + "clicks_90_days": 57, + "minutes_on_screen_total": 43.42594999999999, + "minutes_on_screen_7_days": 43.42594999999999, + "minutes_on_screen_30_days": 43.42594999999999, + "minutes_on_screen_90_days": 43.42594999999999 + } + }, + "csp": { + "strict": false, + "warnLegacyBrowsers": true, + "rulesChangedFromDefault": false + }, + "core": { + "config": { + "opensearch": { + "apiVersion": "7.x", + "sniffOnStart": false, + "sniffIntervalMs": -1, + "sniffOnConnectionFault": false, + "numberOfHostsConfigured": 1, + "customHeadersConfigured": false, + "healthCheckDelayMs": 2500, + "logQueries": false, + "pingTimeoutMs": 30000, + "requestHeadersWhitelistConfigured": false, + "requestTimeoutMs": 30000, + "shardTimeoutMs": 30000, + "ssl": { + "alwaysPresentCertificate": false, + "certificateAuthoritiesConfigured": false, + "certificateConfigured": false, + "keyConfigured": false, + "verificationMode": "full", + "truststoreConfigured": false, + "keystoreConfigured": false + } + }, + "http": { + "basePathConfigured": true, + "maxPayloadInBytes": 1048576, + "rewriteBasePath": true, + "keepaliveTimeout": 120000, + "socketTimeout": 120000, + "compression": { + "enabled": true, + "referrerWhitelistConfigured": false + }, + "xsrf": { + "disableProtection": false, + "whitelistConfigured": false + }, + "requestId": { + "allowFromAnyIp": false, + "ipAllowlistConfigured": false + }, + "ssl": { + "certificateAuthoritiesConfigured": false, + "certificateConfigured": false, + "cipherSuites": [ + "TLS_AES_256_GCM_SHA384", + "TLS_CHACHA20_POLY1305_SHA256", + "TLS_AES_128_GCM_SHA256", + "ECDHE-RSA-AES128-GCM-SHA256", + "ECDHE-ECDSA-AES128-GCM-SHA256", + "ECDHE-RSA-AES256-GCM-SHA384", + "ECDHE-ECDSA-AES256-GCM-SHA384", + "DHE-RSA-AES128-GCM-SHA256", + "ECDHE-RSA-AES128-SHA256", + "DHE-RSA-AES128-SHA256", + "ECDHE-RSA-AES256-SHA384", + "DHE-RSA-AES256-SHA384", + "ECDHE-RSA-AES256-SHA256", + "DHE-RSA-AES256-SHA256", + "HIGH", + "!aNULL", + "!eNULL", + "!EXPORT", + "!DES", + "!RC4", + "!MD5", + "!PSK", + "!SRP", + "!CAMELLIA" + ], + "keyConfigured": false, + "redirectHttpFromPortConfigured": false, + "supportedProtocols": [ + "TLSv1.1", + "TLSv1.2", + "TLSv1.3" + ], + "clientAuthentication": "none", + "keystoreConfigured": false, + "truststoreConfigured": false + } + }, + "logging": { + "appendersTypesUsed": [ + "legacy-appender" + ], + "loggersConfiguredCount": 0 + }, + "savedObjects": { + "maxImportPayloadBytes": 26214400, + "maxImportExportSizeBytes": 10000 + } + }, + "environment": { + "memory": { + "heapSizeLimit": 4345298944, + "heapTotalBytes": 167399424, + "heapUsedBytes": 152697808 + } + }, + "services": { + "savedObjects": { + "indices": [ + { + "alias": ".kibana", + "docsCount": 36, + "docsDeleted": 4, + "storeSizeBytes": 79582, + "primaryStoreSizeBytes": 79582 + } + ] + } + } + }, + "dql": { + "optInCount": 0, + "optOutCount": 0, + "defaultQueryLanguage": "default-kuery" + }, + "search": { + "successCount": 0, + "errorCount": 0, + "averageDuration": null + }, + "tsvb-validation": { + "failed_validations": 0 + }, + "localization": { + "locale": "en", + "integrities": {}, + "labelsCount": 0 + } + } + } + }, + "collectionSource": "local" + } + ] +``` + +## Tracking a Metric + +### Using the UI Metric App + +UI Metric App is predefined application that can be used to gather data about user interaction patterns within OpenSearch Dashboard UIs. It can gather information regarding the number of times a page has been loaded, number of clicks on a given Ui element or counting other interactions. + +#### Architecture + + ![img](./img/ButtonClickFlow.drawio.png) + +The above diagram shows the flow of how data is being recorded when user interacts with an UI element. + +THe UI Metric App saves the app and metric type in a savedObject of type `user-metric` and along the path `ui-metric:my_app:my_event`. + +```json + { + "ui_metric": { + "my_app": [{ + "key": "my_event", + "value": 3 + }] + } + } +``` + +This metrics are sent to the telemetry server using the workflow described above. + +#### How to Use it + +- Ensure `usageCollection` is in your optional Plugins + ```json + // plugin/opensearch_dashboards.json + { + "id": "...", + "optionalPlugins": ["usageCollection"] + } + ``` +- Register the Usage + ```ts + // public/plugin.ts + class Plugin { + setup(core, { usageCollection }) { + if (usageCollection) { + // Call the following method as many times as you want to report an increase in the count for this event + usageCollection.reportUiStats(``, usageCollection.METRIC_TYPE.CLICK, ``); + } + } + } + ``` + +- Metric Types + + - `METRIC_TYPE.CLICK` for tracking clicks `trackMetric(METRIC_TYPE.CLICK, 'my_button_clicked');` + - `METRIC_TYPE.LOADED` for a component load or page load `trackMetric(METRIC_TYPE.LOADED', 'my_component_loaded');` + - `METRIC_TYPE.COUNT` for a tracking a misc count `trackMetric(METRIC_TYPE.COUNT', 'my_counter', });` + +To track any event the plugin can call the function `trackUiMetric` which accepts two arguments `metricType` and `eventNames`. For example to track an event `my_click_event` we need to call +`trackUiMetric(METRIC_TYPE.CLICK, 'my_click_event')` + +❌ Avoid using `:` in the app name and event name since they carry a special role in how the metrics are stored as saved ojects. + +#### Verifying the results +`/api/stats`: Get the metrics and usage ([details](../../src/plugins/usage_collection/server/routes/stats/README.md)) + + +### Using a Custom Usage Collection +- Ensure `usageCollection` is in your optional Plugins: + ```json + // plugin/opensearch_dashboards.json + { + "id": "...", + "optionalPlugins": ["usageCollection"] + } + ``` + - Register Usage Collector in Setup + + ```ts + // server/plugin.ts + import { UsageCollectionSetup } from 'src/plugins/usage_collection/server'; + import { CoreSetup, CoreStart } from 'opensearch-dashboards/server'; + + class Plugin { + public setup(core: CoreSetup, plugins: { usageCollection?: UsageCollectionSetup }) { + registerMyPluginUsageCollector(plugins.usageCollection); + } + + public start(core: CoreStart) {} + } + ``` +- Creating and registering a Usage Collector. Ideally collectors would be defined in a separate directory `server/collectors/register.ts` + + + ```ts + // server/collectors/register.ts + import { UsageCollectionSetup } from 'src/plugins/usage_collection/server'; + import { APICluster } from 'opensearch-dashboards/server'; + + interface Usage { + my_objects: { + total: number, + }, + } + + export function registerMyPluginUsageCollector(usageCollection?: UsageCollectionSetup): void { + // usageCollection is an optional dependency, so make sure to return if it is not registered. + if (!usageCollection) { + return; + } + + // create usage collector + const myCollector = usageCollection.makeUsageCollector({ + type: 'MY_USAGE_TYPE', + schema: { + my_objects: { + total: 'long', + }, + }, + fetch: async (callCluster: APICluster, opensearchClient: IClusterClient) => { + + // query OpenSearch and get some data + // summarize the data into a model + // return the modeled object that includes whatever you want to track + + return { + my_objects: { + total: SOME_NUMBER + } + }; + }, + }); + + // register usage collector + usageCollection.registerCollector(myCollector); + } + ``` + + 💡 Background + + - `MY_USAGE_TYPE` can be any string. It usually matches the plugin name. As a safety mechanism, we double check there are no duplicates at the moment of registering the collector. + - The `fetch` method needs to support multiple contexts in which it is called. For example, when stats are pulled from a OpenSearch Dashboards Metricbeat module, the Beat calls OpenSearch Dashboards's stats API to invoke usage collection. + In this case, the `fetch` method is called as a result of an HTTP API request and `callCluster` wraps `callWithRequest` or `opensearchClient` wraps `asCurrentUser`, where the request headers are expected to have read privilege on the entire `.opensearch_dashboards' index. + + Note: there will be many cases where you won't need to use the `callCluster` (or `opensearchClient`) function that gets passed in to your `fetch` method at all. Your feature might have an accumulating value in server memory, or read something from the OS, or use other clients like a custom SavedObjects client. In that case it's up to the plugin to initialize those clients like the example below: + + ```ts +// server/plugin.ts +import { UsageCollectionSetup } from 'src/plugins/usage_collection/server'; +import { CoreSetup, CoreStart } from 'opensearch-dashboards/server'; + +class Plugin { + private savedObjectsRepository?: ISavedObjectsRepository; + + public setup(core: CoreSetup, plugins: { usageCollection?: UsageCollectionSetup }) { + registerMyPluginUsageCollector(() => this.savedObjectsRepository, plugins.usageCollection); + } + + public start(core: CoreStart) { + this.savedObjectsRepository = core.savedObjects.createInternalRepository(); + } +} +``` + +```ts +// server/collectors/register.ts +import { UsageCollectionSetup } from 'src/plugins/usage_collection/server'; + +export function registerMyPluginUsageCollector( + usageCollection?: UsageCollectionSetup + ): void { + // usageCollection is an optional dependency, so make sure to return if it is not registered. + if (!usageCollection) { + return; + } + + // create usage collector + const myCollector = usageCollection.makeUsageCollector(...) + + // register usage collector + usageCollection.registerCollector(myCollector); +} +``` + +#### Schema Field + +The `schema` field is a proscribed data model assists with detecting changes in usage collector payloads. To define the collector schema add a schema field that specifies every possible field reported when registering the collector. Whenever the `schema` field is set or changed please run `node scripts/telemetry_check.js --fix` to update the stored schema json files. + +##### Allowed Schema Types + +The `AllowedSchemaTypes` is the list of allowed schema types for the usage fields getting reported: + +``` +'keyword', 'text', 'number', 'boolean', 'long', 'date', 'float' +``` + +##### Arrays + +If any of your properties is an array, the schema definition must follow the convention below: + +``` +{ type: 'array', items: {...mySchemaDefinitionOfTheEntriesInTheArray} } +``` + +#### Verifying the results +The `/api/stats?extended=true&legacy=true` HTTP API in OpenSearch Dashboards (added in 6.4.0) will call the fetch methods of all the registered collectors, and add them to a stats object you can see in a browser or in curl. To test that your usage collector has been registered correctly and that it has the model of data you expected it to have, call that HTTP API manually and you should see a key in the `usage` object of the response named after your usage collector's `type` field. This method tests the Metricbeat scenario described above where `callCluster` wraps `callWithRequest`. + +