The hashiconf-demo repository is a demonstration project created for HashiConf NAPA 2016 that showcases the HashiCorp stack integrated with Circonus telemetry monitoring. The project builds upon Kelsey Hightower's HashiConf EU 2016 presentation but extends it by adding comprehensive telemetry data collection across all major components including Consul, Nomad, Vault, and Fabio. This integration allows users to observe metrics and performance data flowing into a Circonus monitoring account in real time.
The repository is written primarily in Shell and is classified across multiple DevOps and infrastructure domains including HashiCorp tooling, automation, cloud native technologies, service discovery, secret management, container orchestration, infrastructure as code, CI/CD, and application deployment. The project demonstrates how these technologies work together in a production-like environment with monitoring capabilities built in from the start.
The demonstration infrastructure consists of a three-node server cluster running Consul, Nomad, and Vault servers, with each server automatically generating corresponding Circonus metrics. These metrics include critical latency measurements represented as histograms alongside basic resource utilization data for CPU, memory, and disk usage. The setup also includes five client machines configured with Nomad in agent mode, each producing their own set of Circonus metrics with similar information to the servers. Additional infrastructure components include a MySQL instance for storing Vault secrets and a load balancer providing a single public IP for the entire deployment.
Once the basic infrastructure is established, users deploy two Nomad jobs: Consul running in agent mode and Fabio, a sophisticated software load balancer. Both jobs are configured to run single allocations on each of the five client machines and automatically generate corresponding Circonus metrics. The repository includes instructions for bootstrapping the HashiStack on Google Compute Engine, which serves as the foundation for the entire demonstration.
The project provides hands-on experience with several key workflows. Users can create Vault policies and tokens, configure service discovery using Consul, and set up load balancing with Fabio. The repository includes a sample application called hashiapp that can be deployed and managed through Nomad jobs. Users can experiment with starting and stopping the application, adjusting allocation counts between different versions, and observing how these changes are reflected in the metrics flowing into Circonus.
The demonstration supports scaling operations, allowing users to run different job configurations such as hashiapp-v1-c3 with three allocations or hashiapp-v1-c10 with ten allocations. Rolling upgrades are also supported, enabling users to switch between different application versions while monitoring the impact on system metrics. The repository includes instructions for viewing logs and sending traffic to the deployed applications, making it a comprehensive learning tool for understanding how HashiCorp products integrate with monitoring and observability solutions in a real-world scenario.