Skip to content

jbellister-slac/nalms

 
 

Repository files navigation

Next ALarM System

NALMS is an alarm system application designed for availability, integrability, and extensibility. The NALMS development was driven by SLAC's efforts to replace the Alarm Handler, due for deprecation as a Motif-based application, and to introduce process improvements addressing hierarchy implementation overhead, limited operator engagement, and operator display integration.

Full documentation is hosted at: https://slaclab.github.io/nalms/

Docker

This repository is packaged with tools for Docker based deployment. There are several reasons containerization is an advantageous:

  • The Kafka brokers may be straighforwardly deployed and the cluster scaled. Configurations are therefore transferable and port exposures may be configured directly on the Docker deployment.
  • Contained applications may run in parallel, facilitating blue/green deployment workflows.

This docker application consists of the following containers:

  • Zookeeper
  • Kafka
  • Phoebus Alarm Server
  • Phoebus Alarm Logger
  • Elasticsearch
  • Grafana
  • An Example IOC
  • Cruise Control

Docker-compose may be used to run a packaged example with all components.

$ docker-compose up

Once running, the cruise control dashboard is available at http://localhost:9090, and the grafana alarm log dashboard is available at http://localhost:3000. The alarm logger may need to be restarted if using docker compose, due to a slight delay in the alarm server startup.

Operations on the IOC for this demo can be performed by running caputs/cagets after attaching to the running container.

Packages

No packages published

Languages

  • Python 64.4%
  • Shell 28.4%
  • Dockerfile 7.2%