91 lines
3.2 KiB
YAML
91 lines
3.2 KiB
YAML
settings:
|
|
log_level: "info"
|
|
log_output: "text"
|
|
database_driver: "sqlite"
|
|
# PostgreSQL remains experimental and is disabled by default.
|
|
enable_experimental_postgres: false
|
|
database_url: "/var/lib/vctp/db.sqlite3"
|
|
reports_dir: /var/lib/vctp/reports
|
|
bind_ip:
|
|
bind_port: 9443
|
|
bind_disable_tls: false
|
|
tls_cert_filename: "/var/lib/vctp/vctp.crt"
|
|
tls_key_filename: "/var/lib/vctp/vctp.key"
|
|
# Optional explicit key source for credential encryption/decryption.
|
|
# Leave empty to use host-derived key material.
|
|
encryption_key: ""
|
|
vcenter_username: ""
|
|
vcenter_password: ""
|
|
vcenter_insecure: false
|
|
# Legacy API endpoints are disabled by default.
|
|
enable_legacy_api: false
|
|
auth_enabled: false
|
|
auth_mode: "disabled" # disabled | optional | required
|
|
auth_jwt_signing_key: "" # base64-encoded key, required when auth_enabled=true
|
|
auth_token_lifespan_minutes: 120
|
|
auth_jwt_issuer: "vctp"
|
|
auth_jwt_audience: "vctp-api"
|
|
auth_clock_skew_seconds: 60
|
|
auth_group_role_mappings: {}
|
|
ldap_groups: []
|
|
ldap_bind_address: ""
|
|
ldap_base_dn: ""
|
|
ldap_trust_cert_file: ""
|
|
ldap_disable_validation: false
|
|
ldap_insecure: false
|
|
enable_pprof: false
|
|
# Deprecated (ignored): legacy event poller
|
|
vcenter_event_polling_seconds: 0
|
|
# Deprecated (ignored): legacy inventory poller
|
|
vcenter_inventory_polling_seconds: 0
|
|
vcenter_inventory_snapshot_seconds: 3600
|
|
vcenter_inventory_aggregate_seconds: 86400
|
|
hourly_snapshot_concurrency: 0
|
|
hourly_snapshot_max_age_days: 60
|
|
daily_snapshot_max_age_months: 12
|
|
# Retain hourly-table indexes only for recent data.
|
|
# -1 disables index cleanup; 0 trims indexes from all hourly tables.
|
|
hourly_index_max_age_days: 7
|
|
snapshot_cleanup_cron: "30 2 * * *"
|
|
hourly_snapshot_retry_seconds: 300
|
|
hourly_snapshot_max_retries: 3
|
|
capture_write_batch_size: 1000
|
|
snapshot_table_compat_mode: true
|
|
async_report_generation: true
|
|
# Postgres-only: when true, vm_hourly_stats is migrated/managed as monthly range partitions.
|
|
postgres_vm_hourly_partitioning_enabled: false
|
|
# Scheduled aggregation engine: go (default) or sql (canonical Postgres SQL path rollout flag).
|
|
scheduled_aggregation_engine: "go"
|
|
hourly_job_timeout_seconds: 1200
|
|
hourly_snapshot_timeout_seconds: 600
|
|
daily_job_timeout_seconds: 900
|
|
monthly_job_timeout_seconds: 1200
|
|
monthly_aggregation_granularity: "daily"
|
|
monthly_aggregation_cron: "10 3 1 * *"
|
|
# Optional: override Summary worksheet pivot layout in daily/monthly XLSX reports.
|
|
# metric values: avg_vcpu, avg_ram, prorated_vm_count, vm_name_count
|
|
report_summary_pivots:
|
|
- metric: avg_vcpu
|
|
title: "Sum of Avg vCPUs"
|
|
pivot_name: "PivotAvgVcpu"
|
|
pivot_range: "Summary!A3:H60"
|
|
- metric: avg_ram
|
|
title: "Sum of Avg RAM"
|
|
pivot_name: "PivotAvgRam"
|
|
pivot_range: "Summary!J3:P60"
|
|
- metric: prorated_vm_count
|
|
title: "Sum of prorated VM count"
|
|
pivot_name: "PivotProratedVmCount"
|
|
pivot_range: "Summary!A63:H82"
|
|
title_cell: "A61"
|
|
- metric: vm_name_count
|
|
title: "Count of VM Name"
|
|
pivot_name: "PivotVmNameCount"
|
|
pivot_range: "Summary!J63:P82"
|
|
title_cell: "J61"
|
|
cleanup_job_timeout_seconds: 600
|
|
tenants_to_filter:
|
|
node_charge_clusters:
|
|
srm_activeactive_vms:
|
|
vcenter_addresses:
|