diff --git a/api/inventory/v1/agents.pb.go b/api/inventory/v1/agents.pb.go index 24b803d5959..60678faf2e3 100644 --- a/api/inventory/v1/agents.pb.go +++ b/api/inventory/v1/agents.pb.go @@ -2748,6 +2748,8 @@ type ExternalExporter struct { MetricsResolutions *common.MetricsResolutions `protobuf:"bytes,12,opt,name=metrics_resolutions,json=metricsResolutions,proto3" json:"metrics_resolutions,omitempty"` // Skip TLS certificate and hostname verification. TlsSkipVerify bool `protobuf:"varint,13,opt,name=tls_skip_verify,json=tlsSkipVerify,proto3" json:"tls_skip_verify,omitempty"` + // Actual Agent status. + Status AgentStatus `protobuf:"varint,14,opt,name=status,proto3,enum=inventory.v1.AgentStatus" json:"status,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -2873,6 +2875,13 @@ func (x *ExternalExporter) GetTlsSkipVerify() bool { return false } +func (x *ExternalExporter) GetStatus() AgentStatus { + if x != nil { + return x.Status + } + return AgentStatus_AGENT_STATUS_UNSPECIFIED +} + // AzureDatabaseExporter runs on Generic or Container Node and exposes RemoteAzure Node metrics. type AzureDatabaseExporter struct { state protoimpl.MessageState `protogen:"open.v1"` @@ -9166,7 +9175,7 @@ const file_inventory_v1_agents_proto_rawDesc = "" + "\x13metrics_resolutions\x18\x1a \x01(\v2\x1a.common.MetricsResolutionsR\x12metricsResolutions\x1a?\n" + "\x11CustomLabelsEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xf2\x04\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xa5\x05\n" + "\x10ExternalExporter\x12\x19\n" + "\bagent_id\x18\x01 \x01(\tR\aagentId\x12%\n" + "\x0fruns_on_node_id\x18\x02 \x01(\tR\frunsOnNodeId\x12\x1a\n" + @@ -9183,7 +9192,8 @@ const file_inventory_v1_agents_proto_rawDesc = "" + " \x01(\bR\x12pushMetricsEnabled\x12*\n" + "\x11process_exec_path\x18\v \x01(\tR\x0fprocessExecPath\x12K\n" + "\x13metrics_resolutions\x18\f \x01(\v2\x1a.common.MetricsResolutionsR\x12metricsResolutions\x12&\n" + - "\x0ftls_skip_verify\x18\r \x01(\bR\rtlsSkipVerify\x1a?\n" + + "\x0ftls_skip_verify\x18\r \x01(\bR\rtlsSkipVerify\x121\n" + + "\x06status\x18\x0e \x01(\x0e2\x19.inventory.v1.AgentStatusR\x06status\x1a?\n" + "\x11CustomLabelsEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xe0\x05\n" + @@ -10020,192 +10030,193 @@ var file_inventory_v1_agents_proto_depIdxs = []int32{ 104, // 50: inventory.v1.RDSExporter.metrics_resolutions:type_name -> common.MetricsResolutions 81, // 51: inventory.v1.ExternalExporter.custom_labels:type_name -> inventory.v1.ExternalExporter.CustomLabelsEntry 104, // 52: inventory.v1.ExternalExporter.metrics_resolutions:type_name -> common.MetricsResolutions - 82, // 53: inventory.v1.AzureDatabaseExporter.custom_labels:type_name -> inventory.v1.AzureDatabaseExporter.CustomLabelsEntry - 102, // 54: inventory.v1.AzureDatabaseExporter.status:type_name -> inventory.v1.AgentStatus - 103, // 55: inventory.v1.AzureDatabaseExporter.log_level:type_name -> inventory.v1.LogLevel - 104, // 56: inventory.v1.AzureDatabaseExporter.metrics_resolutions:type_name -> common.MetricsResolutions - 105, // 57: inventory.v1.ChangeCommonAgentParams.custom_labels:type_name -> common.StringMap - 104, // 58: inventory.v1.ChangeCommonAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions - 0, // 59: inventory.v1.ListAgentsRequest.agent_type:type_name -> inventory.v1.AgentType - 1, // 60: inventory.v1.ListAgentsResponse.pmm_agent:type_name -> inventory.v1.PMMAgent - 2, // 61: inventory.v1.ListAgentsResponse.vm_agent:type_name -> inventory.v1.VMAgent - 4, // 62: inventory.v1.ListAgentsResponse.node_exporter:type_name -> inventory.v1.NodeExporter - 5, // 63: inventory.v1.ListAgentsResponse.mysqld_exporter:type_name -> inventory.v1.MySQLdExporter - 6, // 64: inventory.v1.ListAgentsResponse.mongodb_exporter:type_name -> inventory.v1.MongoDBExporter - 7, // 65: inventory.v1.ListAgentsResponse.postgres_exporter:type_name -> inventory.v1.PostgresExporter - 8, // 66: inventory.v1.ListAgentsResponse.proxysql_exporter:type_name -> inventory.v1.ProxySQLExporter - 10, // 67: inventory.v1.ListAgentsResponse.qan_mysql_perfschema_agent:type_name -> inventory.v1.QANMySQLPerfSchemaAgent - 11, // 68: inventory.v1.ListAgentsResponse.qan_mysql_slowlog_agent:type_name -> inventory.v1.QANMySQLSlowlogAgent - 12, // 69: inventory.v1.ListAgentsResponse.qan_mongodb_profiler_agent:type_name -> inventory.v1.QANMongoDBProfilerAgent - 13, // 70: inventory.v1.ListAgentsResponse.qan_mongodb_mongolog_agent:type_name -> inventory.v1.QANMongoDBMongologAgent - 14, // 71: inventory.v1.ListAgentsResponse.qan_postgresql_pgstatements_agent:type_name -> inventory.v1.QANPostgreSQLPgStatementsAgent - 15, // 72: inventory.v1.ListAgentsResponse.qan_postgresql_pgstatmonitor_agent:type_name -> inventory.v1.QANPostgreSQLPgStatMonitorAgent - 17, // 73: inventory.v1.ListAgentsResponse.external_exporter:type_name -> inventory.v1.ExternalExporter - 16, // 74: inventory.v1.ListAgentsResponse.rds_exporter:type_name -> inventory.v1.RDSExporter - 18, // 75: inventory.v1.ListAgentsResponse.azure_database_exporter:type_name -> inventory.v1.AzureDatabaseExporter - 3, // 76: inventory.v1.ListAgentsResponse.nomad_agent:type_name -> inventory.v1.NomadAgent - 9, // 77: inventory.v1.ListAgentsResponse.valkey_exporter:type_name -> inventory.v1.ValkeyExporter - 1, // 78: inventory.v1.GetAgentResponse.pmm_agent:type_name -> inventory.v1.PMMAgent - 2, // 79: inventory.v1.GetAgentResponse.vmagent:type_name -> inventory.v1.VMAgent - 4, // 80: inventory.v1.GetAgentResponse.node_exporter:type_name -> inventory.v1.NodeExporter - 5, // 81: inventory.v1.GetAgentResponse.mysqld_exporter:type_name -> inventory.v1.MySQLdExporter - 6, // 82: inventory.v1.GetAgentResponse.mongodb_exporter:type_name -> inventory.v1.MongoDBExporter - 7, // 83: inventory.v1.GetAgentResponse.postgres_exporter:type_name -> inventory.v1.PostgresExporter - 8, // 84: inventory.v1.GetAgentResponse.proxysql_exporter:type_name -> inventory.v1.ProxySQLExporter - 10, // 85: inventory.v1.GetAgentResponse.qan_mysql_perfschema_agent:type_name -> inventory.v1.QANMySQLPerfSchemaAgent - 11, // 86: inventory.v1.GetAgentResponse.qan_mysql_slowlog_agent:type_name -> inventory.v1.QANMySQLSlowlogAgent - 12, // 87: inventory.v1.GetAgentResponse.qan_mongodb_profiler_agent:type_name -> inventory.v1.QANMongoDBProfilerAgent - 13, // 88: inventory.v1.GetAgentResponse.qan_mongodb_mongolog_agent:type_name -> inventory.v1.QANMongoDBMongologAgent - 14, // 89: inventory.v1.GetAgentResponse.qan_postgresql_pgstatements_agent:type_name -> inventory.v1.QANPostgreSQLPgStatementsAgent - 15, // 90: inventory.v1.GetAgentResponse.qan_postgresql_pgstatmonitor_agent:type_name -> inventory.v1.QANPostgreSQLPgStatMonitorAgent - 17, // 91: inventory.v1.GetAgentResponse.external_exporter:type_name -> inventory.v1.ExternalExporter - 16, // 92: inventory.v1.GetAgentResponse.rds_exporter:type_name -> inventory.v1.RDSExporter - 18, // 93: inventory.v1.GetAgentResponse.azure_database_exporter:type_name -> inventory.v1.AzureDatabaseExporter - 3, // 94: inventory.v1.GetAgentResponse.nomad_agent:type_name -> inventory.v1.NomadAgent - 9, // 95: inventory.v1.GetAgentResponse.valkey_exporter:type_name -> inventory.v1.ValkeyExporter - 30, // 96: inventory.v1.AddAgentRequest.pmm_agent:type_name -> inventory.v1.AddPMMAgentParams - 31, // 97: inventory.v1.AddAgentRequest.node_exporter:type_name -> inventory.v1.AddNodeExporterParams - 33, // 98: inventory.v1.AddAgentRequest.mysqld_exporter:type_name -> inventory.v1.AddMySQLdExporterParams - 35, // 99: inventory.v1.AddAgentRequest.mongodb_exporter:type_name -> inventory.v1.AddMongoDBExporterParams - 37, // 100: inventory.v1.AddAgentRequest.postgres_exporter:type_name -> inventory.v1.AddPostgresExporterParams - 39, // 101: inventory.v1.AddAgentRequest.proxysql_exporter:type_name -> inventory.v1.AddProxySQLExporterParams - 55, // 102: inventory.v1.AddAgentRequest.external_exporter:type_name -> inventory.v1.AddExternalExporterParams - 53, // 103: inventory.v1.AddAgentRequest.rds_exporter:type_name -> inventory.v1.AddRDSExporterParams - 57, // 104: inventory.v1.AddAgentRequest.azure_database_exporter:type_name -> inventory.v1.AddAzureDatabaseExporterParams - 41, // 105: inventory.v1.AddAgentRequest.qan_mysql_perfschema_agent:type_name -> inventory.v1.AddQANMySQLPerfSchemaAgentParams - 43, // 106: inventory.v1.AddAgentRequest.qan_mysql_slowlog_agent:type_name -> inventory.v1.AddQANMySQLSlowlogAgentParams - 45, // 107: inventory.v1.AddAgentRequest.qan_mongodb_profiler_agent:type_name -> inventory.v1.AddQANMongoDBProfilerAgentParams - 47, // 108: inventory.v1.AddAgentRequest.qan_mongodb_mongolog_agent:type_name -> inventory.v1.AddQANMongoDBMongologAgentParams - 49, // 109: inventory.v1.AddAgentRequest.qan_postgresql_pgstatements_agent:type_name -> inventory.v1.AddQANPostgreSQLPgStatementsAgentParams - 51, // 110: inventory.v1.AddAgentRequest.qan_postgresql_pgstatmonitor_agent:type_name -> inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams - 60, // 111: inventory.v1.AddAgentRequest.valkey_exporter:type_name -> inventory.v1.AddValkeyExporterParams - 1, // 112: inventory.v1.AddAgentResponse.pmm_agent:type_name -> inventory.v1.PMMAgent - 4, // 113: inventory.v1.AddAgentResponse.node_exporter:type_name -> inventory.v1.NodeExporter - 5, // 114: inventory.v1.AddAgentResponse.mysqld_exporter:type_name -> inventory.v1.MySQLdExporter - 6, // 115: inventory.v1.AddAgentResponse.mongodb_exporter:type_name -> inventory.v1.MongoDBExporter - 7, // 116: inventory.v1.AddAgentResponse.postgres_exporter:type_name -> inventory.v1.PostgresExporter - 8, // 117: inventory.v1.AddAgentResponse.proxysql_exporter:type_name -> inventory.v1.ProxySQLExporter - 17, // 118: inventory.v1.AddAgentResponse.external_exporter:type_name -> inventory.v1.ExternalExporter - 16, // 119: inventory.v1.AddAgentResponse.rds_exporter:type_name -> inventory.v1.RDSExporter - 18, // 120: inventory.v1.AddAgentResponse.azure_database_exporter:type_name -> inventory.v1.AzureDatabaseExporter - 10, // 121: inventory.v1.AddAgentResponse.qan_mysql_perfschema_agent:type_name -> inventory.v1.QANMySQLPerfSchemaAgent - 11, // 122: inventory.v1.AddAgentResponse.qan_mysql_slowlog_agent:type_name -> inventory.v1.QANMySQLSlowlogAgent - 12, // 123: inventory.v1.AddAgentResponse.qan_mongodb_profiler_agent:type_name -> inventory.v1.QANMongoDBProfilerAgent - 13, // 124: inventory.v1.AddAgentResponse.qan_mongodb_mongolog_agent:type_name -> inventory.v1.QANMongoDBMongologAgent - 14, // 125: inventory.v1.AddAgentResponse.qan_postgresql_pgstatements_agent:type_name -> inventory.v1.QANPostgreSQLPgStatementsAgent - 15, // 126: inventory.v1.AddAgentResponse.qan_postgresql_pgstatmonitor_agent:type_name -> inventory.v1.QANPostgreSQLPgStatMonitorAgent - 9, // 127: inventory.v1.AddAgentResponse.valkey_exporter:type_name -> inventory.v1.ValkeyExporter - 32, // 128: inventory.v1.ChangeAgentRequest.node_exporter:type_name -> inventory.v1.ChangeNodeExporterParams - 34, // 129: inventory.v1.ChangeAgentRequest.mysqld_exporter:type_name -> inventory.v1.ChangeMySQLdExporterParams - 36, // 130: inventory.v1.ChangeAgentRequest.mongodb_exporter:type_name -> inventory.v1.ChangeMongoDBExporterParams - 38, // 131: inventory.v1.ChangeAgentRequest.postgres_exporter:type_name -> inventory.v1.ChangePostgresExporterParams - 40, // 132: inventory.v1.ChangeAgentRequest.proxysql_exporter:type_name -> inventory.v1.ChangeProxySQLExporterParams - 56, // 133: inventory.v1.ChangeAgentRequest.external_exporter:type_name -> inventory.v1.ChangeExternalExporterParams - 54, // 134: inventory.v1.ChangeAgentRequest.rds_exporter:type_name -> inventory.v1.ChangeRDSExporterParams - 58, // 135: inventory.v1.ChangeAgentRequest.azure_database_exporter:type_name -> inventory.v1.ChangeAzureDatabaseExporterParams - 42, // 136: inventory.v1.ChangeAgentRequest.qan_mysql_perfschema_agent:type_name -> inventory.v1.ChangeQANMySQLPerfSchemaAgentParams - 44, // 137: inventory.v1.ChangeAgentRequest.qan_mysql_slowlog_agent:type_name -> inventory.v1.ChangeQANMySQLSlowlogAgentParams - 46, // 138: inventory.v1.ChangeAgentRequest.qan_mongodb_profiler_agent:type_name -> inventory.v1.ChangeQANMongoDBProfilerAgentParams - 48, // 139: inventory.v1.ChangeAgentRequest.qan_mongodb_mongolog_agent:type_name -> inventory.v1.ChangeQANMongoDBMongologAgentParams - 50, // 140: inventory.v1.ChangeAgentRequest.qan_postgresql_pgstatements_agent:type_name -> inventory.v1.ChangeQANPostgreSQLPgStatementsAgentParams - 52, // 141: inventory.v1.ChangeAgentRequest.qan_postgresql_pgstatmonitor_agent:type_name -> inventory.v1.ChangeQANPostgreSQLPgStatMonitorAgentParams - 59, // 142: inventory.v1.ChangeAgentRequest.nomad_agent:type_name -> inventory.v1.ChangeNomadAgentParams - 61, // 143: inventory.v1.ChangeAgentRequest.valkey_exporter:type_name -> inventory.v1.ChangeValkeyExporterParams - 4, // 144: inventory.v1.ChangeAgentResponse.node_exporter:type_name -> inventory.v1.NodeExporter - 5, // 145: inventory.v1.ChangeAgentResponse.mysqld_exporter:type_name -> inventory.v1.MySQLdExporter - 6, // 146: inventory.v1.ChangeAgentResponse.mongodb_exporter:type_name -> inventory.v1.MongoDBExporter - 7, // 147: inventory.v1.ChangeAgentResponse.postgres_exporter:type_name -> inventory.v1.PostgresExporter - 8, // 148: inventory.v1.ChangeAgentResponse.proxysql_exporter:type_name -> inventory.v1.ProxySQLExporter - 17, // 149: inventory.v1.ChangeAgentResponse.external_exporter:type_name -> inventory.v1.ExternalExporter - 16, // 150: inventory.v1.ChangeAgentResponse.rds_exporter:type_name -> inventory.v1.RDSExporter - 18, // 151: inventory.v1.ChangeAgentResponse.azure_database_exporter:type_name -> inventory.v1.AzureDatabaseExporter - 10, // 152: inventory.v1.ChangeAgentResponse.qan_mysql_perfschema_agent:type_name -> inventory.v1.QANMySQLPerfSchemaAgent - 11, // 153: inventory.v1.ChangeAgentResponse.qan_mysql_slowlog_agent:type_name -> inventory.v1.QANMySQLSlowlogAgent - 12, // 154: inventory.v1.ChangeAgentResponse.qan_mongodb_profiler_agent:type_name -> inventory.v1.QANMongoDBProfilerAgent - 13, // 155: inventory.v1.ChangeAgentResponse.qan_mongodb_mongolog_agent:type_name -> inventory.v1.QANMongoDBMongologAgent - 14, // 156: inventory.v1.ChangeAgentResponse.qan_postgresql_pgstatements_agent:type_name -> inventory.v1.QANPostgreSQLPgStatementsAgent - 15, // 157: inventory.v1.ChangeAgentResponse.qan_postgresql_pgstatmonitor_agent:type_name -> inventory.v1.QANPostgreSQLPgStatMonitorAgent - 3, // 158: inventory.v1.ChangeAgentResponse.nomad_agent:type_name -> inventory.v1.NomadAgent - 9, // 159: inventory.v1.ChangeAgentResponse.valkey_exporter:type_name -> inventory.v1.ValkeyExporter - 83, // 160: inventory.v1.AddPMMAgentParams.custom_labels:type_name -> inventory.v1.AddPMMAgentParams.CustomLabelsEntry - 84, // 161: inventory.v1.AddNodeExporterParams.custom_labels:type_name -> inventory.v1.AddNodeExporterParams.CustomLabelsEntry - 103, // 162: inventory.v1.AddNodeExporterParams.log_level:type_name -> inventory.v1.LogLevel - 105, // 163: inventory.v1.ChangeNodeExporterParams.custom_labels:type_name -> common.StringMap - 104, // 164: inventory.v1.ChangeNodeExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions - 85, // 165: inventory.v1.AddMySQLdExporterParams.custom_labels:type_name -> inventory.v1.AddMySQLdExporterParams.CustomLabelsEntry - 103, // 166: inventory.v1.AddMySQLdExporterParams.log_level:type_name -> inventory.v1.LogLevel - 86, // 167: inventory.v1.AddMySQLdExporterParams.extra_dsn_params:type_name -> inventory.v1.AddMySQLdExporterParams.ExtraDsnParamsEntry - 105, // 168: inventory.v1.ChangeMySQLdExporterParams.custom_labels:type_name -> common.StringMap - 104, // 169: inventory.v1.ChangeMySQLdExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions - 87, // 170: inventory.v1.AddMongoDBExporterParams.custom_labels:type_name -> inventory.v1.AddMongoDBExporterParams.CustomLabelsEntry - 103, // 171: inventory.v1.AddMongoDBExporterParams.log_level:type_name -> inventory.v1.LogLevel - 105, // 172: inventory.v1.ChangeMongoDBExporterParams.custom_labels:type_name -> common.StringMap - 104, // 173: inventory.v1.ChangeMongoDBExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions - 88, // 174: inventory.v1.AddPostgresExporterParams.custom_labels:type_name -> inventory.v1.AddPostgresExporterParams.CustomLabelsEntry - 103, // 175: inventory.v1.AddPostgresExporterParams.log_level:type_name -> inventory.v1.LogLevel - 105, // 176: inventory.v1.ChangePostgresExporterParams.custom_labels:type_name -> common.StringMap - 104, // 177: inventory.v1.ChangePostgresExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions - 89, // 178: inventory.v1.AddProxySQLExporterParams.custom_labels:type_name -> inventory.v1.AddProxySQLExporterParams.CustomLabelsEntry - 103, // 179: inventory.v1.AddProxySQLExporterParams.log_level:type_name -> inventory.v1.LogLevel - 105, // 180: inventory.v1.ChangeProxySQLExporterParams.custom_labels:type_name -> common.StringMap - 104, // 181: inventory.v1.ChangeProxySQLExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions - 90, // 182: inventory.v1.AddQANMySQLPerfSchemaAgentParams.custom_labels:type_name -> inventory.v1.AddQANMySQLPerfSchemaAgentParams.CustomLabelsEntry - 103, // 183: inventory.v1.AddQANMySQLPerfSchemaAgentParams.log_level:type_name -> inventory.v1.LogLevel - 91, // 184: inventory.v1.AddQANMySQLPerfSchemaAgentParams.extra_dsn_params:type_name -> inventory.v1.AddQANMySQLPerfSchemaAgentParams.ExtraDsnParamsEntry - 105, // 185: inventory.v1.ChangeQANMySQLPerfSchemaAgentParams.custom_labels:type_name -> common.StringMap - 104, // 186: inventory.v1.ChangeQANMySQLPerfSchemaAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions - 92, // 187: inventory.v1.AddQANMySQLSlowlogAgentParams.custom_labels:type_name -> inventory.v1.AddQANMySQLSlowlogAgentParams.CustomLabelsEntry - 103, // 188: inventory.v1.AddQANMySQLSlowlogAgentParams.log_level:type_name -> inventory.v1.LogLevel - 93, // 189: inventory.v1.AddQANMySQLSlowlogAgentParams.extra_dsn_params:type_name -> inventory.v1.AddQANMySQLSlowlogAgentParams.ExtraDsnParamsEntry - 105, // 190: inventory.v1.ChangeQANMySQLSlowlogAgentParams.custom_labels:type_name -> common.StringMap - 104, // 191: inventory.v1.ChangeQANMySQLSlowlogAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions - 94, // 192: inventory.v1.AddQANMongoDBProfilerAgentParams.custom_labels:type_name -> inventory.v1.AddQANMongoDBProfilerAgentParams.CustomLabelsEntry - 103, // 193: inventory.v1.AddQANMongoDBProfilerAgentParams.log_level:type_name -> inventory.v1.LogLevel - 105, // 194: inventory.v1.ChangeQANMongoDBProfilerAgentParams.custom_labels:type_name -> common.StringMap - 104, // 195: inventory.v1.ChangeQANMongoDBProfilerAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions - 95, // 196: inventory.v1.AddQANMongoDBMongologAgentParams.custom_labels:type_name -> inventory.v1.AddQANMongoDBMongologAgentParams.CustomLabelsEntry - 103, // 197: inventory.v1.AddQANMongoDBMongologAgentParams.log_level:type_name -> inventory.v1.LogLevel - 105, // 198: inventory.v1.ChangeQANMongoDBMongologAgentParams.custom_labels:type_name -> common.StringMap - 104, // 199: inventory.v1.ChangeQANMongoDBMongologAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions - 96, // 200: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.custom_labels:type_name -> inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.CustomLabelsEntry - 103, // 201: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.log_level:type_name -> inventory.v1.LogLevel - 105, // 202: inventory.v1.ChangeQANPostgreSQLPgStatementsAgentParams.custom_labels:type_name -> common.StringMap - 104, // 203: inventory.v1.ChangeQANPostgreSQLPgStatementsAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions - 97, // 204: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.custom_labels:type_name -> inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.CustomLabelsEntry - 103, // 205: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.log_level:type_name -> inventory.v1.LogLevel - 105, // 206: inventory.v1.ChangeQANPostgreSQLPgStatMonitorAgentParams.custom_labels:type_name -> common.StringMap - 104, // 207: inventory.v1.ChangeQANPostgreSQLPgStatMonitorAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions - 98, // 208: inventory.v1.AddRDSExporterParams.custom_labels:type_name -> inventory.v1.AddRDSExporterParams.CustomLabelsEntry - 103, // 209: inventory.v1.AddRDSExporterParams.log_level:type_name -> inventory.v1.LogLevel - 105, // 210: inventory.v1.ChangeRDSExporterParams.custom_labels:type_name -> common.StringMap - 104, // 211: inventory.v1.ChangeRDSExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions - 99, // 212: inventory.v1.AddExternalExporterParams.custom_labels:type_name -> inventory.v1.AddExternalExporterParams.CustomLabelsEntry - 105, // 213: inventory.v1.ChangeExternalExporterParams.custom_labels:type_name -> common.StringMap - 104, // 214: inventory.v1.ChangeExternalExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions - 100, // 215: inventory.v1.AddAzureDatabaseExporterParams.custom_labels:type_name -> inventory.v1.AddAzureDatabaseExporterParams.CustomLabelsEntry - 103, // 216: inventory.v1.AddAzureDatabaseExporterParams.log_level:type_name -> inventory.v1.LogLevel - 105, // 217: inventory.v1.ChangeAzureDatabaseExporterParams.custom_labels:type_name -> common.StringMap - 104, // 218: inventory.v1.ChangeAzureDatabaseExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions - 101, // 219: inventory.v1.AddValkeyExporterParams.custom_labels:type_name -> inventory.v1.AddValkeyExporterParams.CustomLabelsEntry - 105, // 220: inventory.v1.ChangeValkeyExporterParams.custom_labels:type_name -> common.StringMap - 104, // 221: inventory.v1.ChangeValkeyExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions - 20, // 222: inventory.v1.AgentsService.ListAgents:input_type -> inventory.v1.ListAgentsRequest - 22, // 223: inventory.v1.AgentsService.GetAgent:input_type -> inventory.v1.GetAgentRequest - 24, // 224: inventory.v1.AgentsService.GetAgentLogs:input_type -> inventory.v1.GetAgentLogsRequest - 26, // 225: inventory.v1.AgentsService.AddAgent:input_type -> inventory.v1.AddAgentRequest - 28, // 226: inventory.v1.AgentsService.ChangeAgent:input_type -> inventory.v1.ChangeAgentRequest - 62, // 227: inventory.v1.AgentsService.RemoveAgent:input_type -> inventory.v1.RemoveAgentRequest - 21, // 228: inventory.v1.AgentsService.ListAgents:output_type -> inventory.v1.ListAgentsResponse - 23, // 229: inventory.v1.AgentsService.GetAgent:output_type -> inventory.v1.GetAgentResponse - 25, // 230: inventory.v1.AgentsService.GetAgentLogs:output_type -> inventory.v1.GetAgentLogsResponse - 27, // 231: inventory.v1.AgentsService.AddAgent:output_type -> inventory.v1.AddAgentResponse - 29, // 232: inventory.v1.AgentsService.ChangeAgent:output_type -> inventory.v1.ChangeAgentResponse - 63, // 233: inventory.v1.AgentsService.RemoveAgent:output_type -> inventory.v1.RemoveAgentResponse - 228, // [228:234] is the sub-list for method output_type - 222, // [222:228] is the sub-list for method input_type - 222, // [222:222] is the sub-list for extension type_name - 222, // [222:222] is the sub-list for extension extendee - 0, // [0:222] is the sub-list for field type_name + 102, // 53: inventory.v1.ExternalExporter.status:type_name -> inventory.v1.AgentStatus + 82, // 54: inventory.v1.AzureDatabaseExporter.custom_labels:type_name -> inventory.v1.AzureDatabaseExporter.CustomLabelsEntry + 102, // 55: inventory.v1.AzureDatabaseExporter.status:type_name -> inventory.v1.AgentStatus + 103, // 56: inventory.v1.AzureDatabaseExporter.log_level:type_name -> inventory.v1.LogLevel + 104, // 57: inventory.v1.AzureDatabaseExporter.metrics_resolutions:type_name -> common.MetricsResolutions + 105, // 58: inventory.v1.ChangeCommonAgentParams.custom_labels:type_name -> common.StringMap + 104, // 59: inventory.v1.ChangeCommonAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions + 0, // 60: inventory.v1.ListAgentsRequest.agent_type:type_name -> inventory.v1.AgentType + 1, // 61: inventory.v1.ListAgentsResponse.pmm_agent:type_name -> inventory.v1.PMMAgent + 2, // 62: inventory.v1.ListAgentsResponse.vm_agent:type_name -> inventory.v1.VMAgent + 4, // 63: inventory.v1.ListAgentsResponse.node_exporter:type_name -> inventory.v1.NodeExporter + 5, // 64: inventory.v1.ListAgentsResponse.mysqld_exporter:type_name -> inventory.v1.MySQLdExporter + 6, // 65: inventory.v1.ListAgentsResponse.mongodb_exporter:type_name -> inventory.v1.MongoDBExporter + 7, // 66: inventory.v1.ListAgentsResponse.postgres_exporter:type_name -> inventory.v1.PostgresExporter + 8, // 67: inventory.v1.ListAgentsResponse.proxysql_exporter:type_name -> inventory.v1.ProxySQLExporter + 10, // 68: inventory.v1.ListAgentsResponse.qan_mysql_perfschema_agent:type_name -> inventory.v1.QANMySQLPerfSchemaAgent + 11, // 69: inventory.v1.ListAgentsResponse.qan_mysql_slowlog_agent:type_name -> inventory.v1.QANMySQLSlowlogAgent + 12, // 70: inventory.v1.ListAgentsResponse.qan_mongodb_profiler_agent:type_name -> inventory.v1.QANMongoDBProfilerAgent + 13, // 71: inventory.v1.ListAgentsResponse.qan_mongodb_mongolog_agent:type_name -> inventory.v1.QANMongoDBMongologAgent + 14, // 72: inventory.v1.ListAgentsResponse.qan_postgresql_pgstatements_agent:type_name -> inventory.v1.QANPostgreSQLPgStatementsAgent + 15, // 73: inventory.v1.ListAgentsResponse.qan_postgresql_pgstatmonitor_agent:type_name -> inventory.v1.QANPostgreSQLPgStatMonitorAgent + 17, // 74: inventory.v1.ListAgentsResponse.external_exporter:type_name -> inventory.v1.ExternalExporter + 16, // 75: inventory.v1.ListAgentsResponse.rds_exporter:type_name -> inventory.v1.RDSExporter + 18, // 76: inventory.v1.ListAgentsResponse.azure_database_exporter:type_name -> inventory.v1.AzureDatabaseExporter + 3, // 77: inventory.v1.ListAgentsResponse.nomad_agent:type_name -> inventory.v1.NomadAgent + 9, // 78: inventory.v1.ListAgentsResponse.valkey_exporter:type_name -> inventory.v1.ValkeyExporter + 1, // 79: inventory.v1.GetAgentResponse.pmm_agent:type_name -> inventory.v1.PMMAgent + 2, // 80: inventory.v1.GetAgentResponse.vmagent:type_name -> inventory.v1.VMAgent + 4, // 81: inventory.v1.GetAgentResponse.node_exporter:type_name -> inventory.v1.NodeExporter + 5, // 82: inventory.v1.GetAgentResponse.mysqld_exporter:type_name -> inventory.v1.MySQLdExporter + 6, // 83: inventory.v1.GetAgentResponse.mongodb_exporter:type_name -> inventory.v1.MongoDBExporter + 7, // 84: inventory.v1.GetAgentResponse.postgres_exporter:type_name -> inventory.v1.PostgresExporter + 8, // 85: inventory.v1.GetAgentResponse.proxysql_exporter:type_name -> inventory.v1.ProxySQLExporter + 10, // 86: inventory.v1.GetAgentResponse.qan_mysql_perfschema_agent:type_name -> inventory.v1.QANMySQLPerfSchemaAgent + 11, // 87: inventory.v1.GetAgentResponse.qan_mysql_slowlog_agent:type_name -> inventory.v1.QANMySQLSlowlogAgent + 12, // 88: inventory.v1.GetAgentResponse.qan_mongodb_profiler_agent:type_name -> inventory.v1.QANMongoDBProfilerAgent + 13, // 89: inventory.v1.GetAgentResponse.qan_mongodb_mongolog_agent:type_name -> inventory.v1.QANMongoDBMongologAgent + 14, // 90: inventory.v1.GetAgentResponse.qan_postgresql_pgstatements_agent:type_name -> inventory.v1.QANPostgreSQLPgStatementsAgent + 15, // 91: inventory.v1.GetAgentResponse.qan_postgresql_pgstatmonitor_agent:type_name -> inventory.v1.QANPostgreSQLPgStatMonitorAgent + 17, // 92: inventory.v1.GetAgentResponse.external_exporter:type_name -> inventory.v1.ExternalExporter + 16, // 93: inventory.v1.GetAgentResponse.rds_exporter:type_name -> inventory.v1.RDSExporter + 18, // 94: inventory.v1.GetAgentResponse.azure_database_exporter:type_name -> inventory.v1.AzureDatabaseExporter + 3, // 95: inventory.v1.GetAgentResponse.nomad_agent:type_name -> inventory.v1.NomadAgent + 9, // 96: inventory.v1.GetAgentResponse.valkey_exporter:type_name -> inventory.v1.ValkeyExporter + 30, // 97: inventory.v1.AddAgentRequest.pmm_agent:type_name -> inventory.v1.AddPMMAgentParams + 31, // 98: inventory.v1.AddAgentRequest.node_exporter:type_name -> inventory.v1.AddNodeExporterParams + 33, // 99: inventory.v1.AddAgentRequest.mysqld_exporter:type_name -> inventory.v1.AddMySQLdExporterParams + 35, // 100: inventory.v1.AddAgentRequest.mongodb_exporter:type_name -> inventory.v1.AddMongoDBExporterParams + 37, // 101: inventory.v1.AddAgentRequest.postgres_exporter:type_name -> inventory.v1.AddPostgresExporterParams + 39, // 102: inventory.v1.AddAgentRequest.proxysql_exporter:type_name -> inventory.v1.AddProxySQLExporterParams + 55, // 103: inventory.v1.AddAgentRequest.external_exporter:type_name -> inventory.v1.AddExternalExporterParams + 53, // 104: inventory.v1.AddAgentRequest.rds_exporter:type_name -> inventory.v1.AddRDSExporterParams + 57, // 105: inventory.v1.AddAgentRequest.azure_database_exporter:type_name -> inventory.v1.AddAzureDatabaseExporterParams + 41, // 106: inventory.v1.AddAgentRequest.qan_mysql_perfschema_agent:type_name -> inventory.v1.AddQANMySQLPerfSchemaAgentParams + 43, // 107: inventory.v1.AddAgentRequest.qan_mysql_slowlog_agent:type_name -> inventory.v1.AddQANMySQLSlowlogAgentParams + 45, // 108: inventory.v1.AddAgentRequest.qan_mongodb_profiler_agent:type_name -> inventory.v1.AddQANMongoDBProfilerAgentParams + 47, // 109: inventory.v1.AddAgentRequest.qan_mongodb_mongolog_agent:type_name -> inventory.v1.AddQANMongoDBMongologAgentParams + 49, // 110: inventory.v1.AddAgentRequest.qan_postgresql_pgstatements_agent:type_name -> inventory.v1.AddQANPostgreSQLPgStatementsAgentParams + 51, // 111: inventory.v1.AddAgentRequest.qan_postgresql_pgstatmonitor_agent:type_name -> inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams + 60, // 112: inventory.v1.AddAgentRequest.valkey_exporter:type_name -> inventory.v1.AddValkeyExporterParams + 1, // 113: inventory.v1.AddAgentResponse.pmm_agent:type_name -> inventory.v1.PMMAgent + 4, // 114: inventory.v1.AddAgentResponse.node_exporter:type_name -> inventory.v1.NodeExporter + 5, // 115: inventory.v1.AddAgentResponse.mysqld_exporter:type_name -> inventory.v1.MySQLdExporter + 6, // 116: inventory.v1.AddAgentResponse.mongodb_exporter:type_name -> inventory.v1.MongoDBExporter + 7, // 117: inventory.v1.AddAgentResponse.postgres_exporter:type_name -> inventory.v1.PostgresExporter + 8, // 118: inventory.v1.AddAgentResponse.proxysql_exporter:type_name -> inventory.v1.ProxySQLExporter + 17, // 119: inventory.v1.AddAgentResponse.external_exporter:type_name -> inventory.v1.ExternalExporter + 16, // 120: inventory.v1.AddAgentResponse.rds_exporter:type_name -> inventory.v1.RDSExporter + 18, // 121: inventory.v1.AddAgentResponse.azure_database_exporter:type_name -> inventory.v1.AzureDatabaseExporter + 10, // 122: inventory.v1.AddAgentResponse.qan_mysql_perfschema_agent:type_name -> inventory.v1.QANMySQLPerfSchemaAgent + 11, // 123: inventory.v1.AddAgentResponse.qan_mysql_slowlog_agent:type_name -> inventory.v1.QANMySQLSlowlogAgent + 12, // 124: inventory.v1.AddAgentResponse.qan_mongodb_profiler_agent:type_name -> inventory.v1.QANMongoDBProfilerAgent + 13, // 125: inventory.v1.AddAgentResponse.qan_mongodb_mongolog_agent:type_name -> inventory.v1.QANMongoDBMongologAgent + 14, // 126: inventory.v1.AddAgentResponse.qan_postgresql_pgstatements_agent:type_name -> inventory.v1.QANPostgreSQLPgStatementsAgent + 15, // 127: inventory.v1.AddAgentResponse.qan_postgresql_pgstatmonitor_agent:type_name -> inventory.v1.QANPostgreSQLPgStatMonitorAgent + 9, // 128: inventory.v1.AddAgentResponse.valkey_exporter:type_name -> inventory.v1.ValkeyExporter + 32, // 129: inventory.v1.ChangeAgentRequest.node_exporter:type_name -> inventory.v1.ChangeNodeExporterParams + 34, // 130: inventory.v1.ChangeAgentRequest.mysqld_exporter:type_name -> inventory.v1.ChangeMySQLdExporterParams + 36, // 131: inventory.v1.ChangeAgentRequest.mongodb_exporter:type_name -> inventory.v1.ChangeMongoDBExporterParams + 38, // 132: inventory.v1.ChangeAgentRequest.postgres_exporter:type_name -> inventory.v1.ChangePostgresExporterParams + 40, // 133: inventory.v1.ChangeAgentRequest.proxysql_exporter:type_name -> inventory.v1.ChangeProxySQLExporterParams + 56, // 134: inventory.v1.ChangeAgentRequest.external_exporter:type_name -> inventory.v1.ChangeExternalExporterParams + 54, // 135: inventory.v1.ChangeAgentRequest.rds_exporter:type_name -> inventory.v1.ChangeRDSExporterParams + 58, // 136: inventory.v1.ChangeAgentRequest.azure_database_exporter:type_name -> inventory.v1.ChangeAzureDatabaseExporterParams + 42, // 137: inventory.v1.ChangeAgentRequest.qan_mysql_perfschema_agent:type_name -> inventory.v1.ChangeQANMySQLPerfSchemaAgentParams + 44, // 138: inventory.v1.ChangeAgentRequest.qan_mysql_slowlog_agent:type_name -> inventory.v1.ChangeQANMySQLSlowlogAgentParams + 46, // 139: inventory.v1.ChangeAgentRequest.qan_mongodb_profiler_agent:type_name -> inventory.v1.ChangeQANMongoDBProfilerAgentParams + 48, // 140: inventory.v1.ChangeAgentRequest.qan_mongodb_mongolog_agent:type_name -> inventory.v1.ChangeQANMongoDBMongologAgentParams + 50, // 141: inventory.v1.ChangeAgentRequest.qan_postgresql_pgstatements_agent:type_name -> inventory.v1.ChangeQANPostgreSQLPgStatementsAgentParams + 52, // 142: inventory.v1.ChangeAgentRequest.qan_postgresql_pgstatmonitor_agent:type_name -> inventory.v1.ChangeQANPostgreSQLPgStatMonitorAgentParams + 59, // 143: inventory.v1.ChangeAgentRequest.nomad_agent:type_name -> inventory.v1.ChangeNomadAgentParams + 61, // 144: inventory.v1.ChangeAgentRequest.valkey_exporter:type_name -> inventory.v1.ChangeValkeyExporterParams + 4, // 145: inventory.v1.ChangeAgentResponse.node_exporter:type_name -> inventory.v1.NodeExporter + 5, // 146: inventory.v1.ChangeAgentResponse.mysqld_exporter:type_name -> inventory.v1.MySQLdExporter + 6, // 147: inventory.v1.ChangeAgentResponse.mongodb_exporter:type_name -> inventory.v1.MongoDBExporter + 7, // 148: inventory.v1.ChangeAgentResponse.postgres_exporter:type_name -> inventory.v1.PostgresExporter + 8, // 149: inventory.v1.ChangeAgentResponse.proxysql_exporter:type_name -> inventory.v1.ProxySQLExporter + 17, // 150: inventory.v1.ChangeAgentResponse.external_exporter:type_name -> inventory.v1.ExternalExporter + 16, // 151: inventory.v1.ChangeAgentResponse.rds_exporter:type_name -> inventory.v1.RDSExporter + 18, // 152: inventory.v1.ChangeAgentResponse.azure_database_exporter:type_name -> inventory.v1.AzureDatabaseExporter + 10, // 153: inventory.v1.ChangeAgentResponse.qan_mysql_perfschema_agent:type_name -> inventory.v1.QANMySQLPerfSchemaAgent + 11, // 154: inventory.v1.ChangeAgentResponse.qan_mysql_slowlog_agent:type_name -> inventory.v1.QANMySQLSlowlogAgent + 12, // 155: inventory.v1.ChangeAgentResponse.qan_mongodb_profiler_agent:type_name -> inventory.v1.QANMongoDBProfilerAgent + 13, // 156: inventory.v1.ChangeAgentResponse.qan_mongodb_mongolog_agent:type_name -> inventory.v1.QANMongoDBMongologAgent + 14, // 157: inventory.v1.ChangeAgentResponse.qan_postgresql_pgstatements_agent:type_name -> inventory.v1.QANPostgreSQLPgStatementsAgent + 15, // 158: inventory.v1.ChangeAgentResponse.qan_postgresql_pgstatmonitor_agent:type_name -> inventory.v1.QANPostgreSQLPgStatMonitorAgent + 3, // 159: inventory.v1.ChangeAgentResponse.nomad_agent:type_name -> inventory.v1.NomadAgent + 9, // 160: inventory.v1.ChangeAgentResponse.valkey_exporter:type_name -> inventory.v1.ValkeyExporter + 83, // 161: inventory.v1.AddPMMAgentParams.custom_labels:type_name -> inventory.v1.AddPMMAgentParams.CustomLabelsEntry + 84, // 162: inventory.v1.AddNodeExporterParams.custom_labels:type_name -> inventory.v1.AddNodeExporterParams.CustomLabelsEntry + 103, // 163: inventory.v1.AddNodeExporterParams.log_level:type_name -> inventory.v1.LogLevel + 105, // 164: inventory.v1.ChangeNodeExporterParams.custom_labels:type_name -> common.StringMap + 104, // 165: inventory.v1.ChangeNodeExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 85, // 166: inventory.v1.AddMySQLdExporterParams.custom_labels:type_name -> inventory.v1.AddMySQLdExporterParams.CustomLabelsEntry + 103, // 167: inventory.v1.AddMySQLdExporterParams.log_level:type_name -> inventory.v1.LogLevel + 86, // 168: inventory.v1.AddMySQLdExporterParams.extra_dsn_params:type_name -> inventory.v1.AddMySQLdExporterParams.ExtraDsnParamsEntry + 105, // 169: inventory.v1.ChangeMySQLdExporterParams.custom_labels:type_name -> common.StringMap + 104, // 170: inventory.v1.ChangeMySQLdExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 87, // 171: inventory.v1.AddMongoDBExporterParams.custom_labels:type_name -> inventory.v1.AddMongoDBExporterParams.CustomLabelsEntry + 103, // 172: inventory.v1.AddMongoDBExporterParams.log_level:type_name -> inventory.v1.LogLevel + 105, // 173: inventory.v1.ChangeMongoDBExporterParams.custom_labels:type_name -> common.StringMap + 104, // 174: inventory.v1.ChangeMongoDBExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 88, // 175: inventory.v1.AddPostgresExporterParams.custom_labels:type_name -> inventory.v1.AddPostgresExporterParams.CustomLabelsEntry + 103, // 176: inventory.v1.AddPostgresExporterParams.log_level:type_name -> inventory.v1.LogLevel + 105, // 177: inventory.v1.ChangePostgresExporterParams.custom_labels:type_name -> common.StringMap + 104, // 178: inventory.v1.ChangePostgresExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 89, // 179: inventory.v1.AddProxySQLExporterParams.custom_labels:type_name -> inventory.v1.AddProxySQLExporterParams.CustomLabelsEntry + 103, // 180: inventory.v1.AddProxySQLExporterParams.log_level:type_name -> inventory.v1.LogLevel + 105, // 181: inventory.v1.ChangeProxySQLExporterParams.custom_labels:type_name -> common.StringMap + 104, // 182: inventory.v1.ChangeProxySQLExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 90, // 183: inventory.v1.AddQANMySQLPerfSchemaAgentParams.custom_labels:type_name -> inventory.v1.AddQANMySQLPerfSchemaAgentParams.CustomLabelsEntry + 103, // 184: inventory.v1.AddQANMySQLPerfSchemaAgentParams.log_level:type_name -> inventory.v1.LogLevel + 91, // 185: inventory.v1.AddQANMySQLPerfSchemaAgentParams.extra_dsn_params:type_name -> inventory.v1.AddQANMySQLPerfSchemaAgentParams.ExtraDsnParamsEntry + 105, // 186: inventory.v1.ChangeQANMySQLPerfSchemaAgentParams.custom_labels:type_name -> common.StringMap + 104, // 187: inventory.v1.ChangeQANMySQLPerfSchemaAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions + 92, // 188: inventory.v1.AddQANMySQLSlowlogAgentParams.custom_labels:type_name -> inventory.v1.AddQANMySQLSlowlogAgentParams.CustomLabelsEntry + 103, // 189: inventory.v1.AddQANMySQLSlowlogAgentParams.log_level:type_name -> inventory.v1.LogLevel + 93, // 190: inventory.v1.AddQANMySQLSlowlogAgentParams.extra_dsn_params:type_name -> inventory.v1.AddQANMySQLSlowlogAgentParams.ExtraDsnParamsEntry + 105, // 191: inventory.v1.ChangeQANMySQLSlowlogAgentParams.custom_labels:type_name -> common.StringMap + 104, // 192: inventory.v1.ChangeQANMySQLSlowlogAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions + 94, // 193: inventory.v1.AddQANMongoDBProfilerAgentParams.custom_labels:type_name -> inventory.v1.AddQANMongoDBProfilerAgentParams.CustomLabelsEntry + 103, // 194: inventory.v1.AddQANMongoDBProfilerAgentParams.log_level:type_name -> inventory.v1.LogLevel + 105, // 195: inventory.v1.ChangeQANMongoDBProfilerAgentParams.custom_labels:type_name -> common.StringMap + 104, // 196: inventory.v1.ChangeQANMongoDBProfilerAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions + 95, // 197: inventory.v1.AddQANMongoDBMongologAgentParams.custom_labels:type_name -> inventory.v1.AddQANMongoDBMongologAgentParams.CustomLabelsEntry + 103, // 198: inventory.v1.AddQANMongoDBMongologAgentParams.log_level:type_name -> inventory.v1.LogLevel + 105, // 199: inventory.v1.ChangeQANMongoDBMongologAgentParams.custom_labels:type_name -> common.StringMap + 104, // 200: inventory.v1.ChangeQANMongoDBMongologAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions + 96, // 201: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.custom_labels:type_name -> inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.CustomLabelsEntry + 103, // 202: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.log_level:type_name -> inventory.v1.LogLevel + 105, // 203: inventory.v1.ChangeQANPostgreSQLPgStatementsAgentParams.custom_labels:type_name -> common.StringMap + 104, // 204: inventory.v1.ChangeQANPostgreSQLPgStatementsAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions + 97, // 205: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.custom_labels:type_name -> inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.CustomLabelsEntry + 103, // 206: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.log_level:type_name -> inventory.v1.LogLevel + 105, // 207: inventory.v1.ChangeQANPostgreSQLPgStatMonitorAgentParams.custom_labels:type_name -> common.StringMap + 104, // 208: inventory.v1.ChangeQANPostgreSQLPgStatMonitorAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions + 98, // 209: inventory.v1.AddRDSExporterParams.custom_labels:type_name -> inventory.v1.AddRDSExporterParams.CustomLabelsEntry + 103, // 210: inventory.v1.AddRDSExporterParams.log_level:type_name -> inventory.v1.LogLevel + 105, // 211: inventory.v1.ChangeRDSExporterParams.custom_labels:type_name -> common.StringMap + 104, // 212: inventory.v1.ChangeRDSExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 99, // 213: inventory.v1.AddExternalExporterParams.custom_labels:type_name -> inventory.v1.AddExternalExporterParams.CustomLabelsEntry + 105, // 214: inventory.v1.ChangeExternalExporterParams.custom_labels:type_name -> common.StringMap + 104, // 215: inventory.v1.ChangeExternalExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 100, // 216: inventory.v1.AddAzureDatabaseExporterParams.custom_labels:type_name -> inventory.v1.AddAzureDatabaseExporterParams.CustomLabelsEntry + 103, // 217: inventory.v1.AddAzureDatabaseExporterParams.log_level:type_name -> inventory.v1.LogLevel + 105, // 218: inventory.v1.ChangeAzureDatabaseExporterParams.custom_labels:type_name -> common.StringMap + 104, // 219: inventory.v1.ChangeAzureDatabaseExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 101, // 220: inventory.v1.AddValkeyExporterParams.custom_labels:type_name -> inventory.v1.AddValkeyExporterParams.CustomLabelsEntry + 105, // 221: inventory.v1.ChangeValkeyExporterParams.custom_labels:type_name -> common.StringMap + 104, // 222: inventory.v1.ChangeValkeyExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 20, // 223: inventory.v1.AgentsService.ListAgents:input_type -> inventory.v1.ListAgentsRequest + 22, // 224: inventory.v1.AgentsService.GetAgent:input_type -> inventory.v1.GetAgentRequest + 24, // 225: inventory.v1.AgentsService.GetAgentLogs:input_type -> inventory.v1.GetAgentLogsRequest + 26, // 226: inventory.v1.AgentsService.AddAgent:input_type -> inventory.v1.AddAgentRequest + 28, // 227: inventory.v1.AgentsService.ChangeAgent:input_type -> inventory.v1.ChangeAgentRequest + 62, // 228: inventory.v1.AgentsService.RemoveAgent:input_type -> inventory.v1.RemoveAgentRequest + 21, // 229: inventory.v1.AgentsService.ListAgents:output_type -> inventory.v1.ListAgentsResponse + 23, // 230: inventory.v1.AgentsService.GetAgent:output_type -> inventory.v1.GetAgentResponse + 25, // 231: inventory.v1.AgentsService.GetAgentLogs:output_type -> inventory.v1.GetAgentLogsResponse + 27, // 232: inventory.v1.AgentsService.AddAgent:output_type -> inventory.v1.AddAgentResponse + 29, // 233: inventory.v1.AgentsService.ChangeAgent:output_type -> inventory.v1.ChangeAgentResponse + 63, // 234: inventory.v1.AgentsService.RemoveAgent:output_type -> inventory.v1.RemoveAgentResponse + 229, // [229:235] is the sub-list for method output_type + 223, // [223:229] is the sub-list for method input_type + 223, // [223:223] is the sub-list for extension type_name + 223, // [223:223] is the sub-list for extension extendee + 0, // [0:223] is the sub-list for field type_name } func init() { file_inventory_v1_agents_proto_init() } diff --git a/api/inventory/v1/agents.pb.validate.go b/api/inventory/v1/agents.pb.validate.go index af3f6255a8d..7e7d2e43431 100644 --- a/api/inventory/v1/agents.pb.validate.go +++ b/api/inventory/v1/agents.pb.validate.go @@ -2340,6 +2340,8 @@ func (m *ExternalExporter) validate(all bool) error { // no validation rules for TlsSkipVerify + // no validation rules for Status + if len(errors) > 0 { return ExternalExporterMultiError(errors) } diff --git a/api/inventory/v1/agents.proto b/api/inventory/v1/agents.proto index e9dd7c9f8ef..5b3b6503cfe 100644 --- a/api/inventory/v1/agents.proto +++ b/api/inventory/v1/agents.proto @@ -669,6 +669,8 @@ message ExternalExporter { common.MetricsResolutions metrics_resolutions = 12; // Skip TLS certificate and hostname verification. bool tls_skip_verify = 13; + // Actual Agent status. + AgentStatus status = 14; } // AzureDatabaseExporter runs on Generic or Container Node and exposes RemoteAzure Node metrics. diff --git a/api/inventory/v1/json/client/agents_service/add_agent_responses.go b/api/inventory/v1/json/client/agents_service/add_agent_responses.go index 9137686f21d..fcfeb04d239 100644 --- a/api/inventory/v1/json/client/agents_service/add_agent_responses.go +++ b/api/inventory/v1/json/client/agents_service/add_agent_responses.go @@ -2716,6 +2716,18 @@ type AddAgentOKBodyExternalExporter struct { // Skip TLS certificate and hostname verification. TLSSkipVerify bool `json:"tls_skip_verify,omitempty"` + // AgentStatus represents actual Agent status. + // + // - AGENT_STATUS_STARTING: Agent is starting. + // - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting. + // - AGENT_STATUS_RUNNING: Agent is running. + // - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon. + // - AGENT_STATUS_STOPPING: Agent is stopping. + // - AGENT_STATUS_DONE: Agent has been stopped or disabled. + // - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state. + // Enum: ["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_INITIALIZATION_ERROR","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"] + Status *string `json:"status,omitempty"` + // metrics resolutions MetricsResolutions *AddAgentOKBodyExternalExporterMetricsResolutions `json:"metrics_resolutions,omitempty"` } @@ -2724,6 +2736,10 @@ type AddAgentOKBodyExternalExporter struct { func (o *AddAgentOKBodyExternalExporter) Validate(formats strfmt.Registry) error { var res []error + if err := o.validateStatus(formats); err != nil { + res = append(res, err) + } + if err := o.validateMetricsResolutions(formats); err != nil { res = append(res, err) } @@ -2734,6 +2750,66 @@ func (o *AddAgentOKBodyExternalExporter) Validate(formats strfmt.Registry) error return nil } +var addAgentOkBodyExternalExporterTypeStatusPropEnum []any + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_INITIALIZATION_ERROR","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + addAgentOkBodyExternalExporterTypeStatusPropEnum = append(addAgentOkBodyExternalExporterTypeStatusPropEnum, v) + } +} + +const ( + + // AddAgentOKBodyExternalExporterStatusAGENTSTATUSUNSPECIFIED captures enum value "AGENT_STATUS_UNSPECIFIED" + AddAgentOKBodyExternalExporterStatusAGENTSTATUSUNSPECIFIED string = "AGENT_STATUS_UNSPECIFIED" + + // AddAgentOKBodyExternalExporterStatusAGENTSTATUSSTARTING captures enum value "AGENT_STATUS_STARTING" + AddAgentOKBodyExternalExporterStatusAGENTSTATUSSTARTING string = "AGENT_STATUS_STARTING" + + // AddAgentOKBodyExternalExporterStatusAGENTSTATUSINITIALIZATIONERROR captures enum value "AGENT_STATUS_INITIALIZATION_ERROR" + AddAgentOKBodyExternalExporterStatusAGENTSTATUSINITIALIZATIONERROR string = "AGENT_STATUS_INITIALIZATION_ERROR" + + // AddAgentOKBodyExternalExporterStatusAGENTSTATUSRUNNING captures enum value "AGENT_STATUS_RUNNING" + AddAgentOKBodyExternalExporterStatusAGENTSTATUSRUNNING string = "AGENT_STATUS_RUNNING" + + // AddAgentOKBodyExternalExporterStatusAGENTSTATUSWAITING captures enum value "AGENT_STATUS_WAITING" + AddAgentOKBodyExternalExporterStatusAGENTSTATUSWAITING string = "AGENT_STATUS_WAITING" + + // AddAgentOKBodyExternalExporterStatusAGENTSTATUSSTOPPING captures enum value "AGENT_STATUS_STOPPING" + AddAgentOKBodyExternalExporterStatusAGENTSTATUSSTOPPING string = "AGENT_STATUS_STOPPING" + + // AddAgentOKBodyExternalExporterStatusAGENTSTATUSDONE captures enum value "AGENT_STATUS_DONE" + AddAgentOKBodyExternalExporterStatusAGENTSTATUSDONE string = "AGENT_STATUS_DONE" + + // AddAgentOKBodyExternalExporterStatusAGENTSTATUSUNKNOWN captures enum value "AGENT_STATUS_UNKNOWN" + AddAgentOKBodyExternalExporterStatusAGENTSTATUSUNKNOWN string = "AGENT_STATUS_UNKNOWN" +) + +// prop value enum +func (o *AddAgentOKBodyExternalExporter) validateStatusEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, addAgentOkBodyExternalExporterTypeStatusPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *AddAgentOKBodyExternalExporter) validateStatus(formats strfmt.Registry) error { + if swag.IsZero(o.Status) { // not required + return nil + } + + // value enum + if err := o.validateStatusEnum("addAgentOk"+"."+"external_exporter"+"."+"status", "body", *o.Status); err != nil { + return err + } + + return nil +} + func (o *AddAgentOKBodyExternalExporter) validateMetricsResolutions(formats strfmt.Registry) error { if swag.IsZero(o.MetricsResolutions) { // not required return nil diff --git a/api/inventory/v1/json/client/agents_service/change_agent_responses.go b/api/inventory/v1/json/client/agents_service/change_agent_responses.go index 2292ac63390..a39b6ae0161 100644 --- a/api/inventory/v1/json/client/agents_service/change_agent_responses.go +++ b/api/inventory/v1/json/client/agents_service/change_agent_responses.go @@ -2716,6 +2716,18 @@ type ChangeAgentOKBodyExternalExporter struct { // Skip TLS certificate and hostname verification. TLSSkipVerify bool `json:"tls_skip_verify,omitempty"` + // AgentStatus represents actual Agent status. + // + // - AGENT_STATUS_STARTING: Agent is starting. + // - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting. + // - AGENT_STATUS_RUNNING: Agent is running. + // - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon. + // - AGENT_STATUS_STOPPING: Agent is stopping. + // - AGENT_STATUS_DONE: Agent has been stopped or disabled. + // - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state. + // Enum: ["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_INITIALIZATION_ERROR","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"] + Status *string `json:"status,omitempty"` + // metrics resolutions MetricsResolutions *ChangeAgentOKBodyExternalExporterMetricsResolutions `json:"metrics_resolutions,omitempty"` } @@ -2724,6 +2736,10 @@ type ChangeAgentOKBodyExternalExporter struct { func (o *ChangeAgentOKBodyExternalExporter) Validate(formats strfmt.Registry) error { var res []error + if err := o.validateStatus(formats); err != nil { + res = append(res, err) + } + if err := o.validateMetricsResolutions(formats); err != nil { res = append(res, err) } @@ -2734,6 +2750,66 @@ func (o *ChangeAgentOKBodyExternalExporter) Validate(formats strfmt.Registry) er return nil } +var changeAgentOkBodyExternalExporterTypeStatusPropEnum []any + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_INITIALIZATION_ERROR","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + changeAgentOkBodyExternalExporterTypeStatusPropEnum = append(changeAgentOkBodyExternalExporterTypeStatusPropEnum, v) + } +} + +const ( + + // ChangeAgentOKBodyExternalExporterStatusAGENTSTATUSUNSPECIFIED captures enum value "AGENT_STATUS_UNSPECIFIED" + ChangeAgentOKBodyExternalExporterStatusAGENTSTATUSUNSPECIFIED string = "AGENT_STATUS_UNSPECIFIED" + + // ChangeAgentOKBodyExternalExporterStatusAGENTSTATUSSTARTING captures enum value "AGENT_STATUS_STARTING" + ChangeAgentOKBodyExternalExporterStatusAGENTSTATUSSTARTING string = "AGENT_STATUS_STARTING" + + // ChangeAgentOKBodyExternalExporterStatusAGENTSTATUSINITIALIZATIONERROR captures enum value "AGENT_STATUS_INITIALIZATION_ERROR" + ChangeAgentOKBodyExternalExporterStatusAGENTSTATUSINITIALIZATIONERROR string = "AGENT_STATUS_INITIALIZATION_ERROR" + + // ChangeAgentOKBodyExternalExporterStatusAGENTSTATUSRUNNING captures enum value "AGENT_STATUS_RUNNING" + ChangeAgentOKBodyExternalExporterStatusAGENTSTATUSRUNNING string = "AGENT_STATUS_RUNNING" + + // ChangeAgentOKBodyExternalExporterStatusAGENTSTATUSWAITING captures enum value "AGENT_STATUS_WAITING" + ChangeAgentOKBodyExternalExporterStatusAGENTSTATUSWAITING string = "AGENT_STATUS_WAITING" + + // ChangeAgentOKBodyExternalExporterStatusAGENTSTATUSSTOPPING captures enum value "AGENT_STATUS_STOPPING" + ChangeAgentOKBodyExternalExporterStatusAGENTSTATUSSTOPPING string = "AGENT_STATUS_STOPPING" + + // ChangeAgentOKBodyExternalExporterStatusAGENTSTATUSDONE captures enum value "AGENT_STATUS_DONE" + ChangeAgentOKBodyExternalExporterStatusAGENTSTATUSDONE string = "AGENT_STATUS_DONE" + + // ChangeAgentOKBodyExternalExporterStatusAGENTSTATUSUNKNOWN captures enum value "AGENT_STATUS_UNKNOWN" + ChangeAgentOKBodyExternalExporterStatusAGENTSTATUSUNKNOWN string = "AGENT_STATUS_UNKNOWN" +) + +// prop value enum +func (o *ChangeAgentOKBodyExternalExporter) validateStatusEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentOkBodyExternalExporterTypeStatusPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *ChangeAgentOKBodyExternalExporter) validateStatus(formats strfmt.Registry) error { + if swag.IsZero(o.Status) { // not required + return nil + } + + // value enum + if err := o.validateStatusEnum("changeAgentOk"+"."+"external_exporter"+"."+"status", "body", *o.Status); err != nil { + return err + } + + return nil +} + func (o *ChangeAgentOKBodyExternalExporter) validateMetricsResolutions(formats strfmt.Registry) error { if swag.IsZero(o.MetricsResolutions) { // not required return nil diff --git a/api/inventory/v1/json/client/agents_service/get_agent_responses.go b/api/inventory/v1/json/client/agents_service/get_agent_responses.go index a96ef2c1ae8..c3f4d3b10e2 100644 --- a/api/inventory/v1/json/client/agents_service/get_agent_responses.go +++ b/api/inventory/v1/json/client/agents_service/get_agent_responses.go @@ -1860,6 +1860,18 @@ type GetAgentOKBodyExternalExporter struct { // Skip TLS certificate and hostname verification. TLSSkipVerify bool `json:"tls_skip_verify,omitempty"` + // AgentStatus represents actual Agent status. + // + // - AGENT_STATUS_STARTING: Agent is starting. + // - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting. + // - AGENT_STATUS_RUNNING: Agent is running. + // - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon. + // - AGENT_STATUS_STOPPING: Agent is stopping. + // - AGENT_STATUS_DONE: Agent has been stopped or disabled. + // - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state. + // Enum: ["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_INITIALIZATION_ERROR","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"] + Status *string `json:"status,omitempty"` + // metrics resolutions MetricsResolutions *GetAgentOKBodyExternalExporterMetricsResolutions `json:"metrics_resolutions,omitempty"` } @@ -1868,6 +1880,10 @@ type GetAgentOKBodyExternalExporter struct { func (o *GetAgentOKBodyExternalExporter) Validate(formats strfmt.Registry) error { var res []error + if err := o.validateStatus(formats); err != nil { + res = append(res, err) + } + if err := o.validateMetricsResolutions(formats); err != nil { res = append(res, err) } @@ -1878,6 +1894,66 @@ func (o *GetAgentOKBodyExternalExporter) Validate(formats strfmt.Registry) error return nil } +var getAgentOkBodyExternalExporterTypeStatusPropEnum []any + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_INITIALIZATION_ERROR","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + getAgentOkBodyExternalExporterTypeStatusPropEnum = append(getAgentOkBodyExternalExporterTypeStatusPropEnum, v) + } +} + +const ( + + // GetAgentOKBodyExternalExporterStatusAGENTSTATUSUNSPECIFIED captures enum value "AGENT_STATUS_UNSPECIFIED" + GetAgentOKBodyExternalExporterStatusAGENTSTATUSUNSPECIFIED string = "AGENT_STATUS_UNSPECIFIED" + + // GetAgentOKBodyExternalExporterStatusAGENTSTATUSSTARTING captures enum value "AGENT_STATUS_STARTING" + GetAgentOKBodyExternalExporterStatusAGENTSTATUSSTARTING string = "AGENT_STATUS_STARTING" + + // GetAgentOKBodyExternalExporterStatusAGENTSTATUSINITIALIZATIONERROR captures enum value "AGENT_STATUS_INITIALIZATION_ERROR" + GetAgentOKBodyExternalExporterStatusAGENTSTATUSINITIALIZATIONERROR string = "AGENT_STATUS_INITIALIZATION_ERROR" + + // GetAgentOKBodyExternalExporterStatusAGENTSTATUSRUNNING captures enum value "AGENT_STATUS_RUNNING" + GetAgentOKBodyExternalExporterStatusAGENTSTATUSRUNNING string = "AGENT_STATUS_RUNNING" + + // GetAgentOKBodyExternalExporterStatusAGENTSTATUSWAITING captures enum value "AGENT_STATUS_WAITING" + GetAgentOKBodyExternalExporterStatusAGENTSTATUSWAITING string = "AGENT_STATUS_WAITING" + + // GetAgentOKBodyExternalExporterStatusAGENTSTATUSSTOPPING captures enum value "AGENT_STATUS_STOPPING" + GetAgentOKBodyExternalExporterStatusAGENTSTATUSSTOPPING string = "AGENT_STATUS_STOPPING" + + // GetAgentOKBodyExternalExporterStatusAGENTSTATUSDONE captures enum value "AGENT_STATUS_DONE" + GetAgentOKBodyExternalExporterStatusAGENTSTATUSDONE string = "AGENT_STATUS_DONE" + + // GetAgentOKBodyExternalExporterStatusAGENTSTATUSUNKNOWN captures enum value "AGENT_STATUS_UNKNOWN" + GetAgentOKBodyExternalExporterStatusAGENTSTATUSUNKNOWN string = "AGENT_STATUS_UNKNOWN" +) + +// prop value enum +func (o *GetAgentOKBodyExternalExporter) validateStatusEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, getAgentOkBodyExternalExporterTypeStatusPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *GetAgentOKBodyExternalExporter) validateStatus(formats strfmt.Registry) error { + if swag.IsZero(o.Status) { // not required + return nil + } + + // value enum + if err := o.validateStatusEnum("getAgentOk"+"."+"external_exporter"+"."+"status", "body", *o.Status); err != nil { + return err + } + + return nil +} + func (o *GetAgentOKBodyExternalExporter) validateMetricsResolutions(formats strfmt.Registry) error { if swag.IsZero(o.MetricsResolutions) { // not required return nil diff --git a/api/inventory/v1/json/client/agents_service/list_agents_responses.go b/api/inventory/v1/json/client/agents_service/list_agents_responses.go index 4829432f892..3f4368e984c 100644 --- a/api/inventory/v1/json/client/agents_service/list_agents_responses.go +++ b/api/inventory/v1/json/client/agents_service/list_agents_responses.go @@ -2022,6 +2022,18 @@ type ListAgentsOKBodyExternalExporterItems0 struct { // Skip TLS certificate and hostname verification. TLSSkipVerify bool `json:"tls_skip_verify,omitempty"` + // AgentStatus represents actual Agent status. + // + // - AGENT_STATUS_STARTING: Agent is starting. + // - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting. + // - AGENT_STATUS_RUNNING: Agent is running. + // - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon. + // - AGENT_STATUS_STOPPING: Agent is stopping. + // - AGENT_STATUS_DONE: Agent has been stopped or disabled. + // - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state. + // Enum: ["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_INITIALIZATION_ERROR","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"] + Status *string `json:"status,omitempty"` + // metrics resolutions MetricsResolutions *ListAgentsOKBodyExternalExporterItems0MetricsResolutions `json:"metrics_resolutions,omitempty"` } @@ -2030,6 +2042,10 @@ type ListAgentsOKBodyExternalExporterItems0 struct { func (o *ListAgentsOKBodyExternalExporterItems0) Validate(formats strfmt.Registry) error { var res []error + if err := o.validateStatus(formats); err != nil { + res = append(res, err) + } + if err := o.validateMetricsResolutions(formats); err != nil { res = append(res, err) } @@ -2040,6 +2056,66 @@ func (o *ListAgentsOKBodyExternalExporterItems0) Validate(formats strfmt.Registr return nil } +var listAgentsOkBodyExternalExporterItems0TypeStatusPropEnum []any + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_INITIALIZATION_ERROR","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + listAgentsOkBodyExternalExporterItems0TypeStatusPropEnum = append(listAgentsOkBodyExternalExporterItems0TypeStatusPropEnum, v) + } +} + +const ( + + // ListAgentsOKBodyExternalExporterItems0StatusAGENTSTATUSUNSPECIFIED captures enum value "AGENT_STATUS_UNSPECIFIED" + ListAgentsOKBodyExternalExporterItems0StatusAGENTSTATUSUNSPECIFIED string = "AGENT_STATUS_UNSPECIFIED" + + // ListAgentsOKBodyExternalExporterItems0StatusAGENTSTATUSSTARTING captures enum value "AGENT_STATUS_STARTING" + ListAgentsOKBodyExternalExporterItems0StatusAGENTSTATUSSTARTING string = "AGENT_STATUS_STARTING" + + // ListAgentsOKBodyExternalExporterItems0StatusAGENTSTATUSINITIALIZATIONERROR captures enum value "AGENT_STATUS_INITIALIZATION_ERROR" + ListAgentsOKBodyExternalExporterItems0StatusAGENTSTATUSINITIALIZATIONERROR string = "AGENT_STATUS_INITIALIZATION_ERROR" + + // ListAgentsOKBodyExternalExporterItems0StatusAGENTSTATUSRUNNING captures enum value "AGENT_STATUS_RUNNING" + ListAgentsOKBodyExternalExporterItems0StatusAGENTSTATUSRUNNING string = "AGENT_STATUS_RUNNING" + + // ListAgentsOKBodyExternalExporterItems0StatusAGENTSTATUSWAITING captures enum value "AGENT_STATUS_WAITING" + ListAgentsOKBodyExternalExporterItems0StatusAGENTSTATUSWAITING string = "AGENT_STATUS_WAITING" + + // ListAgentsOKBodyExternalExporterItems0StatusAGENTSTATUSSTOPPING captures enum value "AGENT_STATUS_STOPPING" + ListAgentsOKBodyExternalExporterItems0StatusAGENTSTATUSSTOPPING string = "AGENT_STATUS_STOPPING" + + // ListAgentsOKBodyExternalExporterItems0StatusAGENTSTATUSDONE captures enum value "AGENT_STATUS_DONE" + ListAgentsOKBodyExternalExporterItems0StatusAGENTSTATUSDONE string = "AGENT_STATUS_DONE" + + // ListAgentsOKBodyExternalExporterItems0StatusAGENTSTATUSUNKNOWN captures enum value "AGENT_STATUS_UNKNOWN" + ListAgentsOKBodyExternalExporterItems0StatusAGENTSTATUSUNKNOWN string = "AGENT_STATUS_UNKNOWN" +) + +// prop value enum +func (o *ListAgentsOKBodyExternalExporterItems0) validateStatusEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, listAgentsOkBodyExternalExporterItems0TypeStatusPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *ListAgentsOKBodyExternalExporterItems0) validateStatus(formats strfmt.Registry) error { + if swag.IsZero(o.Status) { // not required + return nil + } + + // value enum + if err := o.validateStatusEnum("status", "body", *o.Status); err != nil { + return err + } + + return nil +} + func (o *ListAgentsOKBodyExternalExporterItems0) validateMetricsResolutions(formats strfmt.Registry) error { if swag.IsZero(o.MetricsResolutions) { // not required return nil diff --git a/api/inventory/v1/json/client/services_service/add_service_responses.go b/api/inventory/v1/json/client/services_service/add_service_responses.go index d996fe20064..04f7212eda1 100644 --- a/api/inventory/v1/json/client/services_service/add_service_responses.go +++ b/api/inventory/v1/json/client/services_service/add_service_responses.go @@ -1343,6 +1343,12 @@ type AddServiceOKBodyExternal struct { // Group name of external service. Group string `json:"group,omitempty"` + + // Access address (DNS name or IP). + Address string `json:"address,omitempty"` + + // Access port. + Port int64 `json:"port,omitempty"` } // Validate validates this add service OK body external diff --git a/api/inventory/v1/json/client/services_service/change_service_responses.go b/api/inventory/v1/json/client/services_service/change_service_responses.go index 328bed109a1..3b515455437 100644 --- a/api/inventory/v1/json/client/services_service/change_service_responses.go +++ b/api/inventory/v1/json/client/services_service/change_service_responses.go @@ -1007,6 +1007,12 @@ type ChangeServiceOKBodyExternal struct { // Group name of external service. Group string `json:"group,omitempty"` + + // Access address (DNS name or IP). + Address string `json:"address,omitempty"` + + // Access port. + Port int64 `json:"port,omitempty"` } // Validate validates this change service OK body external diff --git a/api/inventory/v1/json/client/services_service/get_service_responses.go b/api/inventory/v1/json/client/services_service/get_service_responses.go index 3f2530b39c7..798b441b811 100644 --- a/api/inventory/v1/json/client/services_service/get_service_responses.go +++ b/api/inventory/v1/json/client/services_service/get_service_responses.go @@ -893,6 +893,12 @@ type GetServiceOKBodyExternal struct { // Group name of external service. Group string `json:"group,omitempty"` + + // Access address (DNS name or IP). + Address string `json:"address,omitempty"` + + // Access port. + Port int64 `json:"port,omitempty"` } // Validate validates this get service OK body external diff --git a/api/inventory/v1/json/client/services_service/list_services_responses.go b/api/inventory/v1/json/client/services_service/list_services_responses.go index 30514f2a1a7..68f7aa12d99 100644 --- a/api/inventory/v1/json/client/services_service/list_services_responses.go +++ b/api/inventory/v1/json/client/services_service/list_services_responses.go @@ -956,6 +956,12 @@ type ListServicesOKBodyExternalItems0 struct { // Group name of external service. Group string `json:"group,omitempty"` + + // Access address (DNS name or IP). + Address string `json:"address,omitempty"` + + // Access port. + Port int64 `json:"port,omitempty"` } // Validate validates this list services OK body external items0 diff --git a/api/inventory/v1/json/v1.json b/api/inventory/v1/json/v1.json index ecc1872f950..13e39636134 100644 --- a/api/inventory/v1/json/v1.json +++ b/api/inventory/v1/json/v1.json @@ -1636,6 +1636,22 @@ "description": "Skip TLS certificate and hostname verification.", "type": "boolean", "x-order": 12 + }, + "status": { + "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent has been stopped or disabled.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", + "type": "string", + "default": "AGENT_STATUS_UNSPECIFIED", + "enum": [ + "AGENT_STATUS_UNSPECIFIED", + "AGENT_STATUS_STARTING", + "AGENT_STATUS_INITIALIZATION_ERROR", + "AGENT_STATUS_RUNNING", + "AGENT_STATUS_WAITING", + "AGENT_STATUS_STOPPING", + "AGENT_STATUS_DONE", + "AGENT_STATUS_UNKNOWN" + ], + "x-order": 13 } } }, @@ -4349,6 +4365,22 @@ "description": "Skip TLS certificate and hostname verification.", "type": "boolean", "x-order": 12 + }, + "status": { + "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent has been stopped or disabled.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", + "type": "string", + "default": "AGENT_STATUS_UNSPECIFIED", + "enum": [ + "AGENT_STATUS_UNSPECIFIED", + "AGENT_STATUS_STARTING", + "AGENT_STATUS_INITIALIZATION_ERROR", + "AGENT_STATUS_RUNNING", + "AGENT_STATUS_WAITING", + "AGENT_STATUS_STOPPING", + "AGENT_STATUS_DONE", + "AGENT_STATUS_UNKNOWN" + ], + "x-order": 13 } }, "x-order": 6 @@ -6926,6 +6958,22 @@ "description": "Skip TLS certificate and hostname verification.", "type": "boolean", "x-order": 12 + }, + "status": { + "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent has been stopped or disabled.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", + "type": "string", + "default": "AGENT_STATUS_UNSPECIFIED", + "enum": [ + "AGENT_STATUS_UNSPECIFIED", + "AGENT_STATUS_STARTING", + "AGENT_STATUS_INITIALIZATION_ERROR", + "AGENT_STATUS_RUNNING", + "AGENT_STATUS_WAITING", + "AGENT_STATUS_STOPPING", + "AGENT_STATUS_DONE", + "AGENT_STATUS_UNKNOWN" + ], + "x-order": 13 } }, "x-order": 13 @@ -9038,6 +9086,22 @@ "description": "Skip TLS certificate and hostname verification.", "type": "boolean", "x-order": 12 + }, + "status": { + "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent has been stopped or disabled.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", + "type": "string", + "default": "AGENT_STATUS_UNSPECIFIED", + "enum": [ + "AGENT_STATUS_UNSPECIFIED", + "AGENT_STATUS_STARTING", + "AGENT_STATUS_INITIALIZATION_ERROR", + "AGENT_STATUS_RUNNING", + "AGENT_STATUS_WAITING", + "AGENT_STATUS_STOPPING", + "AGENT_STATUS_DONE", + "AGENT_STATUS_UNKNOWN" + ], + "x-order": 13 } }, "x-order": 5 @@ -11949,6 +12013,17 @@ "description": "Group name of external service.", "type": "string", "x-order": 7 + }, + "address": { + "description": "Access address (DNS name or IP).", + "type": "string", + "x-order": 8 + }, + "port": { + "description": "Access port.", + "type": "integer", + "format": "int64", + "x-order": 9 } } }, @@ -12830,6 +12905,17 @@ "description": "Group name of external service.", "type": "string", "x-order": 7 + }, + "address": { + "description": "Access address (DNS name or IP).", + "type": "string", + "x-order": 8 + }, + "port": { + "description": "Access port.", + "type": "integer", + "format": "int64", + "x-order": 9 } }, "x-order": 5 @@ -13334,6 +13420,17 @@ "description": "Group name of external service.", "type": "string", "x-order": 7 + }, + "address": { + "description": "Access address (DNS name or IP).", + "type": "string", + "x-order": 8 + }, + "port": { + "description": "Access port.", + "type": "integer", + "format": "int64", + "x-order": 9 } }, "x-order": 5 @@ -13880,6 +13977,17 @@ "description": "Group name of external service.", "type": "string", "x-order": 7 + }, + "address": { + "description": "Access address (DNS name or IP).", + "type": "string", + "x-order": 8 + }, + "port": { + "description": "Access port.", + "type": "integer", + "format": "int64", + "x-order": 9 } }, "x-order": 5 diff --git a/api/inventory/v1/services.pb.go b/api/inventory/v1/services.pb.go index 7487bc5f8eb..f301d5532ea 100644 --- a/api/inventory/v1/services.pb.go +++ b/api/inventory/v1/services.pb.go @@ -932,7 +932,11 @@ type ExternalService struct { // Custom user-assigned labels. CustomLabels map[string]string `protobuf:"bytes,7,rep,name=custom_labels,json=customLabels,proto3" json:"custom_labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // Group name of external service. - Group string `protobuf:"bytes,8,opt,name=group,proto3" json:"group,omitempty"` + Group string `protobuf:"bytes,8,opt,name=group,proto3" json:"group,omitempty"` + // Access address (DNS name or IP). + Address string `protobuf:"bytes,9,opt,name=address,proto3" json:"address,omitempty"` + // Access port. + Port uint32 `protobuf:"varint,10,opt,name=port,proto3" json:"port,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -1023,6 +1027,20 @@ func (x *ExternalService) GetGroup() string { return "" } +func (x *ExternalService) GetAddress() string { + if x != nil { + return x.Address + } + return "" +} + +func (x *ExternalService) GetPort() uint32 { + if x != nil { + return x.Port + } + return 0 +} + type ListServicesRequest struct { state protoimpl.MessageState `protogen:"open.v1"` // Return only Services running on that Node. @@ -3040,7 +3058,7 @@ const file_inventory_v1_services_proto_rawDesc = "" + "\rcustom_labels\x18\a \x03(\v2..inventory.v1.HAProxyService.CustomLabelsEntryR\fcustomLabels\x1a?\n" + "\x11CustomLabelsEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xfe\x02\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xac\x03\n" + "\x0fExternalService\x12\x1d\n" + "\n" + "service_id\x18\x01 \x01(\tR\tserviceId\x12!\n" + @@ -3050,7 +3068,10 @@ const file_inventory_v1_services_proto_rawDesc = "" + "\acluster\x18\x05 \x01(\tR\acluster\x12'\n" + "\x0freplication_set\x18\x06 \x01(\tR\x0ereplicationSet\x12T\n" + "\rcustom_labels\x18\a \x03(\v2/.inventory.v1.ExternalService.CustomLabelsEntryR\fcustomLabels\x12\x14\n" + - "\x05group\x18\b \x01(\tR\x05group\x1a?\n" + + "\x05group\x18\b \x01(\tR\x05group\x12\x18\n" + + "\aaddress\x18\t \x01(\tR\aaddress\x12\x12\n" + + "\x04port\x18\n" + + " \x01(\rR\x04port\x1a?\n" + "\x11CustomLabelsEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\x93\x01\n" + diff --git a/api/inventory/v1/services.pb.validate.go b/api/inventory/v1/services.pb.validate.go index 5e1af4d587b..79783d70e5d 100644 --- a/api/inventory/v1/services.pb.validate.go +++ b/api/inventory/v1/services.pb.validate.go @@ -804,6 +804,10 @@ func (m *ExternalService) validate(all bool) error { // no validation rules for Group + // no validation rules for Address + + // no validation rules for Port + if len(errors) > 0 { return ExternalServiceMultiError(errors) } diff --git a/api/inventory/v1/services.proto b/api/inventory/v1/services.proto index 937295b163f..4673a0e42ac 100644 --- a/api/inventory/v1/services.proto +++ b/api/inventory/v1/services.proto @@ -206,6 +206,10 @@ message ExternalService { map custom_labels = 7; // Group name of external service. string group = 8; + // Access address (DNS name or IP). + string address = 9; + // Access port. + uint32 port = 10; } // List diff --git a/api/management/v1/json/client/management_service/add_service_responses.go b/api/management/v1/json/client/management_service/add_service_responses.go index c65c2a2c071..ba5db36245b 100644 --- a/api/management/v1/json/client/management_service/add_service_responses.go +++ b/api/management/v1/json/client/management_service/add_service_responses.go @@ -1633,6 +1633,18 @@ type AddServiceOKBodyExternalExternalExporter struct { // Skip TLS certificate and hostname verification. TLSSkipVerify bool `json:"tls_skip_verify,omitempty"` + // AgentStatus represents actual Agent status. + // + // - AGENT_STATUS_STARTING: Agent is starting. + // - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting. + // - AGENT_STATUS_RUNNING: Agent is running. + // - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon. + // - AGENT_STATUS_STOPPING: Agent is stopping. + // - AGENT_STATUS_DONE: Agent has been stopped or disabled. + // - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state. + // Enum: ["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_INITIALIZATION_ERROR","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"] + Status *string `json:"status,omitempty"` + // metrics resolutions MetricsResolutions *AddServiceOKBodyExternalExternalExporterMetricsResolutions `json:"metrics_resolutions,omitempty"` } @@ -1641,6 +1653,10 @@ type AddServiceOKBodyExternalExternalExporter struct { func (o *AddServiceOKBodyExternalExternalExporter) Validate(formats strfmt.Registry) error { var res []error + if err := o.validateStatus(formats); err != nil { + res = append(res, err) + } + if err := o.validateMetricsResolutions(formats); err != nil { res = append(res, err) } @@ -1651,6 +1667,66 @@ func (o *AddServiceOKBodyExternalExternalExporter) Validate(formats strfmt.Regis return nil } +var addServiceOkBodyExternalExternalExporterTypeStatusPropEnum []any + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_INITIALIZATION_ERROR","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + addServiceOkBodyExternalExternalExporterTypeStatusPropEnum = append(addServiceOkBodyExternalExternalExporterTypeStatusPropEnum, v) + } +} + +const ( + + // AddServiceOKBodyExternalExternalExporterStatusAGENTSTATUSUNSPECIFIED captures enum value "AGENT_STATUS_UNSPECIFIED" + AddServiceOKBodyExternalExternalExporterStatusAGENTSTATUSUNSPECIFIED string = "AGENT_STATUS_UNSPECIFIED" + + // AddServiceOKBodyExternalExternalExporterStatusAGENTSTATUSSTARTING captures enum value "AGENT_STATUS_STARTING" + AddServiceOKBodyExternalExternalExporterStatusAGENTSTATUSSTARTING string = "AGENT_STATUS_STARTING" + + // AddServiceOKBodyExternalExternalExporterStatusAGENTSTATUSINITIALIZATIONERROR captures enum value "AGENT_STATUS_INITIALIZATION_ERROR" + AddServiceOKBodyExternalExternalExporterStatusAGENTSTATUSINITIALIZATIONERROR string = "AGENT_STATUS_INITIALIZATION_ERROR" + + // AddServiceOKBodyExternalExternalExporterStatusAGENTSTATUSRUNNING captures enum value "AGENT_STATUS_RUNNING" + AddServiceOKBodyExternalExternalExporterStatusAGENTSTATUSRUNNING string = "AGENT_STATUS_RUNNING" + + // AddServiceOKBodyExternalExternalExporterStatusAGENTSTATUSWAITING captures enum value "AGENT_STATUS_WAITING" + AddServiceOKBodyExternalExternalExporterStatusAGENTSTATUSWAITING string = "AGENT_STATUS_WAITING" + + // AddServiceOKBodyExternalExternalExporterStatusAGENTSTATUSSTOPPING captures enum value "AGENT_STATUS_STOPPING" + AddServiceOKBodyExternalExternalExporterStatusAGENTSTATUSSTOPPING string = "AGENT_STATUS_STOPPING" + + // AddServiceOKBodyExternalExternalExporterStatusAGENTSTATUSDONE captures enum value "AGENT_STATUS_DONE" + AddServiceOKBodyExternalExternalExporterStatusAGENTSTATUSDONE string = "AGENT_STATUS_DONE" + + // AddServiceOKBodyExternalExternalExporterStatusAGENTSTATUSUNKNOWN captures enum value "AGENT_STATUS_UNKNOWN" + AddServiceOKBodyExternalExternalExporterStatusAGENTSTATUSUNKNOWN string = "AGENT_STATUS_UNKNOWN" +) + +// prop value enum +func (o *AddServiceOKBodyExternalExternalExporter) validateStatusEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, addServiceOkBodyExternalExternalExporterTypeStatusPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *AddServiceOKBodyExternalExternalExporter) validateStatus(formats strfmt.Registry) error { + if swag.IsZero(o.Status) { // not required + return nil + } + + // value enum + if err := o.validateStatusEnum("addServiceOk"+"."+"external"+"."+"external_exporter"+"."+"status", "body", *o.Status); err != nil { + return err + } + + return nil +} + func (o *AddServiceOKBodyExternalExternalExporter) validateMetricsResolutions(formats strfmt.Registry) error { if swag.IsZero(o.MetricsResolutions) { // not required return nil @@ -1801,6 +1877,12 @@ type AddServiceOKBodyExternalService struct { // Group name of external service. Group string `json:"group,omitempty"` + + // Access address (DNS name or IP). + Address string `json:"address,omitempty"` + + // Access port. + Port int64 `json:"port,omitempty"` } // Validate validates this add service OK body external service @@ -2032,6 +2114,18 @@ type AddServiceOKBodyHaproxyExternalExporter struct { // Skip TLS certificate and hostname verification. TLSSkipVerify bool `json:"tls_skip_verify,omitempty"` + // AgentStatus represents actual Agent status. + // + // - AGENT_STATUS_STARTING: Agent is starting. + // - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting. + // - AGENT_STATUS_RUNNING: Agent is running. + // - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon. + // - AGENT_STATUS_STOPPING: Agent is stopping. + // - AGENT_STATUS_DONE: Agent has been stopped or disabled. + // - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state. + // Enum: ["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_INITIALIZATION_ERROR","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"] + Status *string `json:"status,omitempty"` + // metrics resolutions MetricsResolutions *AddServiceOKBodyHaproxyExternalExporterMetricsResolutions `json:"metrics_resolutions,omitempty"` } @@ -2040,6 +2134,10 @@ type AddServiceOKBodyHaproxyExternalExporter struct { func (o *AddServiceOKBodyHaproxyExternalExporter) Validate(formats strfmt.Registry) error { var res []error + if err := o.validateStatus(formats); err != nil { + res = append(res, err) + } + if err := o.validateMetricsResolutions(formats); err != nil { res = append(res, err) } @@ -2050,6 +2148,66 @@ func (o *AddServiceOKBodyHaproxyExternalExporter) Validate(formats strfmt.Regist return nil } +var addServiceOkBodyHaproxyExternalExporterTypeStatusPropEnum []any + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_INITIALIZATION_ERROR","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + addServiceOkBodyHaproxyExternalExporterTypeStatusPropEnum = append(addServiceOkBodyHaproxyExternalExporterTypeStatusPropEnum, v) + } +} + +const ( + + // AddServiceOKBodyHaproxyExternalExporterStatusAGENTSTATUSUNSPECIFIED captures enum value "AGENT_STATUS_UNSPECIFIED" + AddServiceOKBodyHaproxyExternalExporterStatusAGENTSTATUSUNSPECIFIED string = "AGENT_STATUS_UNSPECIFIED" + + // AddServiceOKBodyHaproxyExternalExporterStatusAGENTSTATUSSTARTING captures enum value "AGENT_STATUS_STARTING" + AddServiceOKBodyHaproxyExternalExporterStatusAGENTSTATUSSTARTING string = "AGENT_STATUS_STARTING" + + // AddServiceOKBodyHaproxyExternalExporterStatusAGENTSTATUSINITIALIZATIONERROR captures enum value "AGENT_STATUS_INITIALIZATION_ERROR" + AddServiceOKBodyHaproxyExternalExporterStatusAGENTSTATUSINITIALIZATIONERROR string = "AGENT_STATUS_INITIALIZATION_ERROR" + + // AddServiceOKBodyHaproxyExternalExporterStatusAGENTSTATUSRUNNING captures enum value "AGENT_STATUS_RUNNING" + AddServiceOKBodyHaproxyExternalExporterStatusAGENTSTATUSRUNNING string = "AGENT_STATUS_RUNNING" + + // AddServiceOKBodyHaproxyExternalExporterStatusAGENTSTATUSWAITING captures enum value "AGENT_STATUS_WAITING" + AddServiceOKBodyHaproxyExternalExporterStatusAGENTSTATUSWAITING string = "AGENT_STATUS_WAITING" + + // AddServiceOKBodyHaproxyExternalExporterStatusAGENTSTATUSSTOPPING captures enum value "AGENT_STATUS_STOPPING" + AddServiceOKBodyHaproxyExternalExporterStatusAGENTSTATUSSTOPPING string = "AGENT_STATUS_STOPPING" + + // AddServiceOKBodyHaproxyExternalExporterStatusAGENTSTATUSDONE captures enum value "AGENT_STATUS_DONE" + AddServiceOKBodyHaproxyExternalExporterStatusAGENTSTATUSDONE string = "AGENT_STATUS_DONE" + + // AddServiceOKBodyHaproxyExternalExporterStatusAGENTSTATUSUNKNOWN captures enum value "AGENT_STATUS_UNKNOWN" + AddServiceOKBodyHaproxyExternalExporterStatusAGENTSTATUSUNKNOWN string = "AGENT_STATUS_UNKNOWN" +) + +// prop value enum +func (o *AddServiceOKBodyHaproxyExternalExporter) validateStatusEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, addServiceOkBodyHaproxyExternalExporterTypeStatusPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *AddServiceOKBodyHaproxyExternalExporter) validateStatus(formats strfmt.Registry) error { + if swag.IsZero(o.Status) { // not required + return nil + } + + // value enum + if err := o.validateStatusEnum("addServiceOk"+"."+"haproxy"+"."+"external_exporter"+"."+"status", "body", *o.Status); err != nil { + return err + } + + return nil +} + func (o *AddServiceOKBodyHaproxyExternalExporter) validateMetricsResolutions(formats strfmt.Registry) error { if swag.IsZero(o.MetricsResolutions) { // not required return nil diff --git a/api/management/v1/json/v1.json b/api/management/v1/json/v1.json index a8a3b6f60c4..22fe9bbfa18 100644 --- a/api/management/v1/json/v1.json +++ b/api/management/v1/json/v1.json @@ -5411,6 +5411,22 @@ "description": "Skip TLS certificate and hostname verification.", "type": "boolean", "x-order": 12 + }, + "status": { + "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent has been stopped or disabled.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", + "type": "string", + "default": "AGENT_STATUS_UNSPECIFIED", + "enum": [ + "AGENT_STATUS_UNSPECIFIED", + "AGENT_STATUS_STARTING", + "AGENT_STATUS_INITIALIZATION_ERROR", + "AGENT_STATUS_RUNNING", + "AGENT_STATUS_WAITING", + "AGENT_STATUS_STOPPING", + "AGENT_STATUS_DONE", + "AGENT_STATUS_UNKNOWN" + ], + "x-order": 13 } }, "x-order": 1 @@ -5467,6 +5483,17 @@ "description": "Group name of external service.", "type": "string", "x-order": 7 + }, + "address": { + "description": "Access address (DNS name or IP).", + "type": "string", + "x-order": 8 + }, + "port": { + "description": "Access port.", + "type": "integer", + "format": "int64", + "x-order": 9 } }, "x-order": 0 @@ -5560,6 +5587,22 @@ "description": "Skip TLS certificate and hostname verification.", "type": "boolean", "x-order": 12 + }, + "status": { + "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent has been stopped or disabled.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", + "type": "string", + "default": "AGENT_STATUS_UNSPECIFIED", + "enum": [ + "AGENT_STATUS_UNSPECIFIED", + "AGENT_STATUS_STARTING", + "AGENT_STATUS_INITIALIZATION_ERROR", + "AGENT_STATUS_RUNNING", + "AGENT_STATUS_WAITING", + "AGENT_STATUS_STOPPING", + "AGENT_STATUS_DONE", + "AGENT_STATUS_UNKNOWN" + ], + "x-order": 13 } }, "x-order": 1 diff --git a/api/swagger/swagger-dev.json b/api/swagger/swagger-dev.json index 5151a8cec36..8ceda99b6c0 100644 --- a/api/swagger/swagger-dev.json +++ b/api/swagger/swagger-dev.json @@ -6770,6 +6770,22 @@ "description": "Skip TLS certificate and hostname verification.", "type": "boolean", "x-order": 12 + }, + "status": { + "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent has been stopped or disabled.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", + "type": "string", + "default": "AGENT_STATUS_UNSPECIFIED", + "enum": [ + "AGENT_STATUS_UNSPECIFIED", + "AGENT_STATUS_STARTING", + "AGENT_STATUS_INITIALIZATION_ERROR", + "AGENT_STATUS_RUNNING", + "AGENT_STATUS_WAITING", + "AGENT_STATUS_STOPPING", + "AGENT_STATUS_DONE", + "AGENT_STATUS_UNKNOWN" + ], + "x-order": 13 } } }, @@ -9483,6 +9499,22 @@ "description": "Skip TLS certificate and hostname verification.", "type": "boolean", "x-order": 12 + }, + "status": { + "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent has been stopped or disabled.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", + "type": "string", + "default": "AGENT_STATUS_UNSPECIFIED", + "enum": [ + "AGENT_STATUS_UNSPECIFIED", + "AGENT_STATUS_STARTING", + "AGENT_STATUS_INITIALIZATION_ERROR", + "AGENT_STATUS_RUNNING", + "AGENT_STATUS_WAITING", + "AGENT_STATUS_STOPPING", + "AGENT_STATUS_DONE", + "AGENT_STATUS_UNKNOWN" + ], + "x-order": 13 } }, "x-order": 6 @@ -12060,6 +12092,22 @@ "description": "Skip TLS certificate and hostname verification.", "type": "boolean", "x-order": 12 + }, + "status": { + "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent has been stopped or disabled.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", + "type": "string", + "default": "AGENT_STATUS_UNSPECIFIED", + "enum": [ + "AGENT_STATUS_UNSPECIFIED", + "AGENT_STATUS_STARTING", + "AGENT_STATUS_INITIALIZATION_ERROR", + "AGENT_STATUS_RUNNING", + "AGENT_STATUS_WAITING", + "AGENT_STATUS_STOPPING", + "AGENT_STATUS_DONE", + "AGENT_STATUS_UNKNOWN" + ], + "x-order": 13 } }, "x-order": 13 @@ -14172,6 +14220,22 @@ "description": "Skip TLS certificate and hostname verification.", "type": "boolean", "x-order": 12 + }, + "status": { + "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent has been stopped or disabled.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", + "type": "string", + "default": "AGENT_STATUS_UNSPECIFIED", + "enum": [ + "AGENT_STATUS_UNSPECIFIED", + "AGENT_STATUS_STARTING", + "AGENT_STATUS_INITIALIZATION_ERROR", + "AGENT_STATUS_RUNNING", + "AGENT_STATUS_WAITING", + "AGENT_STATUS_STOPPING", + "AGENT_STATUS_DONE", + "AGENT_STATUS_UNKNOWN" + ], + "x-order": 13 } }, "x-order": 5 @@ -17083,6 +17147,17 @@ "description": "Group name of external service.", "type": "string", "x-order": 7 + }, + "address": { + "description": "Access address (DNS name or IP).", + "type": "string", + "x-order": 8 + }, + "port": { + "description": "Access port.", + "type": "integer", + "format": "int64", + "x-order": 9 } } }, @@ -17964,6 +18039,17 @@ "description": "Group name of external service.", "type": "string", "x-order": 7 + }, + "address": { + "description": "Access address (DNS name or IP).", + "type": "string", + "x-order": 8 + }, + "port": { + "description": "Access port.", + "type": "integer", + "format": "int64", + "x-order": 9 } }, "x-order": 5 @@ -18468,6 +18554,17 @@ "description": "Group name of external service.", "type": "string", "x-order": 7 + }, + "address": { + "description": "Access address (DNS name or IP).", + "type": "string", + "x-order": 8 + }, + "port": { + "description": "Access port.", + "type": "integer", + "format": "int64", + "x-order": 9 } }, "x-order": 5 @@ -19014,6 +19111,17 @@ "description": "Group name of external service.", "type": "string", "x-order": 7 + }, + "address": { + "description": "Access address (DNS name or IP).", + "type": "string", + "x-order": 8 + }, + "port": { + "description": "Access port.", + "type": "integer", + "format": "int64", + "x-order": 9 } }, "x-order": 5 @@ -24659,6 +24767,22 @@ "description": "Skip TLS certificate and hostname verification.", "type": "boolean", "x-order": 12 + }, + "status": { + "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent has been stopped or disabled.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", + "type": "string", + "default": "AGENT_STATUS_UNSPECIFIED", + "enum": [ + "AGENT_STATUS_UNSPECIFIED", + "AGENT_STATUS_STARTING", + "AGENT_STATUS_INITIALIZATION_ERROR", + "AGENT_STATUS_RUNNING", + "AGENT_STATUS_WAITING", + "AGENT_STATUS_STOPPING", + "AGENT_STATUS_DONE", + "AGENT_STATUS_UNKNOWN" + ], + "x-order": 13 } }, "x-order": 1 @@ -24715,6 +24839,17 @@ "description": "Group name of external service.", "type": "string", "x-order": 7 + }, + "address": { + "description": "Access address (DNS name or IP).", + "type": "string", + "x-order": 8 + }, + "port": { + "description": "Access port.", + "type": "integer", + "format": "int64", + "x-order": 9 } }, "x-order": 0 @@ -24808,6 +24943,22 @@ "description": "Skip TLS certificate and hostname verification.", "type": "boolean", "x-order": 12 + }, + "status": { + "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent has been stopped or disabled.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", + "type": "string", + "default": "AGENT_STATUS_UNSPECIFIED", + "enum": [ + "AGENT_STATUS_UNSPECIFIED", + "AGENT_STATUS_STARTING", + "AGENT_STATUS_INITIALIZATION_ERROR", + "AGENT_STATUS_RUNNING", + "AGENT_STATUS_WAITING", + "AGENT_STATUS_STOPPING", + "AGENT_STATUS_DONE", + "AGENT_STATUS_UNKNOWN" + ], + "x-order": 13 } }, "x-order": 1 diff --git a/api/swagger/swagger.json b/api/swagger/swagger.json index 5d4d24e5f33..b83e5ae670c 100644 --- a/api/swagger/swagger.json +++ b/api/swagger/swagger.json @@ -5812,6 +5812,22 @@ "description": "Skip TLS certificate and hostname verification.", "type": "boolean", "x-order": 12 + }, + "status": { + "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent has been stopped or disabled.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", + "type": "string", + "default": "AGENT_STATUS_UNSPECIFIED", + "enum": [ + "AGENT_STATUS_UNSPECIFIED", + "AGENT_STATUS_STARTING", + "AGENT_STATUS_INITIALIZATION_ERROR", + "AGENT_STATUS_RUNNING", + "AGENT_STATUS_WAITING", + "AGENT_STATUS_STOPPING", + "AGENT_STATUS_DONE", + "AGENT_STATUS_UNKNOWN" + ], + "x-order": 13 } } }, @@ -8525,6 +8541,22 @@ "description": "Skip TLS certificate and hostname verification.", "type": "boolean", "x-order": 12 + }, + "status": { + "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent has been stopped or disabled.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", + "type": "string", + "default": "AGENT_STATUS_UNSPECIFIED", + "enum": [ + "AGENT_STATUS_UNSPECIFIED", + "AGENT_STATUS_STARTING", + "AGENT_STATUS_INITIALIZATION_ERROR", + "AGENT_STATUS_RUNNING", + "AGENT_STATUS_WAITING", + "AGENT_STATUS_STOPPING", + "AGENT_STATUS_DONE", + "AGENT_STATUS_UNKNOWN" + ], + "x-order": 13 } }, "x-order": 6 @@ -11102,6 +11134,22 @@ "description": "Skip TLS certificate and hostname verification.", "type": "boolean", "x-order": 12 + }, + "status": { + "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent has been stopped or disabled.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", + "type": "string", + "default": "AGENT_STATUS_UNSPECIFIED", + "enum": [ + "AGENT_STATUS_UNSPECIFIED", + "AGENT_STATUS_STARTING", + "AGENT_STATUS_INITIALIZATION_ERROR", + "AGENT_STATUS_RUNNING", + "AGENT_STATUS_WAITING", + "AGENT_STATUS_STOPPING", + "AGENT_STATUS_DONE", + "AGENT_STATUS_UNKNOWN" + ], + "x-order": 13 } }, "x-order": 13 @@ -13214,6 +13262,22 @@ "description": "Skip TLS certificate and hostname verification.", "type": "boolean", "x-order": 12 + }, + "status": { + "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent has been stopped or disabled.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", + "type": "string", + "default": "AGENT_STATUS_UNSPECIFIED", + "enum": [ + "AGENT_STATUS_UNSPECIFIED", + "AGENT_STATUS_STARTING", + "AGENT_STATUS_INITIALIZATION_ERROR", + "AGENT_STATUS_RUNNING", + "AGENT_STATUS_WAITING", + "AGENT_STATUS_STOPPING", + "AGENT_STATUS_DONE", + "AGENT_STATUS_UNKNOWN" + ], + "x-order": 13 } }, "x-order": 5 @@ -16125,6 +16189,17 @@ "description": "Group name of external service.", "type": "string", "x-order": 7 + }, + "address": { + "description": "Access address (DNS name or IP).", + "type": "string", + "x-order": 8 + }, + "port": { + "description": "Access port.", + "type": "integer", + "format": "int64", + "x-order": 9 } } }, @@ -17006,6 +17081,17 @@ "description": "Group name of external service.", "type": "string", "x-order": 7 + }, + "address": { + "description": "Access address (DNS name or IP).", + "type": "string", + "x-order": 8 + }, + "port": { + "description": "Access port.", + "type": "integer", + "format": "int64", + "x-order": 9 } }, "x-order": 5 @@ -17510,6 +17596,17 @@ "description": "Group name of external service.", "type": "string", "x-order": 7 + }, + "address": { + "description": "Access address (DNS name or IP).", + "type": "string", + "x-order": 8 + }, + "port": { + "description": "Access port.", + "type": "integer", + "format": "int64", + "x-order": 9 } }, "x-order": 5 @@ -18056,6 +18153,17 @@ "description": "Group name of external service.", "type": "string", "x-order": 7 + }, + "address": { + "description": "Access address (DNS name or IP).", + "type": "string", + "x-order": 8 + }, + "port": { + "description": "Access port.", + "type": "integer", + "format": "int64", + "x-order": 9 } }, "x-order": 5 @@ -23701,6 +23809,22 @@ "description": "Skip TLS certificate and hostname verification.", "type": "boolean", "x-order": 12 + }, + "status": { + "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent has been stopped or disabled.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", + "type": "string", + "default": "AGENT_STATUS_UNSPECIFIED", + "enum": [ + "AGENT_STATUS_UNSPECIFIED", + "AGENT_STATUS_STARTING", + "AGENT_STATUS_INITIALIZATION_ERROR", + "AGENT_STATUS_RUNNING", + "AGENT_STATUS_WAITING", + "AGENT_STATUS_STOPPING", + "AGENT_STATUS_DONE", + "AGENT_STATUS_UNKNOWN" + ], + "x-order": 13 } }, "x-order": 1 @@ -23757,6 +23881,17 @@ "description": "Group name of external service.", "type": "string", "x-order": 7 + }, + "address": { + "description": "Access address (DNS name or IP).", + "type": "string", + "x-order": 8 + }, + "port": { + "description": "Access port.", + "type": "integer", + "format": "int64", + "x-order": 9 } }, "x-order": 0 @@ -23850,6 +23985,22 @@ "description": "Skip TLS certificate and hostname verification.", "type": "boolean", "x-order": 12 + }, + "status": { + "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent has been stopped or disabled.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", + "type": "string", + "default": "AGENT_STATUS_UNSPECIFIED", + "enum": [ + "AGENT_STATUS_UNSPECIFIED", + "AGENT_STATUS_STARTING", + "AGENT_STATUS_INITIALIZATION_ERROR", + "AGENT_STATUS_RUNNING", + "AGENT_STATUS_WAITING", + "AGENT_STATUS_STOPPING", + "AGENT_STATUS_DONE", + "AGENT_STATUS_UNKNOWN" + ], + "x-order": 13 } }, "x-order": 1 diff --git a/managed/cmd/pmm-managed/main.go b/managed/cmd/pmm-managed/main.go index 714ed0d0a8a..b3569fce44a 100644 --- a/managed/cmd/pmm-managed/main.go +++ b/managed/cmd/pmm-managed/main.go @@ -197,36 +197,37 @@ func addLogsHandler(mux *http.ServeMux, logs *server.Logs) { } type gRPCServerDeps struct { - db *reform.DB - ha *ha.Service - checksService *checks.Service - config *config.Config - agentsRegistry *agents.Registry - handler *agents.Handler - actions *agents.ActionsService - agentService *agents.AgentService - jobsService *agents.JobsService - connectionCheck *agents.ConnectionChecker - serviceInfoBroker *agents.ServiceInfoBroker - agentsStateUpdater *agents.StateUpdater - grafanaClient *grafana.Client - templatesService *alerting.Service - backupService *backup.Service - dumpService *dump.Service - compatibilityService *backup.CompatibilityService - backupRemovalService *backup.RemovalService - pbmPITRService *backup.PBMPITRService - vmClient *metrics.Client - minioClient *minio.Client - settings *models.Settings - platformClient *platformClient.Client - schedulerService *scheduler.Service - supervisord *supervisord.Service - server *server.Server - uieventsService *uievents.Service - versionCache *versioncache.Service - vmdb *victoriametrics.Service - vmalert *vmalert.Service + db *reform.DB + ha *ha.Service + checksService *checks.Service + config *config.Config + agentsRegistry *agents.Registry + handler *agents.Handler + actions *agents.ActionsService + agentService *agents.AgentService + jobsService *agents.JobsService + connectionCheck *agents.ConnectionChecker + serviceInfoBroker *agents.ServiceInfoBroker + agentsStateUpdater *agents.StateUpdater + externalExporterStatusSvc *agents.ExternalExporterStatusService + grafanaClient *grafana.Client + templatesService *alerting.Service + backupService *backup.Service + dumpService *dump.Service + compatibilityService *backup.CompatibilityService + backupRemovalService *backup.RemovalService + pbmPITRService *backup.PBMPITRService + vmClient *metrics.Client + minioClient *minio.Client + settings *models.Settings + platformClient *platformClient.Client + schedulerService *scheduler.Service + supervisord *supervisord.Service + server *server.Server + uieventsService *uievents.Service + versionCache *versioncache.Service + vmdb *victoriametrics.Service + vmalert *vmalert.Service } // runGRPCServer runs gRPC server until context is canceled, then gracefully stops it. @@ -969,6 +970,7 @@ func main() { //nolint:maintidx,cyclop if err != nil { l.Fatalf("Could not create Clickhouse client: %s", err) } + externalExporterStatusSvc := agents.NewExternalExporterStatusService(db, v1.NewAPI(vmClient)) checksService := checks.New(db, actionsService, v1.NewAPI(vmClient), clickhouseClient) prom.MustRegister(checksService) @@ -1100,6 +1102,12 @@ func main() { //nolint:maintidx,cyclop vmdb.Run(ctx) }() + wg.Add(1) + go func() { + defer wg.Done() + externalExporterStatusSvc.Run(ctx) + }() + haService.AddLeaderService(ha.NewContextService("checks", func(ctx context.Context) error { checksService.Run(ctx) return nil @@ -1139,36 +1147,37 @@ func main() { //nolint:maintidx,cyclop defer wg.Done() runGRPCServer(ctx, &gRPCServerDeps{ - actions: actionsService, - agentService: agentService, - agentsRegistry: agentsRegistry, - agentsStateUpdater: agentsStateUpdater, - backupRemovalService: backupRemovalService, - backupService: backupService, - checksService: checksService, - compatibilityService: compatibilityService, - config: &cfg.Config, - connectionCheck: connectionCheck, - db: db, - dumpService: dumpService, - grafanaClient: grafanaClient, - handler: agentsHandler, - ha: haService, - jobsService: jobsService, - minioClient: minioClient, - pbmPITRService: pbmPITRService, - platformClient: platformClient, - schedulerService: schedulerService, - server: server, - serviceInfoBroker: serviceInfoBroker, - settings: settings, - supervisord: supervisord, - templatesService: alertingService, - uieventsService: uieventsService, - versionCache: versionCache, - vmalert: vmalert, - vmClient: &vmClient, - vmdb: vmdb, + actions: actionsService, + agentService: agentService, + agentsRegistry: agentsRegistry, + agentsStateUpdater: agentsStateUpdater, + externalExporterStatusSvc: externalExporterStatusSvc, + backupRemovalService: backupRemovalService, + backupService: backupService, + checksService: checksService, + compatibilityService: compatibilityService, + config: &cfg.Config, + connectionCheck: connectionCheck, + db: db, + dumpService: dumpService, + grafanaClient: grafanaClient, + handler: agentsHandler, + ha: haService, + jobsService: jobsService, + minioClient: minioClient, + pbmPITRService: pbmPITRService, + platformClient: platformClient, + schedulerService: schedulerService, + server: server, + serviceInfoBroker: serviceInfoBroker, + settings: settings, + supervisord: supervisord, + templatesService: alertingService, + uieventsService: uieventsService, + versionCache: versionCache, + vmalert: vmalert, + vmClient: &vmClient, + vmdb: vmdb, }) }() diff --git a/managed/models/agent_helpers_test.go b/managed/models/agent_helpers_test.go index 70f6d4394ce..c6b6f9e78ff 100644 --- a/managed/models/agent_helpers_test.go +++ b/managed/models/agent_helpers_test.go @@ -505,6 +505,7 @@ func TestAgentHelpers(t *testing.T) { RunsOnNodeID: pointer.ToString("N1"), ServiceID: pointer.ToString("S1"), ListenPort: pointer.ToUint16(9104), + Status: models.AgentStatusUnknown, ExporterOptions: models.ExporterOptions{ MetricsPath: "/metrics", MetricsScheme: "http", diff --git a/managed/models/agent_model.go b/managed/models/agent_model.go index c281e866470..146c33f331e 100644 --- a/managed/models/agent_model.go +++ b/managed/models/agent_model.go @@ -338,7 +338,7 @@ func (s *Agent) BeforeInsert() error { if len(s.CustomLabels) == 0 { s.CustomLabels = nil } - if s.Status == "" && s.AgentType != ExternalExporterType && s.AgentType != PMMAgentType { + if s.Status == "" && s.AgentType != PMMAgentType { s.Status = AgentStatusUnknown } if s.Disabled { diff --git a/managed/services/agents/deps.go b/managed/services/agents/deps.go index 15d9f63ba83..c0680bb9730 100644 --- a/managed/services/agents/deps.go +++ b/managed/services/agents/deps.go @@ -18,7 +18,10 @@ package agents import ( "context" "net/url" + "time" + v1 "github.com/prometheus/client_golang/api/prometheus/v1" + "github.com/prometheus/common/model" "github.com/sirupsen/logrus" agentv1 "github.com/percona/pmm/api/agent/v1" @@ -66,6 +69,12 @@ type victoriaMetricsParams interface { VMAgentArgs() []string } +// victoriaMetricsClient is a subset of methods of prometheus' API used by this package. +// We use it instead of real type for testing and to avoid dependency cycle. +type victoriaMetricsClient interface { + Query(ctx context.Context, query string, ts time.Time, opts ...v1.Option) (model.Value, v1.Warnings, error) +} + type nomad interface { GetCACert() (string, error) GetClientCert() (string, error) diff --git a/managed/services/agents/external_exporter_status.go b/managed/services/agents/external_exporter_status.go new file mode 100644 index 00000000000..a1012146ad0 --- /dev/null +++ b/managed/services/agents/external_exporter_status.go @@ -0,0 +1,148 @@ +// Copyright (C) 2023 Percona LLC +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package agents + +import ( + "context" + "time" + + "github.com/prometheus/common/model" + "github.com/sirupsen/logrus" + "gopkg.in/reform.v1" + + inventoryv1 "github.com/percona/pmm/api/inventory/v1" + "github.com/percona/pmm/managed/models" +) + +const ( + statusUpdateInterval = 30 * time.Second +) + +// ExternalExporterStatusService periodically updates status for external exporters +// by querying VictoriaMetrics for 'up' metrics. +type ExternalExporterStatusService struct { + db *reform.DB + vmClient victoriaMetricsClient + l *logrus.Entry +} + +// NewExternalExporterStatusService creates a new service for updating external exporter statuses. +func NewExternalExporterStatusService(db *reform.DB, vmClient victoriaMetricsClient) *ExternalExporterStatusService { + return &ExternalExporterStatusService{ + db: db, + vmClient: vmClient, + l: logrus.WithField("component", "external-exporter-status"), + } +} + +// Run starts the periodic status update loop. +// It runs every statusUpdateInterval (30 seconds) and updates all external exporter statuses. +func (s *ExternalExporterStatusService) Run(ctx context.Context) { + ticker := time.NewTicker(statusUpdateInterval) + defer ticker.Stop() + + s.l.Info("External exporter status updater started.") + + for { + s.updateAllExternalExporterStatuses(ctx) + + select { + case <-ctx.Done(): + s.l.Info("External exporter status updater stopped.") + return + case <-ticker.C: + } + } +} + +func (s *ExternalExporterStatusService) hasExternalExporters() (bool, error) { + var count int + err := s.db.QueryRow("SELECT COUNT(*) FROM agents WHERE agent_type = $1", models.ExternalExporterType).Scan(&count) + if err != nil { + return false, err + } + return count > 0, nil +} + +// updateAllExternalExporterStatuses queries VictoriaMetrics for all external exporter 'up' metrics +// and updates their status in the database. +func (s *ExternalExporterStatusService) updateAllExternalExporterStatuses(ctx context.Context) { + hasExternalExporters, err := s.hasExternalExporters() + if err != nil { + s.l.Warnf("Failed to check for external exporters: %v", err) + return + } + if !hasExternalExporters { + s.l.Debugf("No external exporters found, skipping VictoriaMetrics query.") + return + } + + // Query VictoriaMetrics for all external exporter 'up' metrics + query := `up{agent_type="external-exporter"}` + result, _, err := s.vmClient.Query(ctx, query, time.Now()) + if err != nil { + s.l.Warnf("Failed to query VictoriaMetrics for external exporter status: %v", err) + return + } + + statusMap := make(map[string]inventoryv1.AgentStatus) + if vector, ok := result.(model.Vector); ok { + for _, sample := range vector { + agentID := string(sample.Metric[model.LabelName("agent_id")]) + if agentID == "" { + continue + } + + if sample.Value == 1 { + statusMap[agentID] = inventoryv1.AgentStatus_AGENT_STATUS_RUNNING + } else { + statusMap[agentID] = inventoryv1.AgentStatus_AGENT_STATUS_UNKNOWN + } + } + } + + s.l.Debugf("Updating status for %d external exporters.", len(statusMap)) + + err = s.db.InTransactionContext(ctx, nil, func(tx *reform.TX) error { + for agentID, status := range statusMap { + agent := &models.Agent{AgentID: agentID} + if err := tx.Reload(agent); err != nil { + // Agent might have been deleted, skip it + s.l.Debugf("Agent %s not found, skipping status update.", agentID) + continue + } + + if agent.AgentType != models.ExternalExporterType { + s.l.Warnf("Agent %s has agent_type label but is not ExternalExporterType, skipping.", agentID) + continue + } + + newStatus := status.String() + if agent.Status != newStatus { + agent.Status = newStatus + if err := tx.Update(agent); err != nil { + s.l.Errorf("Failed to update status for agent %s: %v", agentID, err) + continue + } + s.l.Debugf("Updated agent %s status to %s.", agentID, newStatus) + } + } + return nil + }) + if err != nil { + s.l.Errorf("Transaction failed while updating external exporter statuses: %v", err) + } +} diff --git a/managed/services/converters.go b/managed/services/converters.go index cb1e66b7574..cba22bc4b93 100644 --- a/managed/services/converters.go +++ b/managed/services/converters.go @@ -195,6 +195,16 @@ func ToAPIService(service *models.Service) (inventoryv1.Service, error) { //noli }, nil case models.ExternalServiceType: + var address string + if service.Address != nil { + address = *service.Address + } + + var port uint32 + if service.Port != nil { + port = uint32(*service.Port) + } + return &inventoryv1.ExternalService{ ServiceId: service.ServiceID, ServiceName: service.ServiceName, @@ -204,6 +214,8 @@ func ToAPIService(service *models.Service) (inventoryv1.Service, error) { //noli ReplicationSet: service.ReplicationSet, CustomLabels: labels, Group: service.ExternalGroup, + Address: address, + Port: port, }, nil default: @@ -500,6 +512,7 @@ func ToAPIAgent(q *reform.Querier, agent *models.Agent) (inventoryv1.Agent, erro ProcessExecPath: processExecPath, MetricsResolutions: ConvertMetricsResolutions(agent.ExporterOptions.MetricsResolutions), TlsSkipVerify: agent.TLSSkipVerify, + Status: inventoryv1.AgentStatus(inventoryv1.AgentStatus_value[agent.Status]), }, nil case models.AzureDatabaseExporterType: diff --git a/managed/services/inventory/agents_test.go b/managed/services/inventory/agents_test.go index 18a58386d28..41c334604b5 100644 --- a/managed/services/inventory/agents_test.go +++ b/managed/services/inventory/agents_test.go @@ -264,6 +264,7 @@ func TestAgents(t *testing.T) { Scheme: "http", MetricsPath: "/metrics", ListenPort: 9222, + Status: inventoryv1.AgentStatus_AGENT_STATUS_UNKNOWN, } assert.Equal(t, expectedExternalExporter, actualAgent.GetExternalExporter()) }) @@ -494,6 +495,7 @@ func TestAgents(t *testing.T) { Scheme: "http", MetricsPath: "/metrics", ListenPort: 12345, + Status: inventoryv1.AgentStatus_AGENT_STATUS_UNKNOWN, } assert.Equal(t, expectedExternalExporter, agent.GetExternalExporter()) @@ -810,6 +812,7 @@ func TestAgents(t *testing.T) { MetricsPath: "/metrics", ListenPort: 12345, PushMetricsEnabled: true, + Status: inventoryv1.AgentStatus_AGENT_STATUS_UNKNOWN, } assert.Equal(t, expectedExternalExporter, agent.GetExternalExporter()) diff --git a/managed/services/management/external.go b/managed/services/management/external.go index 83060de063f..6cb4efb5a7b 100644 --- a/managed/services/management/external.go +++ b/managed/services/management/external.go @@ -50,6 +50,21 @@ func (s *ManagementService) addExternal(ctx context.Context, req *managementv1.A runsOnNodeID = nodeID } + // Get address from runs_on node (same logic as VictoriaMetrics scrape config) + var address *string + var port *uint16 + if runsOnNodeID != "" { + node := &models.Node{NodeID: runsOnNodeID} + if err := tx.Reload(node); err == nil && node.Address != "" { + address = &node.Address + } + } + + if req.ListenPort > 0 { + p := uint16(req.ListenPort) + port = &p + } + service, err := models.AddNewService(tx.Querier, models.ExternalServiceType, &models.AddDBMSServiceParams{ ServiceName: req.ServiceName, NodeID: nodeID, @@ -58,6 +73,8 @@ func (s *ManagementService) addExternal(ctx context.Context, req *managementv1.A ReplicationSet: req.ReplicationSet, CustomLabels: req.CustomLabels, ExternalGroup: req.Group, + Address: address, + Port: port, }) if err != nil { return err diff --git a/managed/services/management/service.go b/managed/services/management/service.go index b48b48ad39b..ec2faf95432 100644 --- a/managed/services/management/service.go +++ b/managed/services/management/service.go @@ -132,6 +132,7 @@ func (s *ManagementService) ListServices(ctx context.Context, req *managementv1. or proxysql_up{job=~".*_hr$"} or haproxy_backend_status{state="UP"} or redis_up{job=~".*_hr$"} + or up{service_type='external'} ` result, _, err := s.vmClient.Query(ctx, query, time.Now()) if err != nil {