Install ThirdEye

ThirdEye is available as a managed platform with StarTree Cloud(opens in a new tab).
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

StarTree Cloud provides managed hosting for ThirdEye on all major cloud platforms, including AWS and GCP.

To start using ThirdEye in StarTree Cloud, do one of the following:

 

Helm

To install ThirdEye on Kubernetes using Helm, complete the steps in this doc.

Prerequisites

Access to StarTree ThirdEye artifacts

Contact StarTree(opens in a new tab) 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.

# 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.

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

Verify the startree-thirdeye chart is accessible.

helm search repo startree-thirdeye

Expected Output:

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.

# 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

# 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

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 the helm 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:

helm install thirdeye . -f values.yaml

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:

secrets:
  smtpUsername:
    env: SMTP_USER
    value: tobefedexternally
  smtpPassword:
    env: SMTP_PASSWORD
    value: tobefedexternally
  holidayLoaderKey:
    encoded: true
    value: <base 64 encoded json key>

Here are some important details:

  1. A single Secret resource is created with data fields corresponding to each entry in secrets.
  2. A secret data field is injected as an environment variable. In our example, we see the key env. In the server pods, if we pass envsmtpUsername is injected as an environment variable with the variable name SMTP_USER and value tobefedexternally, while holidayLoaderKey won’t be injected as environment variable.
  3. 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.
  4. 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/(opens in a new tab) for more details.

To install this feature:

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:

But if you want to pass a selected list of calendars, do this:

helm install thirdeye . \
  --set config.calendars="{en.australian#holiday@group.v.calendar.google.com,en.austrian#holiday@group.v.calendar.google.com}"

SSL/TLS Support

To enable SSL/TLS on ThirdEye components, contact StarTree(opens in a new tab).

Basic Authentication Support

To configure basic authentication, add the following to your server.yaml file:

auth:
  enabled: true
  basic:
    enabled: true
    users:
      - username: admin
      - password: admin

Details

Description

Flag to enable/disable auth

Other Customizations

Description

Docker repository where ThirdEye server image is present

From Source

Docker

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(opens in a new tab).

From Binary

Binaries are not publicly available yet, but you can build from the sources manually.

To be the first to know when public binaries are available, join the StarTree Community slack(opens in a new tab).

 

Recommended ThirdEye Version

Edition

Community

Version

2.6.0