diff --git a/docker/prometheus/confd/templates/prometheus.tmpl b/docker/prometheus/confd/templates/prometheus.tmpl index fbb0ef4..e13be65 100644 --- a/docker/prometheus/confd/templates/prometheus.tmpl +++ b/docker/prometheus/confd/templates/prometheus.tmpl @@ -11,6 +11,15 @@ scrape_configs: scrape_interval: {{ getv "/time/opcua_scrape_interval"}}{{ getv "/time/opcua_scrape_interval_unit" }} static_configs: - targets: [ '127.0.0.1:8191' ] + labels: + __hostname__: {{ getv "/remote_write/data_source_label" }} + relabel_configs: + - source_labels: + - "__hostname__" + regex: (.*) + target_label: source + action: replace + replacement: {{ getv "/remote_write/data_source_label" }} {{ if getv "/remote_write/state" }} remote_write: - url: {{ getv "/remote_write/url" }} diff --git a/management-panel/app/Filament/Pages/ManageRemoteWrite.php b/management-panel/app/Filament/Pages/ManageRemoteWrite.php index 76dc803..c6d5886 100644 --- a/management-panel/app/Filament/Pages/ManageRemoteWrite.php +++ b/management-panel/app/Filament/Pages/ManageRemoteWrite.php @@ -32,6 +32,11 @@ class ManageRemoteWrite extends SettingsPage ->url() ->placeholder("http://remote-storage.example.com/api/v1/write"), + // 数据源名陈 + Forms\Components\TextInput::make('data_source_label') + ->label("数据源名称") + ->required(), + // 每个分片的最大队列容量 Forms\Components\TextInput::make('queue_config_capacity') ->label("队列容量") @@ -102,7 +107,7 @@ class ManageRemoteWrite extends SettingsPage ->nullable() ->placeholder("/path/to/client.crt") ->visible(fn($get) => $get('auth_mode') === 'certificate'), - + // 客户端私钥文件路径 Forms\Components\TextInput::make('tls_config_key_file') ->label("客户端私钥文件") diff --git a/management-panel/app/Settings/RemoteWriteSettings.php b/management-panel/app/Settings/RemoteWriteSettings.php index a5e191b..3c87745 100644 --- a/management-panel/app/Settings/RemoteWriteSettings.php +++ b/management-panel/app/Settings/RemoteWriteSettings.php @@ -9,6 +9,7 @@ class RemoteWriteSettings extends Settings public bool $state; public string $auth_mode; public string $url; + public ?string $data_source_label; public int $queue_config_capacity; public int $queue_config_max_samples_per_send; public string $queue_config_batch_send_deadline; diff --git a/management-panel/database/settings/2024_09_19_024802_remote_write_settings.php b/management-panel/database/settings/2024_09_19_024802_remote_write_settings.php index f601384..7baad4f 100644 --- a/management-panel/database/settings/2024_09_19_024802_remote_write_settings.php +++ b/management-panel/database/settings/2024_09_19_024802_remote_write_settings.php @@ -11,6 +11,7 @@ return new class extends SettingsMigration // 添加 Prometheus remote_write 配置参数 $this->migrator->add('remote_write.url', 'http://remote-storage.example.com/api/v1/write'); // 远程存储的URL + $this->migrator->add('remote_write.data_source_label',); // 数据源名称 $this->migrator->add('remote_write.queue_config_capacity', 10000); // 每个分片的最大队列容量 $this->migrator->add('remote_write.queue_config_max_samples_per_send', 2000); // 每次发送的最大样本数 $this->migrator->add('remote_write.queue_config_batch_send_deadline', '5s'); // 每次发送批次的最大等待时间