Skip to main content

Elasticsearch 2.x or earlier

Pulse is a powerful optimization platform designed for ensuring the stability and peak performance of your Elasticsearch (2.x or earlier) clusters while maintaining their health and efficiency.

For advanced configuration and fine-tuning options, visit our Advanced Adjustments page.

Deployment Options

Deploying the Pulse Agent for Elasticsearch 2.x or earlier clusters is simple and quick. You can choose from various deployment configurations.

Click on the deployment environment option to learn more:

Kubernetes

To deploy the Pulse Agent on Kubernetes, create the deployment spec in a file called pulse-deployment.yaml.

apiVersion: v1
kind: Secret
metadata:
name: pulse-config
type: Opaque
stringData:
PULSE_TOKEN: PULSE_TOKEN
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: pulse-agent
name: pulse-agent
namespace: default
spec:
replicas: 1
revisionHistoryLimit: 2
selector:
matchLabels:
app: pulse-agent
template:
metadata:
labels:
app: pulse-agent
spec:
automountServiceAccountToken: false
containers:
- image: r.bigdataboutique.com/pulse-agent
imagePullPolicy: Always
name: pulse-agent
env:
- name: PULSE_AGENT_HEAP_SIZE
value: 4G
- name: PULSE_TOKEN
valueFrom:
secretKeyRef:
name: pulse-config
key: PULSE_TOKEN
- name: ELASTICSEARCH2_HOSTS
value: ELASTICSEARCH2_HOSTS_VALUE
resources:
limits:
cpu: "1"
memory: 16Gi
requests:
cpu: 100m
memory: 4Gi
livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 1
readinessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 1
dnsPolicy: ClusterFirst
restartPolicy: Always

Next, replace the following values with:

Finally, apply the spec:

kubectl apply -f pulse-deployment.yaml

After successfully running the deployment command, the new cluster should appear on your Pulse homepage within a few minutes. You will receive an email notification once the cluster is available.

If the cluster doesn’t appear on the Pulse homepage or you encounter an error, please contact our support team via the Pulse system. Make sure to include your logs (including the error message) and deployment configuration.

Kubernetes via Helm

Create a values.yaml file using the command below:

image:
repository: r.bigdataboutique.com/pulse-agent
pullPolicy: Always
tag: latest

env:
- name: PULSE_AGENT_HEAP_SIZE
value: 4G
- name: ELASTICSEARCH2_HOSTS
value: ELASTICSEARCH2_HOSTS_VALUE

secretEnv:
PULSE_TOKEN: PULSE_TOKEN

Replace the following as needed:

Finally, apply the spec:


helm upgrade -i pulse-agent oci://europe-west1-docker.pkg.dev/bdbq-pulse/pulse-helm/pulse-agent --create-namespace
--namespace YOUR_NAMESPACE -f values.yaml

For a full list of values, run the following command:

helm show values oci://europe-west1-docker.pkg.dev/bdbq-pulse/pulse-helm/pulse-agent

After successfully running the deployment command, the new cluster should appear on your Pulse homepage within a few minutes. You will receive an email notification once the cluster is available.

If the cluster doesn’t appear on the Pulse homepage or you encounter an error, please contact our support team via the Pulse system. Make sure to include your logs (including the error message) and deployment configuration.

Docker

Use the following command:

docker run -d --name pulse-agent \
--restart=always \
--net=host \
--env PULSE_AGENT_HEAP_SIZE='4G' \
--env PULSE_TOKEN='PULSE_TOKEN' \
--env ELASTICSEARCH2_HOSTS='ELASTICSEARCH2_HOSTS_VALUE' \
r.bigdataboutique.com/pulse-agent

Replace the following as needed:

Confirm that the Agent is running and no errors are logged in the Agent.

After successfully running the deployment command, the new cluster should appear on your Pulse homepage within a few minutes. You will receive an email notification once the cluster is available.

If the cluster doesn’t appear on the Pulse homepage or you encounter an error, please contact our support team via the Pulse system. Make sure to include your logs (including the error message) and deployment configuration.

Amazon Elastic Container Service (ECS)

To deploy the Pulse Agent on ECS, you must first register the task definition and then create a service in your cluster.

Register the task definition

Before deploying the Pulse Agent on ECS, make sure that the task specification is registered with your AWS account. Note that this is not specific to a single ECS cluster.

To create the task definition, create a file called pulse-agent.json:

{
"family": "pulse-agent",
"containerDefinitions": [
{
"name": "pulse-agent",
"image": "r.bigdataboutique.com/pulse-agent",
"cpu": 1024,
"memory": 5120,
"portMappings": [],
"essential": true,
"environment": [
{
"name": "PULSE_AGENT_HEAP_SIZE",
"value": "4G"
},
{
"name": "PULSE_TOKEN",
"value": "PULSE_TOKEN"
},
{
"name": "ELASTICSEARCH2_HOSTS",
"value": "ELASTICSEARCH2_HOSTS_VALUE"
}
],
"environmentFiles": []
}
],
"networkMode": "awsvpc",
"requiresCompatibilities": [
"FARGATE"
],
"cpu": "1024",
"memory": "5120",
"runtimePlatform": {
"cpuArchitecture": "X86_64",
"operatingSystemFamily": "LINUX"
}
}

Replace the following as needed:

Next, register the task definition using this command:

aws ecs register-task-definition --cli-input-json file://pulse-agent.json

Create a service

After registering the task definition, create a service in the desired cluster. The Pulse Agent needs to be able to connect to both the monitored services and to https://incoming.pulse.support.

Make sure to select a subnet and security group that meets these requirements.

Use the following command to create a service:

aws ecs create-service --cluster ECS_CLUSTER_NAME \
--service-name pulse-agent \
--task-definition pulse-agent \
--desired-count 1 \
--launch-type "FARGATE" \
--network-configuration "awsvpcConfiguration={subnets=[subnet-abcd1234],securityGroups=[sg-abcd1234]}"

Replace the following as needed:

  • ECS_CLUSTER_NAME – The name of the ECS cluster to run the task on
  • subnet-abcd1234 – Subnets to use for the task
  • sg-abcd1234 – Security groups to use for the task

After successfully running the deployment command, the new cluster should appear on your Pulse homepage within a few minutes. You will receive an email notification once the cluster is available.

If the cluster doesn’t appear on the Pulse homepage or you encounter an error, please contact our support team via the Pulse system. Make sure to include your logs (including the error message) and deployment configuration.

Nomad

Deploying Pulse Agent on a Nomad cluster is simple. Here’s a sample job spec that will deploy just the Pulse Agent:

job "pulse_agent" {
datacenters = ["dc1"]
type = "service"
priority = 50

update {
canary = 1
auto_promote = true
}

group "main" {
network {
port "agent_healthz" {
to = 8080
}
}

task "agent" {
driver = "docker"
config {
image = "r.bigdataboutique.com/pulse-agent"
ports = ["agent_healthz"]

volumes = [
"secrets/config.yml:/etc/pulse-agent/config.yml",
]
}

template {
destination = "secrets/config.yml"
data = <<-EOF

pulseToken: PULSE_TOKEN

clusters:
- type: elasticsearch-2.x
hosts: ELASTICSEARCH2_HOSTS_VALUE

EOF
}

resources {
cpu = 100
memory = 16384
}

service {
name = "pulse-agent"
port = "agent_healthz"
provider = "nomad"

check {
type = "http"
path = "/healthz"
interval = "30s"
timeout = "2s"
}
}
}
}
}

Replace the following as needed:

Note: You can also place the task in your existing cluster job.

Assuming you use this job spec and save it as pulse_agent.nomad, upload the job spec to your Nomad cluster using this command:

nomad job run pulse_agent.nomad

After successfully running the deployment command, the new cluster should appear on your Pulse homepage within a few minutes. You will receive an email notification once the cluster is available.

If the cluster doesn’t appear on the Pulse homepage or you encounter an error, please contact our support team via the Pulse system. Make sure to include your logs (including the error message) and deployment configuration.

Cloud Run

Before deploying the Pulse Agent on Cloud Run, please refer to Direct VPC Access Limitations to see if Cloud Run works for you.

Create a file named cloudrun.yaml with the following content and replace the values <YOUR_REGION>, <YOUR_NETWORK>, <YOUR_SUBNET> and <PULSE_TOKEN> as explained below.

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: pulse-agent
annotations:
run.googleapis.com/launch-stage: BETA
labels:
cloud.googleapis.com/location: <YOUR_REGION>
spec:
template:
metadata:
annotations:
run.googleapis.com/network-interfaces: '[{"network":<YOUR_NETWORK>,"subnetwork":<YOUR_SUBNET>}]'
run.googleapis.com/vpc-access-egress: "private-ranges-only"
spec:
serviceAccountName: "cloudrun-pulse-agent"
containers:
- image: "r.bigdataboutique.com/pulse-agent:latest"
env:
- name: PULSE_AGENT_HEAP_SIZE
value: 4G
- name: PULSE_TOKEN
value: <PULSE_TOKEN>
resources:
limits:
cpu: "1"
memory: 4Gi
requests:
cpu: 100m
memory: 4Gi
livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 1
readinessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 1

Replace the following as needed:

  • <YOUR_REGION> – Your Cloud Run region
  • <YOUR_NETWORK> – Your Cloud Run network
  • <YOUR_SUBNET> – Your Cloud Run subnet, make sure that it’s within YOUR_REGION.
  • <PULSE_TOKEN> – The Pulse token for your organization (you can find it in the Account Settings of the Pulse Platform)

Run this command to deploy:

gcloud run services replace cloudrun.yaml --region YOUR_REGION

Replace the following as needed:

  • YOUR_REGION – Your Cloud Run region

After successfully running the deployment command, the new cluster should appear on your Pulse homepage within a few minutes. You will receive an email notification once the cluster is available.

If the cluster doesn’t appear on the Pulse homepage or you encounter an error, please contact our support team via the Pulse system. Make sure to include your logs (including the error message) and deployment configuration.