DevOps Guide
Overview
For a general overview of common devops tasks for Synapse services see Synapse Devops Guide - Overview.
Common DevOps Tasks
Deploy a Mirror
Inside the AHA container
Generate a one-time use URL for provisioning from inside the AHA container:
python -m synapse.tools.aha.provision.service 01.metrics --mirror metrics
You should see output that looks similar to this:
one-time use URL: ssl://aha.<yournetwork>:27272/<guid>?certhash=<sha256>
On the Host
Create the container storage directory:
mkdir -p /srv/syn/01.metrics/storage
chown -R 999 /srv/syn/01.metrics/storage
Create the /srv/syn/01.metrics/docker-compose.yaml
file with contents:
version: "3.3"
services:
01.metrics:
user: "999"
image: vertexproject/synapse-metrics:v2.x.x
network_mode: host
restart: unless-stopped
volumes:
- ./storage:/vertex/storage
environment:
# disable HTTPS API for now to prevent port collisions
- SYN_METRICS_HTTPS_PORT=null
- SYN_METRICS_AHA_PROVISION=ssl://aha.<yournetwork>:27272/<guid>?certhash=<sha256>
Note
Don’t forget to replace your one-time use provisioning URL!
Start the container:
docker-compose --file /srv/syn/01.metrics/docker-compose.yaml pull
docker-compose --file /srv/syn/01.metrics/docker-compose.yaml up -d
Devops Details
Major Version Upgrades
The storage format of versions <2.0.0 are incompatible with v2.x.x and cannot be upgraded in-place.
Cortex User Permission
If AHA provisioning is not used, the user account that is used to connect to the Cortex must have the sync
permission.
Docker Images
The Synapse-Metrics service is available as a Docker container from Docker Hub. The repository can be found at:
Note
There are tagged images available on Docker Hub which correspond to software releases seen in the changelog. The
docker tag master
is the latest development release. A generic major version tag is available, representing the
latest release on a given major version. For example, the v2.x.x
tag represents the most current release for
the v2.x.x
release line. You can utilize specific tagged versions, or a major version specifier, depending on
your chosen deployment strategy.
Configuration Options
The following is a list of available configuration options.
aha:admin
An AHA client certificate CN to register as a local admin user.
- Type
string
- Environment Variable
SYN_METRICS_AHA_ADMIN
aha:leader
The AHA service name to claim as the active instance of a storm service.
- Type
string
- Environment Variable
SYN_METRICS_AHA_LEADER
aha:name
The name of the cell service in the aha service registry.
- Type
string
- Environment Variable
SYN_METRICS_AHA_NAME
aha:network
The AHA service network. This makes aha:name/aha:leader relative names.
- Type
string
- Environment Variable
SYN_METRICS_AHA_NETWORK
aha:provision
The telepath URL of the aha provisioning service.
- Type
['string', 'array']
- Environment Variable
SYN_METRICS_AHA_PROVISION
aha:registry
The telepath URL of the aha service registry.
- Type
['string', 'array']
- Environment Variable
SYN_METRICS_AHA_REGISTRY
aha:user
The username of this service when connecting to others.
- Type
string
- Environment Variable
SYN_METRICS_AHA_USER
auth:anon
Allow anonymous telepath access by mapping to the given user name.
- Type
string
- Environment Variable
SYN_METRICS_AUTH_ANON
auth:passwd
Set to <passwd> (local only) to bootstrap the root user password.
- Type
string
- Environment Variable
SYN_METRICS_AUTH_PASSWD
backup:dir
A directory outside the service directory where backups will be saved. Defaults to ./backups in the service storage directory.
- Type
string
- Environment Variable
SYN_METRICS_BACKUP_DIR
cortex
The telepath URL for a Cortex.
- Type
string
- Environment Variable
SYN_METRICS_CORTEX
dmon:listen
A config-driven way to specify the telepath bind URL.
- Type
['string', 'null']
- Environment Variable
SYN_METRICS_DMON_LISTEN
https:headers
Headers to add to all HTTPS server responses.
- Type
object
- Environment Variable
SYN_METRICS_HTTPS_HEADERS
https:parse:proxy:remoteip
Enable the HTTPS server to parse X-Forwarded-For and X-Real-IP headers to determine requester IP addresses.
- Type
boolean
- Default Value
False
- Environment Variable
SYN_METRICS_HTTPS_PARSE_PROXY_REMOTEIP
https:port
A config-driven way to specify the HTTPS port.
- Type
['integer', 'null']
- Environment Variable
SYN_METRICS_HTTPS_PORT
layer:cull_deleted
Should layers deleted in the Cortex also be deleted in the Metrics storage.
- Type
boolean
- Default Value
True
- Environment Variable
SYN_METRICS_LAYER_CULL_DELETED
limit:disk:free
Minimum disk free space percentage before setting the cell read-only.
- Type
['integer', 'null']
- Default Value
5
- Environment Variable
SYN_METRICS_LIMIT_DISK_FREE
max:users
Maximum number of users allowed on system, not including root or locked/archived users (0 is no limit).
- Type
integer
- Default Value
0
- Environment Variable
SYN_METRICS_MAX_USERS
nexslog:en
Record all changes to a stream file on disk. Required for mirroring (on both sides).
- Type
boolean
- Default Value
False
- Environment Variable
SYN_METRICS_NEXSLOG_EN
onboot:optimize
Delay startup to optimize LMDB databases during boot to recover free space and increase performance. This may take a while.
- Type
boolean
- Default Value
False
- Environment Variable
SYN_METRICS_ONBOOT_OPTIMIZE