Skip to navigation

Set Up Mezmo Edge in a Docker Container

Getting Started

You can run Edge as a single Docker container within a suitable environment. In this deployment model, there is no default scaling other than the vertical scaling from the container resource allocation. You should be aware of this when planning your deployment resource allocation.

Environment

You must have access to a Docker environment with sufficient privileges

Set Environmental Variables

Set these default variables, including your Pipeline Service Key.

If you need a service key for your Edge instance, in your account go to Settings > Organization > API keys and find the “Service Keys” section at the bottom of the page.

export EDGE_ID=<your name here>
export MEZMO_API_URI=https://api.mezmo.com/v3/pipeline/account/local-deploy
export MEZMO_PIPELINE_SERVICE_KEY='your_key_here'

Add Config Files

Add these two .yamlfiles to your working directory.

compose.yaml

services:
edge:
image: 'mezmo/vector:8.0.1'
environment:
MEZMO_LOCAL_DEPLOY_AUTH_TOKEN: ${MEZMO_PIPELINE_SERVICE_KEY}
MEZMO_API_URI: ${MEZMO_API_URI}
MEZMO_EDGE_ID: ${EDGE_ID}
MEZMO_METRICS_ENDPOINT_URL: ${MEZMO_API_URI}/metric/usage?edge_id=${EDGE_ID}
MEZMO_TASKS_FETCH_ENDPOINT_URL: ${MEZMO_API_URI}/tasks?edge_id=${EDGE_ID}
MEZMO_TASKS_POST_ENDPOINT_URL: ${MEZMO_API_URI}/tasks/:task_id/results
MEZMO_RESHAPE_MESSAGE: 1
ports:
# these ports are designed to receive traffic from server-listener sources
# and are set up in the Mezmo Edge pipeline configuration UI
# EX: Fluent, Syslog, OpenTelemetry, Datadog Agent
- "8000-8010:8000-8010" # specify the port allocation range
volumes:
- ${PWD}/processor.yaml:/etc/vector/processor.yaml
# change this to a host mount to test specific volumes for disk buffering
- ${PWD}/tmp-data:/data/vector
command: ["--config-dir", "/etc/vector"]

processor.yaml

provider:
type: http
url: ${MEZMO_API_URI}/config
poll_interval_secs: 15
request:
headers:
authorization: "Token ${MEZMO_LOCAL_DEPLOY_AUTH_TOKEN}"
payload: |
{
"deployment_group": "<optional deployment group>",
"edge_id": "${MEZMO_EDGE_ID}",
"name": "edge",
"namespace": "default",
"ports": [8000, 8001, 8002, 8003, 8004, 8005, 8006, 8007, 8008, 8009, 8010],
"replica": "0",
"version": "edge-8.0.1"
}

Run Docker Compose

docker compose up -d

Start the Edge instance with this command:

docker ps