Skip to content

TN-008 β€” Verify Telegraf Health Check with Edkas-pc1 Alias

Field Value
Status Completed
Activity Type Verification or Audit
Record Type Live
Project Tomcat Monitoring
Phase Monitoring Integration and Runtime Deployment
Activity Date 2026-08-21
Recorded Date 2026-08-21
Owner Project owner
Working Mode Mixed
Authorization Status Approved
Approved By Project owner
Approval Date 2026-08-21

🎯 Objective

Menyelesaikan component verification Telegraf dengan mengakses endpoint metrics melalui alias network edkas-pc1.

🌍 Background

TN-004 belum dapat menutup component verification karena client pada network test tidak berhasil mengakses endpoint metrics menggunakan alias yang diminta. TN-007 kemudian menghasilkan image lokal Telegraf yang telah lulus smoke test. TN-008 mengulangi pengujian dengan topology sementara yang lebih jelas dan mencatat kondisi sehat, body mismatch, status mismatch, serta cleanup.

πŸ“š Scope

Aktivitas mencakup image lokal localhost/telegraf:1.0.0, network dan HTTP fixture sementara, alias edkas-pc1, pengujian tiga response, serta cleanup seluruh resource bernama tn008-*. Persistent runtime, host port, named volume, Prometheus, Tomcat production, TLS, alerting, deployment, dan publication tidak termasuk.

πŸ“‹ Criteria

Criterion Expected result
Runtime artifact Menggunakan localhost/telegraf:1.0.0 dari TN-007.
Metrics access Client sementara mengambil http://edkas-pc1:9273/metrics pada network test.
Healthy condition Fixture 200 dan body UP menghasilkan metric health.
Body mismatch Fixture 200 dengan body DOWN menunjukkan kegagalan check.
Status mismatch Fixture 404 menunjukkan kegagalan check.
Cleanup Container, network, dan temporary directory test dihapus.

🧭 Implementation Plan

Tahap Rencana
Review Test Readiness Memastikan resource tn008-* tidak ada dan image lokal tersedia.
Create the Isolated Network and Healthy Fixture Membuat network serta endpoint sementara dengan HTTP 200 dan body UP.
Start Telegraf with the Required Alias Menjalankan Telegraf menggunakan alias metrics edkas-pc1.
Retrieve Healthy Metrics through the Alias Mengambil metrics dari client sementara dan memeriksa kondisi sehat.
Verify the Body Mismatch Mengubah body menjadi DOWN dan memeriksa hasil Telegraf.
Verify the Status Mismatch Menghapus endpoint untuk menghasilkan HTTP 404.
Remove Every Temporary Resource Menghapus container, network, dan directory sementara lalu mengaudit cleanup.

βš™οΈ Implementation

Review Test Readiness

Purpose. Memastikan tidak ada resource tn008-* yang tertinggal dan image lokal hasil TN-007 tersedia sebelum test dimulai.

Command actually executed.

podman ps --all --filter name=tn008- --format '{{.Names}} {{.Status}}'
podman network ls --format '{{.Name}}' | rg '^tn008-telegraf-verify$' || true
podman image inspect localhost/telegraf:1.0.0 --format 'ID={{.Id}} User={{.Config.User}} Entrypoint={{json .Config.Entrypoint}}'

Expected Result

Tidak ada container atau network test yang sudah ada; image Telegraf lokal tersedia.

Actual Result: tidak ada resource tn008-* sebelum pengujian dan image Telegraf tersedia.

Evidence: dua query resource tidak menghasilkan output; image inspection mencatat ID 4f8c425e8fd8..., user telegraf, dan entrypoint yang benar.

Create the Isolated Network and Healthy Fixture

Purpose. Menyediakan endpoint non-production 200 dengan body UP yang hanya dapat diakses dari network test.

Command actually executed.

test ! -e /tmp/tn008-telegraf-verify && install -d -m 0700 /tmp/tn008-telegraf-verify/www && printf '%s\n' '{"status":"UP"}' > /tmp/tn008-telegraf-verify/www/health
podman network create tn008-telegraf-verify
podman run --detach --rm --name tn008-health-fixture --network tn008-telegraf-verify --network-alias tomcat-health-fixture --volume /tmp/tn008-telegraf-verify/www:/www:ro,Z docker.io/library/busybox:1.38.0 httpd -f -p 8080 -h /www

Expected Result

Network test dan fixture HTTP sementara dibuat tanpa host port, named volume, credential, atau target production.

Actual Result: network dan fixture sehat berhasil dibuat.

Evidence: container fixture dimulai dengan ID 5091ed936db2... pada network tn008-telegraf-verify.

Start Telegraf with the Required Alias

Purpose. Menjalankan image lokal TN-007 dengan configuration project dan alias yang diminta untuk endpoint metrics.

Command actually executed.

podman run --detach --rm --name tn008-telegraf --network tn008-telegraf-verify --network-alias edkas-pc1 --env TOMCAT_HEALTH_URL=http://tomcat-health-fixture:8080/health --volume /home/eddywiyatno/git/tomcat-monitoring/config/telegraf/health-check.conf:/etc/telegraf/telegraf.conf:ro,Z localhost/telegraf:1.0.0 --config /etc/telegraf/telegraf.conf
podman logs tn008-telegraf

Expected Result

Telegraf memuat http_response dan prometheus_client, kemudian listen secara internal pada :9273/metrics.

Actual Result: Telegraf berhasil berjalan dengan alias edkas-pc1 tanpa host port.

Evidence: log mencatat input, output, dan listener :9273/metrics; container ID 86bd8efe3068... tersedia selama test.

Retrieve Healthy Metrics through the Alias

Purpose. Membuktikan client sementara dapat menjangkau listener Telegraf melalui edkas-pc1, sekaligus memeriksa hasil kondisi sehat.

Command actually executed.

sleep 32
podman run --rm --network tn008-telegraf-verify docker.io/library/busybox:1.38.0 wget -qO- http://edkas-pc1:9273/metrics | rg '^http_response_'
podman logs tn008-telegraf
podman run --rm --network tn008-telegraf-verify docker.io/library/busybox:1.38.0 wget -qO- http://edkas-pc1:9273/metrics

Expected Result

Setelah satu interval 30s, client mengakses metrics melalui alias dan health response terlihat sebagai sukses.

Actual Result: filter pertama tidak menghasilkan baris dan tidak dianggap sukses. Pengambilan payload penuh melalui alias berhasil.

Evidence: payload memuat:

http_response_response_status_code_match{...,result="success",...,status_code="200"} 1
http_response_response_string_match{...,result="success",...,status_code="200"} 1
http_response_result_code{...,result="success",...,status_code="200"} 0

Alias edkas-pc1 karenanya terbukti dapat di-resolve dan diakses oleh client pada network test. Filter awal yang kosong dicatat sebagai diagnostic command yang tidak memberikan evidence, lalu dikoreksi dengan payload penuh.

Verify the Body Mismatch

Purpose. Membuktikan body yang tidak sesuai contract direkam sebagai kegagalan health check.

Command actually executed.

printf '%s\n' '{"status":"DOWN"}' > /tmp/tn008-telegraf-verify/www/health
podman run --rm --network tn008-telegraf-verify --env TOMCAT_HEALTH_URL=http://tomcat-health-fixture:8080/health --volume /home/eddywiyatno/git/tomcat-monitoring/config/telegraf/health-check.conf:/etc/telegraf/telegraf.conf:ro,Z --entrypoint /usr/bin/telegraf localhost/telegraf:1.0.0 --test --config /etc/telegraf/telegraf.conf

Expected Result

HTTP 200 dengan body DOWN memberikan status body mismatch.

Actual Result: Telegraf menandai response sebagai body mismatch.

Evidence: metric memuat result=response_string_mismatch, status_code=200, response_string_match=0i, dan result_code=1i.

Verify the Status Mismatch

Purpose. Membuktikan status selain 200 direkam sebagai kegagalan health check.

Command actually executed.

rm /tmp/tn008-telegraf-verify/www/health
podman run --rm --network tn008-telegraf-verify --env TOMCAT_HEALTH_URL=http://tomcat-health-fixture:8080/health --volume /home/eddywiyatno/git/tomcat-monitoring/config/telegraf/health-check.conf:/etc/telegraf/telegraf.conf:ro,Z --entrypoint /usr/bin/telegraf localhost/telegraf:1.0.0 --test --config /etc/telegraf/telegraf.conf

Expected Result

Endpoint fixture yang tidak ada memberikan status mismatch.

Actual Result: Telegraf menandai response HTTP 404 sebagai status mismatch.

Evidence: metric memuat result=response_status_code_mismatch, status_code=404, response_status_code_match=0i, dan result_code=6i.

Remove Every Temporary Resource

Purpose. Mengakhiri test tanpa menyisakan container, network, atau fixture file pada host.

Command actually executed.

podman rm --force tn008-telegraf tn008-health-fixture
podman network rm tn008-telegraf-verify
rm -rf /tmp/tn008-telegraf-verify
podman ps --all --filter name=tn008- --format '{{.Names}} {{.Status}}'
podman network ls --format '{{.Name}}' | rg '^tn008-telegraf-verify$' || true
test ! -e /tmp/tn008-telegraf-verify

Expected Result

Kedua container, network, dan temporary directory hilang.

Actual Result: kedua container, network, dan temporary directory berhasil dihapus. Fixture membutuhkan SIGKILL setelah tidak berhenti melalui SIGTERM dalam 10 detik.

Evidence: tiga pemeriksaan akhir tidak menghasilkan output dan test berhasil.

βœ… Verification Result

Semua criteria TN-008 terpenuhi. Dengan image lokal localhost/telegraf:1.0.0, client sementara berhasil mengambil endpoint metrics melalui alias edkas-pc1. Contract 200 + UP menghasilkan sukses, body DOWN menghasilkan response_string_mismatch, dan endpoint 404 menghasilkan response_status_code_mismatch.

Hasil ini menyelesaikan blocker network-client yang dicatat pada TN-004. Status Blocked pada TN-004 tetap merupakan catatan historis aktivitas tersebut; resolution dicatat secara append-oriented pada TN-008 ini, bukan dengan mengubah evidence masa lalu.

🧾 Outcome

TN-008 menutup blocker TN-004. Alias edkas-pc1 dapat diakses oleh client pada network test; kondisi 200 + UP, body DOWN, dan status 404 menghasilkan metric yang sesuai. Seluruh resource sementara telah dibersihkan.

Hasil ini terbatas pada component verification. Prometheus scrape, target Tomcat nyata, persistent deployment, dan external monitoring belum dibuktikan.

⚠️ Scope Boundary

Verifikasi ini membuktikan component Telegraf dan configuration health-check pada network test sementara saja. Ia tidak membuktikan scrape Prometheus, runtime Tomcat nyata, TLS, alerting, deployment, registry publication, atau commit. Tidak ada persistent container, host port, named volume, secret, atau production target yang dibuat.

🧾 Documentation Integrity Check

Purpose. Memastikan catatan hasil TN-008 dan index fase tidak memiliki error whitespace Git.

Command actually executed.

git -C /home/eddywiyatno/git/devops-handbook diff --check -- docs/projects/tomcat-monitoring/engineering-journal/monitoring-integration-and-runtime-deployment

Expected result. Tidak ada output dan exit code 0.

Actual result and evidence. Passed tanpa output dengan exit code 0.

πŸ”„ Source-Control Handoff

Hasil rangkaian implementasi dan verification Telegraf disimpan terpisah sesuai repository ownership:

Repository Commit Scope
telegraf cae6aab Generic Telegraf runtime dan lifecycle scripts.
tomcat-monitoring ce605b8 Health-check configuration, validator, dan integration baseline.
devops-handbook 3aadf6f Engineering Journal dan current-state documentation.

⏭️ Next Steps

Tidak ada tindak lanjut wajib untuk menutup component verification Telegraf. Integrasi Prometheus, target Tomcat nyata, dan deployment harus dibuka sebagai Technical Note baru dengan topology, resource, rollback, dan authorization terpisah.