- StarTree Cloud
- Helm
- From Source
- Docker
- From Binary
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.Verify the Expected Output:Here are some important details:Details
Prerequisites
- Access to StarTree ThirdEye artifacts
- kubectl installed
kubectlis 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.Copy
Ask AI
# This assumes you are installing Thirdeye in the "thirdeye" namespace
namespace="thirdeye"
username="<YOUR_USERNAME>"
STARTREE_REPO_URL="<STARTREE_REPO_URL>"
ARTIFACTORY_API_KEY="<YOUR_API_KEY>"
kubectl create secret docker-registry startree -n $namespace \
--docker-server=$STARTREE_REPO_URL \
--docker-username=$username \
--docker-password=$ARTIFACTORY_API_KEY
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.Copy
Ask AI
STARTREE_HELM_REPO_URL="<STARTREE_HELM_REPO_URL>"
# Add stable helm repo
helm repo add helmstable https://charts.helm.sh/stable
helm repo add startree $STARTREE_HELM_REPO_URL --username $username --password $ARTIFACTORY_API_KEY
# Update your local repo
helm repo update
# fetch dependencies. example: mysql. See Chart.yaml
helm dependency update
startree-thirdeye chart is accessible.Copy
Ask AI
helm search repo startree-thirdeye
Copy
Ask AI
NAME CHART VERSION APP VERSION DESCRIPTION
startree/startree-thirdeye 2.4.0 0.5.0-SNAPSHOT One Stop Shop For Anomaly Detection.
Running Helm Install
Edit the following script to include your credentials.```Copy
Ask AI
# setup StarTree Docker repo
export DOCKER_CONTAINER_URL="<DOCKER_CONTAINER_URL>"
# Your ThirdEye domain name
export THIRDEYE_UI_PUBLIC_URL="http://thirdeye.internal.company.com"
# Artifact Versions
HELM_VERSION="2.6.0"
TE_VERSION="0.154.0"
TE_UI_VERSION="2.41.4"
helm install thirdeye startree/startree-thirdeye \
--version ${HELM_VERSION} \
-n $namespace \
--set image.repository="${DOCKER_CONTAINER_URL}/startree-thirdeye" \
--set ui.image.repository="${DOCKER_CONTAINER_URL}/startree-thirdeye-ui" \
--set ui.publicUrl="${THIRDEYE_UI_PUBLIC_URL}" \
--set image.tag=${TE_VERSION} \
--set ui.image.tag=${TE_UI_VERSION}
Upgrading ThirdEye
Copy
Ask AI
# For example, This upgrades ThirdEye to the desired development image.
helm upgrade --install thirdeye -n "${namespace}" . \
--set image.tag=${TE_VERSION} \
--set ui.image.tag=${TE_UI_VERSION}
Uninstalling ThirdEye
Copy
Ask AI
helm uninstall thirdeye -n $namespace
Configurations
To specify ThirdEye configurations, do one of the following:- Set parameters by adding
--set key=value[,key=value]arguments to thehelm installcommand. - Create a YAML file to specify parameters values, like this:
Copy
Ask AI
helm install thirdeye . -f values.yaml
Dynamic Secrets
ThirdEye has plugin infrastructure which lets you to create your own plugins. To avoid creatingSecret resources for the sensitive data for each new plugin, create dynamic secrets. For example, add the following information to a values.yaml file:Copy
Ask AI
secrets:
smtpUsername:
env: SMTP_USER
value: tobefedexternally
smtpPassword:
env: SMTP_PASSWORD
value: tobefedexternally
holidayLoaderKey:
encoded: true
value: <base 64 encoded json key>
- A single
Secretresource 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,smtpUsernameis injected as an environment variable with the variable nameSMTP_USERand valuetobefedexternally, whileholidayLoaderKeywon’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
base64encoded 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:Copy
Ask AI
helm install thirdeye . \
--set secrets.holidayLoaderKey.value="<base64 encoded key>" \
--set secrets.holidayLoaderKey.encoded=true
Custom Calendar List
The ThirdEye Helm chart has a default list of the following calendars:- en.australian#[email protected]
- en.austrian#[email protected]
- en.brazilian#[email protected]
- en.canadian#[email protected]
- en.china#[email protected]
- en.christian#[email protected]
- en.danish#[email protected]
- en.dutch#[email protected]
- en.finnish#[email protected]
- en.french#[email protected]
- en.german#[email protected]
- en.greek#[email protected]
- en.hong_kong#[email protected]
- en.indian#[email protected]
- en.indonesian#[email protected]
- en.irish#[email protected]
- en.islamic#[email protected]
- en.italian#[email protected]
- en.japanese#[email protected]
- en.jewish#[email protected]
- en.malaysia#[email protected]
- en.mexican#[email protected]
- en.new_zealand#[email protected]
- en.norwegian#[email protected]
- en.philippines#[email protected]
- en.polish#[email protected]
- en.portuguese#[email protected]
- en.russian#[email protected]
- en.singapore#[email protected]
- en.sa#[email protected]
- en.south_korea#[email protected]
- en.spain#[email protected]
- en.swedish#[email protected]
- en.taiwan#[email protected]
- en.uk#[email protected]
- en.usa#[email protected]
- en.vietnamese#[email protected]
Copy
Ask AI
helm install thirdeye . \
--set config.calendars="{en.australian#[email protected],en.austrian#[email protected]}"
SSL/TLS Support
To enable SSL/TLS on ThirdEye components, contact StarTree.Basic Authentication Support
To configure basic authentication, add the following to yourserver.yaml file:Copy
Ask AI
auth:
enabled: true
basic:
enabled: true
users:
- username: admin
- password: admin
| 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
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 |

