Getting started with Hypertrace on AWS EKS

Getting started with Hypertrace on AWS EKS

Step-by-step tutorial to deploy Hypertrace on AWS EKS

Modern Cloud Native applications are becoming increasingly complex. This is one reason companies are adapting managed services like EKS by AWS. Hypertrace, an open source distributed tracing and observability platform, can be deployed easily on any of the managed Kubernetes services provided by the major cloud providers.

In this post, we will show step-by-step how to can run Hypertrace on Elastic Kubernetes Service [EKS] on AWS.

Prerequisites

You'll need to install and configure the following tools to create and manage an Amazon EKS cluster.

  • AWS CLI – Command line tools for working with AWS services, including Amazon EKS.
  • eksctl – A command line tool for working with EKS clusters to automate many individual tasks.
  • kubectl – A command line tool for working with Kubernetes clusters.

Once you have these installed you can move to the next step. If you haven't, then check out these Detailed installation instructions available in AWS EKS Documentation. Once all are installed and configured, continue to the next step.

Creating EKS Cluster

We recommend at least t3.large instance for running Hypertrace on EKS. You can choose a larger size instance according to your use-case but t3.large should serve for testing purposes. [ t3.large instance for EKS comes with 8GB memory and 80GB storage.]

Use below command to create EKS cluster

eksctl create cluster \
--name hypertrace \
--version 1.16 \
--region us-west-2 \
--nodegroup-name standard-workers \
--node-type t3.large \
--nodes 3 \
--nodes-min 1 \
--nodes-max 4 \
--ssh-access \
--ssh-public-key my-public-key.pub \
--managed

Next, modify the following according to your requirements:

  • region: your choice.
  • Kubernetes version: 1.16 and newer
  • nodes: number of nodes you want to deploy hypertrace on

It might take 15 minutes for your cluster to be ready. Once you see the message [✓] EKS cluster "prod" in "us-west-2" region is ready as below, then you are good to go.

drawing
EKS cluster ready

Clone the Hypertrace repo

git clone https://github.com/hypertrace/hypertrace

Modify the hypertrace.properties file

cd hypertrace/kubernetes

Make sure your hypertrace.properties file in the config folder looks like the following. Set the HT_ENV variable to aws and the HT_KUBE_CONTEXT variable to EKS context.

space-1.jpg
Hypertrace properties

Okay! Now that we have everything in place let's install hypertrace.

Install Hypertrace on EKS cluster

Make sure you are in the hypertrace/kubernetes directory and run:

./hypertrace.sh install

This will install hypertrace on your EKS cluster.

You will know it's finished when you see the message Hypertrace installation complete as shown below.

drawing
Hypertrace installation complete

Let's see Hypertrace in action

Now we need to find external IP so we can access Hypertrace UI. For that, run

kubectl get services -n hypertrace

You will find external IP like below.

space-1.jpg
kubectl get services

Now you can visit Hypertrace UI at http://{external-IP}:2020

space-1.jpg
Hypertrace UI

Sending traces from the sample app

Well, that was easy! Now let's send some traces to Hypertrace so that we can see it in action and explore its features! If your application is already instrumented to send traces to Zipkin or Jaeger, it will work out-of-the-box with Hypertrace, just by changing the IP address to an external IP for the Hypertrace OC collector service.

Even if you don't have an application instrumented you can start quickly with our sample applications available here. If you need a platform and UI overview and want to understand what information each section serves, you can read the platform and UI overview here.

In a nutshell,

You can start exploring Hypertrace on AWS EKS with your own instrumented application or one of our sample applications!

References

About author
Jayesh is a founding engineer at Traceable where he works on Hypertrace and Hypertrace community building. He loves reading and you can find him on twitter and linkedin to discuss anything around tech.
Distributed TracingObservabilityHypertraceawscloudKubernetes