Internship project focused on implementing end-to-end observability for Coral-IO’s UWAS production platform using New Relic, Kubernetes, and Ansible automation.
⚠️ Due to confidentiality, the original source code and dashboards are private under Coral-IO’s internal GitLab environment.
This repository serves as a case study summarizing the project architecture, objectives, and outcomes.
During my internship at **Coral-IO **, I implemented an observability strategy for the UWAS web application — a cloud-native production system.
The goal was to enhance monitoring, tracing, and alerting across multiple microservices using New Relic, Ansible, and Kubernetes.
- Assess existing monitoring maturity using the Observability Maturity Model (OMM)
- Establish unified observability pipelines for infrastructure, applications, and user experience
- Automate New Relic agent installation and configuration via Ansible
- Integrate metrics, logs, and distributed tracing
- Create custom dashboards and performance KPIs for engineering teams
The implemented observability stack included:
| Layer | Tool | Purpose |
|---|---|---|
| Infrastructure | Kubernetes + Linux | Application hosting and orchestration |
| Monitoring | New Relic | Full-stack observability (APM, metrics, logs) |
| Automation | Ansible | Agent provisioning and configuration |
| Visualization | New Relic Dashboards | Metrics and KPI visualization |
| Alerting | New Relic Alerts | SLA and performance-based alert rules |
- Ansible deploys and configures New Relic agents on Kubernetes nodes.
- Agents collect application performance data, traces, and logs.
- Data is pushed to New Relic’s APM platform.
- Dashboards display live metrics, errors, and throughput.
- Alerts trigger based on pre-defined thresholds (response time, CPU, memory).
All setup was fully automated using Ansible, including:
- Installing New Relic infrastructure and APM agents
- Registering services automatically with New Relic
- Applying standardized dashboard templates per environment
Example playbook snippet:
- hosts: k8s_nodes
become: true
tasks:
- name: Install New Relic infrastructure agent
ansible.builtin.shell: |
curl -Ls https://download.newrelic.com/install/newrelic-cli/scripts/install.sh | bash
- name: Apply license key configuration
ansible.builtin.copy:
content: |
license_key: "{{ newrelic_license }}"
dest: /etc/newrelic-infra.yml