From 4de585e9be57599b463eaf252a5d3cd2a0555583 Mon Sep 17 00:00:00 2001 From: Yoofi Quansah Date: Mon, 5 Feb 2024 15:22:18 -0600 Subject: [PATCH 01/10] feat(analytics): add documentation for analytics --- configuration/analytics.mdx | 26 ++++++++++++++++++ configuration/overview.mdx | 15 ++++++++++ images/configuration/analytics_quick_view.png | Bin 0 -> 206535 bytes mint.json | 2 +- 4 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 configuration/analytics.mdx create mode 100644 images/configuration/analytics_quick_view.png diff --git a/configuration/analytics.mdx b/configuration/analytics.mdx new file mode 100644 index 0000000..9e83bfc --- /dev/null +++ b/configuration/analytics.mdx @@ -0,0 +1,26 @@ +--- +title: Analytics +description: This document describes various configuration mechanisms for controlling analytics for Flipt. +--- + +## Analytics + +Since [v1.37.0](https://github.com/flipt-io/flipt/releases/tag/v1.37.0) Flipt includes functionality for reporting analytical data to a configurable storage engine. + +Currently, Flipt has support for reporting data into: +- [Clickhouse](https://clickhouse.com/) + +The data that gets reported into the storage backends are currently: +- Flag Evaluation Count + +All of these analytics are viewable on the UI, and users can look back up to 12 hours of data for each metric. + +![UI For Analytics](/images/configuration/analytics_quick_view.png) + +The image above shows the past 30 minutes of evaluation(s) count for the flag `flag1`. + +## Considerations + +It is important to note that you are **required** to create a database called `flipt_analytics` so that Flipt will have a logically isolated instance to report data into without interrupting any of your possible existing data in other databases. + +The reason for this is not just a separation of concerns on a general level, but for possible data migrations and other related things via data on a technical level. diff --git a/configuration/overview.mdx b/configuration/overview.mdx index a9ce68a..1e165fd 100644 --- a/configuration/overview.mdx +++ b/configuration/overview.mdx @@ -320,6 +320,21 @@ export FLIPT_CORS_ALLOWED_ORIGINS="http://localhost:3000 http://localhost:3001" | audit.sinks.webhook.max_backoff_duration | Max exponential backoff duration for sending webhook upon failure | 15s | v1.27.0 | | audit.sinks.webhook.templates[] | List of webhook templates for Flipt to send audit events to | | v1.28.0 | +### Analytics + +| Property | Description | Default | Since | +| ------------------------------| -------------------------------------------------- | ------- | ------- | +| analytics.buffer.flush_period | Duration to wait before sending events to sinks | 10s | v1.37.0 | + +#### Analytics: Clickhouse + +| Property | Description | Default | Since | +| ------------------------------| ------------------------------------------------------------------------ | ------- | ------- | +| analytics.clickhouse.enabled | Switch for connection to clickhouse | false | v1.37.0 | +| analytics.clickhouse.url | URL for the clickhouse server | | v1.37.0 | +| analytics.clickhouse.username | Username for the clickhouse server | | v1.37.0 | +| analytics.clickhouse.password | Password for the clickhouse server | | v1.37.0 | + ### Tracing | Property | Description | Default | Since | diff --git a/images/configuration/analytics_quick_view.png b/images/configuration/analytics_quick_view.png new file mode 100644 index 0000000000000000000000000000000000000000..c4e14b31a6ba85fc92c2df8f1b7f0572e3243d25 GIT binary patch literal 206535 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�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

*} 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 literal 0 HcmV?d00001 diff --git a/mint.json b/mint.json index 3601029..f957a15 100644 --- a/mint.json +++ b/mint.json @@ -132,13 +132,13 @@ "configuration/observability", "configuration/storage", "configuration/telemetry", + "configuration/analytics", { "group": "Auditing", "pages": [ "configuration/auditing/overview", "configuration/auditing/webhooks" ] - } ] }, From faeaedacd337a4c250966b4688687bf6b3e15954 Mon Sep 17 00:00:00 2001 From: yquansah Date: Mon, 5 Feb 2024 21:26:44 +0000 Subject: [PATCH 02/10] chore: format code --- configuration/analytics.mdx | 2 ++ configuration/overview.mdx | 18 +++++++++--------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/configuration/analytics.mdx b/configuration/analytics.mdx index 9e83bfc..264d1ff 100644 --- a/configuration/analytics.mdx +++ b/configuration/analytics.mdx @@ -8,9 +8,11 @@ description: This document describes various configuration mechanisms for contro Since [v1.37.0](https://github.com/flipt-io/flipt/releases/tag/v1.37.0) Flipt includes functionality for reporting analytical data to a configurable storage engine. Currently, Flipt has support for reporting data into: + - [Clickhouse](https://clickhouse.com/) The data that gets reported into the storage backends are currently: + - Flag Evaluation Count All of these analytics are viewable on the UI, and users can look back up to 12 hours of data for each metric. diff --git a/configuration/overview.mdx b/configuration/overview.mdx index 1e165fd..b7b2d4f 100644 --- a/configuration/overview.mdx +++ b/configuration/overview.mdx @@ -322,18 +322,18 @@ export FLIPT_CORS_ALLOWED_ORIGINS="http://localhost:3000 http://localhost:3001" ### Analytics -| Property | Description | Default | Since | -| ------------------------------| -------------------------------------------------- | ------- | ------- | -| analytics.buffer.flush_period | Duration to wait before sending events to sinks | 10s | v1.37.0 | +| Property | Description | Default | Since | +| ----------------------------- | ----------------------------------------------- | ------- | ------- | +| analytics.buffer.flush_period | Duration to wait before sending events to sinks | 10s | v1.37.0 | #### Analytics: Clickhouse -| Property | Description | Default | Since | -| ------------------------------| ------------------------------------------------------------------------ | ------- | ------- | -| analytics.clickhouse.enabled | Switch for connection to clickhouse | false | v1.37.0 | -| analytics.clickhouse.url | URL for the clickhouse server | | v1.37.0 | -| analytics.clickhouse.username | Username for the clickhouse server | | v1.37.0 | -| analytics.clickhouse.password | Password for the clickhouse server | | v1.37.0 | +| Property | Description | Default | Since | +| ----------------------------- | ----------------------------------- | ------- | ------- | +| analytics.clickhouse.enabled | Switch for connection to clickhouse | false | v1.37.0 | +| analytics.clickhouse.url | URL for the clickhouse server | | v1.37.0 | +| analytics.clickhouse.username | Username for the clickhouse server | | v1.37.0 | +| analytics.clickhouse.password | Password for the clickhouse server | | v1.37.0 | ### Tracing From 3c8c2eb664b1c3e1ad08e4e70ac54dcda026a609 Mon Sep 17 00:00:00 2001 From: Yoofi Quansah Date: Wed, 7 Feb 2024 15:04:56 -0600 Subject: [PATCH 03/10] chore: add a bit more wording --- configuration/analytics.mdx | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/configuration/analytics.mdx b/configuration/analytics.mdx index 9e83bfc..bf58d4c 100644 --- a/configuration/analytics.mdx +++ b/configuration/analytics.mdx @@ -13,7 +13,7 @@ Currently, Flipt has support for reporting data into: The data that gets reported into the storage backends are currently: - Flag Evaluation Count -All of these analytics are viewable on the UI, and users can look back up to 12 hours of data for each metric. +All of these analytics are viewable on the UI, and users can look back up to 24 hours of data for each metric. ![UI For Analytics](/images/configuration/analytics_quick_view.png) @@ -21,6 +21,14 @@ The image above shows the past 30 minutes of evaluation(s) count for the flag `f ## Considerations -It is important to note that you are **required** to create a database called `flipt_analytics` so that Flipt will have a logically isolated instance to report data into without interrupting any of your possible existing data in other databases. +### Database -The reason for this is not just a separation of concerns on a general level, but for possible data migrations and other related things via data on a technical level. +It is important to note that we do *recommend** for you to a separate database for analytics produced by Flipt so that the data can logically isolated from the rest of your Clickhouse data. + +The reason for this is not just a separation of concerns on a general level, but for possible data migrations and other related things via data on a technical level if changes do arise on our end. + +### Origin of Analytics + +Analytics are only produced currently as they pass through the server, which means if you use the [server sdks](/integration/server/rest) or the various [grpc sdks](/integration/server/grpc), analytical data will be sent to the backing store. + +For client-side evaluation no metrics will be sent into clickhouse, but we are working on a feature to get it supported. From 1c96099157323ba6ad6c3e8f8a1da81ee5ca99c9 Mon Sep 17 00:00:00 2001 From: yquansah Date: Wed, 7 Feb 2024 21:05:36 +0000 Subject: [PATCH 04/10] chore: format code --- configuration/analytics.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configuration/analytics.mdx b/configuration/analytics.mdx index f6227cc..8107df5 100644 --- a/configuration/analytics.mdx +++ b/configuration/analytics.mdx @@ -25,7 +25,7 @@ The image above shows the past 30 minutes of evaluation(s) count for the flag `f ### Database -It is important to note that we do *recommend** for you to a separate database for analytics produced by Flipt so that the data can logically isolated from the rest of your Clickhouse data. +It is important to note that we do \*recommend\*\* for you to a separate database for analytics produced by Flipt so that the data can logically isolated from the rest of your Clickhouse data. The reason for this is not just a separation of concerns on a general level, but for possible data migrations and other related things via data on a technical level if changes do arise on our end. From a354ed5c38e4d04f97cc09de17bff76ac011886b Mon Sep 17 00:00:00 2001 From: Yoofi Quansah Date: Wed, 7 Feb 2024 15:20:42 -0600 Subject: [PATCH 05/10] chore: fix CI error --- .vale/styles/Flipt/spelling-exceptions.txt | 4 +++- configuration/analytics.mdx | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.vale/styles/Flipt/spelling-exceptions.txt b/.vale/styles/Flipt/spelling-exceptions.txt index 55a2923..85fe6d4 100644 --- a/.vale/styles/Flipt/spelling-exceptions.txt +++ b/.vale/styles/Flipt/spelling-exceptions.txt @@ -66,4 +66,6 @@ uncomment uncompromised URIs yaml -zipkin \ No newline at end of file +zipkin +clickhouse +Clickhouse \ No newline at end of file diff --git a/configuration/analytics.mdx b/configuration/analytics.mdx index f6227cc..183661e 100644 --- a/configuration/analytics.mdx +++ b/configuration/analytics.mdx @@ -33,4 +33,4 @@ The reason for this is not just a separation of concerns on a general level, but Analytics are only produced currently as they pass through the server, which means if you use the [server sdks](/integration/server/rest) or the various [grpc sdks](/integration/server/grpc), analytical data will be sent to the backing store. -For client-side evaluation no metrics will be sent into clickhouse, but we are working on a feature to get it supported. +For client-side evaluation no metrics will be sent into clickhouse, but we're working on a feature to get it supported. From 4dc397cd269b9dcf6c187503692f01415c0a0661 Mon Sep 17 00:00:00 2001 From: Yoofi Quansah Date: Wed, 7 Feb 2024 15:24:24 -0600 Subject: [PATCH 06/10] chore: another fix to CI error --- configuration/analytics.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configuration/analytics.mdx b/configuration/analytics.mdx index 6b09ac9..44fefc7 100644 --- a/configuration/analytics.mdx +++ b/configuration/analytics.mdx @@ -25,9 +25,9 @@ The image above shows the past 30 minutes of evaluation(s) count for the flag `f ### Database -It is important to note that we do \*recommend\*\* for you to a separate database for analytics produced by Flipt so that the data can logically isolated from the rest of your Clickhouse data. +It's important to note that we do \*recommend\*\* for you to a separate database for analytics produced by Flipt so that the data can logically isolated from the rest of your Clickhouse data. -The reason for this is not just a separation of concerns on a general level, but for possible data migrations and other related things via data on a technical level if changes do arise on our end. +The reason for this isn't just a separation of concerns on a general level, but for possible data migrations and other related things via data on a technical level if changes do arise on our end. ### Origin of Analytics From 95bc5ef814e4c214f78f6f2d4d2cac1b1f1c24c3 Mon Sep 17 00:00:00 2001 From: Mark Phelps <209477+markphelps@users.noreply.github.com> Date: Thu, 8 Feb 2024 09:41:21 -0500 Subject: [PATCH 07/10] Update analytics.mdx (#183) * Update analytics.mdx * chore: format code * chore: more words --------- Co-authored-by: markphelps --- configuration/analytics.mdx | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/configuration/analytics.mdx b/configuration/analytics.mdx index 44fefc7..02f9dfc 100644 --- a/configuration/analytics.mdx +++ b/configuration/analytics.mdx @@ -7,30 +7,35 @@ description: This document describes various configuration mechanisms for contro Since [v1.37.0](https://github.com/flipt-io/flipt/releases/tag/v1.37.0) Flipt includes functionality for reporting analytical data to a configurable storage engine. -Currently, Flipt has support for reporting data into: +Currently, Flipt has support for collecting data into: - [Clickhouse](https://clickhouse.com/) -The data that gets reported into the storage backends are currently: +The data that gets collected currently includes: - Flag Evaluation Count -All of these analytics are viewable on the UI, and users can look back up to 24 hours of data for each metric. +Once a storage backend is configured, these analytics are viewable in the UI allowing users to visualize up to 24 hours of data for each metric. ![UI For Analytics](/images/configuration/analytics_quick_view.png) -The image above shows the past 30 minutes of evaluation(s) count for the flag `flag1`. +The image above shows the past 30 minutes of the flag `flag1` evaluation counts. ## Considerations ### Database -It's important to note that we do \*recommend\*\* for you to a separate database for analytics produced by Flipt so that the data can logically isolated from the rest of your Clickhouse data. +We highly **recommend** using a separate database for analytics produced by Flipt. This ensures that Flipt analytic data can be logically isolated from the rest of your Clickhouse data. -The reason for this isn't just a separation of concerns on a general level, but for possible data migrations and other related things via data on a technical level if changes do arise on our end. + + The analytics database must be created before Flipt will be able to write + analytical data and run any migrations. See our + [migration](https://www.flipt.io/docs/configuration/storage#migrations) + section for more info. + ### Origin of Analytics -Analytics are only produced currently as they pass through the server, which means if you use the [server sdks](/integration/server/rest) or the various [grpc sdks](/integration/server/grpc), analytical data will be sent to the backing store. +Analytics are currently only collected as they pass through the evaluation server. This means that analytics will be captured if you are using the REST or GRPC APIs via one of our [Server SDKs](/integration/server/rest) or [GRPC SDKs](/integration/server/grpc) for evaluations. -For client-side evaluation no metrics will be sent into clickhouse, but we're working on a feature to get it supported. +We have plans to support collecting analytics for [Client-Side](/integration/client) evaluations in the future. From ef4cd303da0795cc82ec703b270e8658d7fae44e Mon Sep 17 00:00:00 2001 From: Mark Phelps <209477+markphelps@users.noreply.github.com> Date: Thu, 8 Feb 2024 09:53:45 -0500 Subject: [PATCH 08/10] chore: fix config settings --- .vale/styles/Flipt/spelling-exceptions.txt | 6 ++---- configuration/overview.mdx | 12 +++++------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/.vale/styles/Flipt/spelling-exceptions.txt b/.vale/styles/Flipt/spelling-exceptions.txt index 85fe6d4..6a1f767 100644 --- a/.vale/styles/Flipt/spelling-exceptions.txt +++ b/.vale/styles/Flipt/spelling-exceptions.txt @@ -4,6 +4,7 @@ auditable backoff boolean caddy +clickhouse codeowners codespaces config @@ -52,7 +53,6 @@ protoc Quicksort redis regexes -rflipt rollout rollouts SCMs @@ -66,6 +66,4 @@ uncomment uncompromised URIs yaml -zipkin -clickhouse -Clickhouse \ No newline at end of file +zipkin \ No newline at end of file diff --git a/configuration/overview.mdx b/configuration/overview.mdx index b7b2d4f..b84fd4b 100644 --- a/configuration/overview.mdx +++ b/configuration/overview.mdx @@ -236,7 +236,7 @@ export FLIPT_CORS_ALLOWED_ORIGINS="http://localhost:3000 http://localhost:3001" | storage.git.authentication.basic.username | The username to use for basic authentication | | v1.25.0 | | storage.git.authentication.basic.password | The password to use for basic authentication | | v1.25.0 | | storage.git.authentication.token | The access token to use for authentication | | v1.25.0 | -| storage.git.authentication.ssh.password | Password used to generate the SSH keypair | | v1.30.0 | +| storage.git.authentication.ssh.password | Password used to generate the SSH key pair | | v1.30.0 | | storage.git.authentication.ssh.private_key_path | Path to private key on the filesystem | | v1.30.0 | | storage.git.authentication.ssh.private_key_bytes | (Alternative) Raw private key bytes | | v1.30.0 | | storage.git.authentication.ssh.insecure_ignore_host_key | Skip verifying the known hosts key (avoid in production) | false | v1.30.0 | @@ -328,12 +328,10 @@ export FLIPT_CORS_ALLOWED_ORIGINS="http://localhost:3000 http://localhost:3001" #### Analytics: Clickhouse -| Property | Description | Default | Since | -| ----------------------------- | ----------------------------------- | ------- | ------- | -| analytics.clickhouse.enabled | Switch for connection to clickhouse | false | v1.37.0 | -| analytics.clickhouse.url | URL for the clickhouse server | | v1.37.0 | -| analytics.clickhouse.username | Username for the clickhouse server | | v1.37.0 | -| analytics.clickhouse.password | Password for the clickhouse server | | v1.37.0 | +| Property | Description | Default | Since | +| ------------------------------------ | ----------------------------------- | ------- | ------- | +| analytics.storage.clickhouse.enabled | Enable Clickhouse support | false | v1.37.0 | +| analytics.storage.clickhouse.url | URL to connect to clickhouse server | | v1.37.0 | ### Tracing From 8df75dc3fc3f29dc9962c30d19e56bdc409a9e1d Mon Sep 17 00:00:00 2001 From: Yoofi Quansah Date: Thu, 8 Feb 2024 12:13:22 -0600 Subject: [PATCH 09/10] chore: add documentation to the migrate command --- cli/commands/migrate.mdx | 5 +++-- configuration/analytics.mdx | 4 ++-- configuration/storage.mdx | 2 ++ 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/cli/commands/migrate.mdx b/cli/commands/migrate.mdx index 355a639..9a9bbdb 100644 --- a/cli/commands/migrate.mdx +++ b/cli/commands/migrate.mdx @@ -10,8 +10,9 @@ flipt migrate [flags] ### Options ``` - --config string path to config file - -h, --help help for migrate + --config string path to config file + --database string string to denote which database type to migrate (default "default") + -h, --help help for migrate ``` ### More Info diff --git a/configuration/analytics.mdx b/configuration/analytics.mdx index 44fefc7..7b9c9ed 100644 --- a/configuration/analytics.mdx +++ b/configuration/analytics.mdx @@ -15,7 +15,7 @@ The data that gets reported into the storage backends are currently: - Flag Evaluation Count -All of these analytics are viewable on the UI, and users can look back up to 24 hours of data for each metric. +These analytics are viewable on the UI, and users can look back up to 24 hours of data for each metric. ![UI For Analytics](/images/configuration/analytics_quick_view.png) @@ -31,6 +31,6 @@ The reason for this isn't just a separation of concerns on a general level, but ### Origin of Analytics -Analytics are only produced currently as they pass through the server, which means if you use the [server sdks](/integration/server/rest) or the various [grpc sdks](/integration/server/grpc), analytical data will be sent to the backing store. +Analytics are only produced currently as they pass through the server. This means you will receive data in your analytics database if your use either the [server sdks](/integration/server/rest) or the various [grpc sdks](/integration/server/grpc). For client-side evaluation no metrics will be sent into clickhouse, but we're working on a feature to get it supported. diff --git a/configuration/storage.mdx b/configuration/storage.mdx index 733dcf4..b6978e8 100644 --- a/configuration/storage.mdx +++ b/configuration/storage.mdx @@ -82,6 +82,8 @@ From time to time the Flipt database must be updated with new schema. To accomplish this, Flipt includes a `migrate` command that will run any pending database migrations for you. +By default Flipt will run your application data migrations. You can run migrations on your [analytical](/configuration/analytics) databases by specifying the `--database=analytics` flag to the migrate command. + If Flipt is started and there are pending migrations, you will see the following error in the console: From 7f9c70499d2d636b77f4402ab12e9c10626f60e0 Mon Sep 17 00:00:00 2001 From: yquansah Date: Thu, 8 Feb 2024 18:14:47 +0000 Subject: [PATCH 10/10] chore: format code --- configuration/storage.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configuration/storage.mdx b/configuration/storage.mdx index b6978e8..1786df1 100644 --- a/configuration/storage.mdx +++ b/configuration/storage.mdx @@ -82,7 +82,7 @@ From time to time the Flipt database must be updated with new schema. To accomplish this, Flipt includes a `migrate` command that will run any pending database migrations for you. -By default Flipt will run your application data migrations. You can run migrations on your [analytical](/configuration/analytics) databases by specifying the `--database=analytics` flag to the migrate command. +By default Flipt will run your application data migrations. You can run migrations on your [analytical](/configuration/analytics) databases by specifying the `--database=analytics` flag to the migrate command. If Flipt is started and there are pending migrations, you will see the following error in the console: