Gathers OPcache and APCu statistics from different PHP servers into one dashboard and tracks metrics to statsD and Prometheus.
Clone this repository and than build:
make
Compiled binary may be installed:
make install
Also available Docker image:
docker run \
-p 42042:42042 \
-v "$(pwd)"/config.yaml:/config.yaml:ro \
gometric/opcache-dashboard:latest \
--config="/config.yaml"
See Dockerfile for details.
Example of configuration:
pullInterval: 5 # pull data from agent every 5 seconds
clusters: # cluster consists of node groups that share sabe codebase
myproject1: # name of cluster
groups: # group consists of nodes with same behavior
common: # name of group
urlPattern: "http://{host}:9999/agent-pull.php"
basicAuth: # optional, if Basic Auth required by endpoint
user: someuser
password: somepassword
hosts: # list of php nodes
- "127.0.0.1"
myproject2:
groups:
web:
urlPattern: "http://{host}:9999/agent-pull.php"
hosts:
- "127.0.0.1"
ui: # http host and port to serve ui and api requests
host: 127.0.0.1
port: 42042
metrics: # tool may send metrics to different backends
statsd: # tool sends metrics to statsd
enabled: false
host: 127.0.0.1 # statsd host
port: 8125 # statsd port
prefix: some.metric.prefix # prefix addet to all metrics
prometheus: # tool collects metrics, prometheus goest to metric url and scrapps data
enabled: true
Starting server:
opcache-dashboard \
--verbose \
--http-host="127.0.0.1" \
--http-port="42042" \
--pull-interval=5 \
--config="config.yaml"
Server periodically observes all of configured hosts.
Interval of observing specified in seconds in pull-interval
cli option of by related configuration parameter.
Also this server serves UI and API for watching gathered statistic on http-host
and http-port
defined in cli arguments.
Prometheus metrics available on API endpoint /api/nodes/statistics/prometheus
.