Install ThirdEye
ThirdEye is available as a managed platform with StarTree Cloud.
It can also be installed from a binary file, from sources or using Docker.
Before you start, read ThirdEye Infrastructure Requirements for details about capacity planning, components, and deployment planning.
StarTree Cloud provides managed hosting for ThirdEye on all major cloud platforms, including AWS and GCP.
To start using ThirdEye in StarTree Cloud, sign up for StarTree Cloud.
StarTree Cloud provides managed hosting for ThirdEye on all major cloud platforms, including AWS and GCP.
To start using ThirdEye in StarTree Cloud, sign up for StarTree Cloud.
To install ThirdEye on Kubernetes using Helm, complete the steps in this doc.
Prerequisites
- Access to StarTree ThirdEye artifacts
- kubectl installed
kubectl
is connected to the k8s cluster where you want to install ThirdEye- Helm 3.x installed
Access to StarTree ThirdEye artifacts
Contact StarTree to obtain credentials to create a k8s secret that lets helm access ThirdEye source files.
Use these to set up access to the Artifactory repo.
ThirdEye Installation
To install ThirdEye, complete the follow steps to set up a Helm repo and run the Helm install.
Set up Helm repo
Edit the following script to include your credentials.
Verify the startree-thirdeye
chart is accessible.
Expected Output:
Running Helm Install
Edit the following script to include your credentials.```
Upgrading ThirdEye
Uninstalling ThirdEye
Configurations
To specify ThirdEye configurations, do one of the following:
- Set parameters by adding
--set key=value[,key=value]
arguments to thehelm install
command. - Create a YAML file to specify parameters values, like this:
Alternatively, you can create a YAML file that specifies the values for the parameters, then load it like this:
Dynamic Secrets
ThirdEye has plugin infrastructure which lets you to create your own plugins. To avoid creating Secret
resources for the sensitive data for each new plugin, create dynamic secrets. For example, add the following information to a values.yaml
file:
Here are some important details:
- A single
Secret
resource is created with data fields corresponding to each entry insecrets
. - A secret data field is injected as an environment variable. In our example, we see the key
env
. In the server pods, if we passenv
,smtpUsername
is injected as an environment variable with the variable nameSMTP_USER
and valuetobefedexternally
, whileholidayLoaderKey
won’t be injected as environment variable. - The values are processed as plain text by default and encoded internally unless you provide
encoded: true
, then the value isn’t encoded because Helm assumes the value is already encoded. - We recommend passing values other than simple strings (like the JSON payload) as
base64
encoded values to avoid parsing issues.
Holiday Events
ThirdEye lets you display events from external Google calendars. To enable this feature, provide a base64 encoded JSON key. See https://docs.simplecalendar.io/google-api-key/ for more details.
To install this feature:
Custom Calendar List
The ThirdEye Helm chart has a default list of the following calendars:
- en.australian#holiday@group.v.calendar.google.com
- en.austrian#holiday@group.v.calendar.google.com
- en.brazilian#holiday@group.v.calendar.google.com
- en.canadian#holiday@group.v.calendar.google.com
- en.china#holiday@group.v.calendar.google.com
- en.christian#holiday@group.v.calendar.google.com
- en.danish#holiday@group.v.calendar.google.com
- en.dutch#holiday@group.v.calendar.google.com
- en.finnish#holiday@group.v.calendar.google.com
- en.french#holiday@group.v.calendar.google.com
- en.german#holiday@group.v.calendar.google.com
- en.greek#holiday@group.v.calendar.google.com
- en.hong_kong#holiday@group.v.calendar.google.com
- en.indian#holiday@group.v.calendar.google.com
- en.indonesian#holiday@group.v.calendar.google.com
- en.irish#holiday@group.v.calendar.google.com
- en.islamic#holiday@group.v.calendar.google.com
- en.italian#holiday@group.v.calendar.google.com
- en.japanese#holiday@group.v.calendar.google.com
- en.jewish#holiday@group.v.calendar.google.com
- en.malaysia#holiday@group.v.calendar.google.com
- en.mexican#holiday@group.v.calendar.google.com
- en.new_zealand#holiday@group.v.calendar.google.com
- en.norwegian#holiday@group.v.calendar.google.com
- en.philippines#holiday@group.v.calendar.google.com
- en.polish#holiday@group.v.calendar.google.com
- en.portuguese#holiday@group.v.calendar.google.com
- en.russian#holiday@group.v.calendar.google.com
- en.singapore#holiday@group.v.calendar.google.com
- en.sa#holiday@group.v.calendar.google.com
- en.south_korea#holiday@group.v.calendar.google.com
- en.spain#holiday@group.v.calendar.google.com
- en.swedish#holiday@group.v.calendar.google.com
- en.taiwan#holiday@group.v.calendar.google.com
- en.uk#holiday@group.v.calendar.google.com
- en.usa#holiday@group.v.calendar.google.com
- en.vietnamese#holiday@group.v.calendar.google.com
But if you want to pass a selected list of calendars, do this:
SSL/TLS Support
To enable SSL/TLS on ThirdEye components, contact StarTree.
Basic Authentication Support
To configure basic authentication, add the following to your server.yaml
file:
Details
Property | Description |
---|---|
enabled | Flag to enable/disable auth |
basic.enabled | Flag to enable/disable Basic authentication filter |
basic.users[].username | Username for authentication |
basic.users[].password | Password for authentication |
Other Customizations
Property | Description |
---|---|
image.repository | Docker repository where ThirdEye server image is present |
image.tag | Docker image tag of ThirdEye server image |
ui.image.repository | Docker repository where ThirdEye UI image is present |
ui.image.tag | Docker image tag of ThirdEye UI image |
ui.port | UI service port |
ui.publicUrl | Url on which ThirdEye UI is exposed publicly. All the notifications will use this url to share the anomaly page link |
scheduler.enabled | Flag to run a separate scheduler. If not enabled then coordinator itself will take care of scheduling tasks |
worker.enabled | Flag to run a separate worker. If not enabled then coordinator itself will take care of running tasks |
worker.replicas | Number of worker pods required |
worker.randomWorkerIdEnabled | Flag to enable assigning random worker ids to worker pods. Must be set true for multiple workers. |
prometheus.enabled | Flag to expose prometheus metrics and adding annotations for prometheus to scrape the metrics |
mysql.enabled | Flag to disable MySQL deployment if using external instance |
mysql.url | Database URL if using external instance |
mysql.port | Database port if using external instance |
mysql.mysqlUser | Database username |
mysql.mysqlPassword | Database password |
mysql.persistence.size | Size of persistent volume created for database storage |
config.jdbcParameters | Config to pass additional parameters to the jdbc connection string |
[coordinator/worker/scheduler].strategy | Specifies the strategy used to replace old Pods by new ones. |
tls.[coordinator/worker/scheduler/ui].secretName | When provided it will override the default secret names referred for tls keys |
- See Build procedure on Github
The Docker image is not publicly available yet, but you can build it manually.
To be the first to know when public docker images are available, join the StarTree Community slack.
Binaries are not publicly available yet, but you can build from the sources manually.
- See Build on Github
- See Running from distribution
To be the first to know when public binaries are available, join the StarTree Community slack.
Recommended ThirdEye Version
Build | Edition | Version |
---|---|---|
helm chart | Community | 2.6.0 |
thirdeye | Community | 1.199.0 |
thirdeye-ui | Community | 2.41.4 |
startree-thirdeye | Enterprise | 0.154.0 |