Refactor to prometheus_client, JSON logging, and codebase cleanup

- Replace file-based metrics and HTTP server with prometheus_client
  (Gauge + start_http_server), eliminating file I/O race conditions
- Fix ThreadProbe and thread restart lambda bugs
- Switch logging from RotatingFileHandler to JSON stdout for fluentd/Loki
- Add PYTHONUNBUFFERED=1 to Dockerfile for immediate container log output
- Upgrade base image from python:3.12.3-slim to python:3.13-slim
- Upgrade pyvmomi to 9.0.0.0; pin pydantic>=2.9.0 and typing_extensions>=4.12.2
  to use pre-built Python 3.13 wheels (removes Rust toolchain from build)
- Remove unused packages: boto3, botocore, s3transfer, jmespath, redis,
  docopt, pyflakes, posthog
- Remove unused imports (Posthog, CaseInsensitiveDict) and dead variables
  (callhomestats, local_site_info, lastStats)
- Fix service_profile() NameError (siteidentifier -> serviceProfileIdentifier)
- Remove bare print() in zvma.py __authhandler__, replace with self.log.info()
- Remove all commented-out PostHog blocks from zvma10/zvma.py
- Delete legacy zvma9_7/ module and app/logs/ directory
- Remove deprecated 'version: 3.3' from docker-compose.yml

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-20 19:05:45 -05:00
parent a0afcefc78
commit 2836e1ae10
8 changed files with 364 additions and 516 deletions
+6 -8
View File
@@ -1,5 +1,3 @@
version: "3.3"
services:
zerto-exporter:
build: .
@@ -7,13 +5,13 @@ services:
- "9999:9999"
environment:
- VERIFY_SSL=False
- ZVM_HOST=192.168.50.60
- ZVM_HOST=192.168.50.30
- ZVM_PORT=443
- CLIENT_ID=api-script
- CLIENT_SECRET=fcYMFuA5TkIUwp6b3hDUxim0f32z8erk
#- CLIENT_ID=api-script
#- CLIENT_SECRET=fcYMFuA5TkIUwp6b3hDUxim0f32z8erk
- ZVM_USERNAME=admin
- ZVM_PASSWORD=Zertodata987!
- LOGLEVEL=INFO #Valid settings are CRITICAL, ERROR, WARNING, INFO, DEBUG
- VCENTER_HOST=192.168.50.50
- VCENTER_HOST=192.168.50.20
- VCENTER_USER=administrator@vsphere.local
- VCENTER_PASSWORD=Zertodata987!
volumes:
- "./logs:/usr/src/app/logs/"