diff --git a/README-en.md b/README-en.md index aff539e..9ab7090 100644 --- a/README-en.md +++ b/README-en.md @@ -131,6 +131,7 @@ record_cert_info{ ## Supported DNS service providers +- [x] Custom Records - [x] Tencent DnsPod - [x] Aliyun Dns - [x] Godaddy diff --git a/README.md b/README.md index 5e4f546..07d744b 100644 --- a/README.md +++ b/README.md @@ -133,6 +133,7 @@ record_cert_info{ ## 已支持 DNS 服务商 +- [x] Custom Records - [x] Tencent DnsPod - [x] Aliyun Dns - [x] Godaddy diff --git a/pkg/export/export_gauge.go b/pkg/export/export_gauge.go index 93a627b..f41cd47 100644 --- a/pkg/export/export_gauge.go +++ b/pkg/export/export_gauge.go @@ -161,17 +161,21 @@ func (c *Metrics) Collect(ch chan<- prometheus.Metric) { } // get custom record cert info list from cache - recordCertInfoCacheKey := public.RecordCertInfo + "_" + public.CustomRecords - var recordCerts []provider.RecordCert - recordCertInfoCacheValue, err := public.CertCache.Get(recordCertInfoCacheKey) - if err != nil { - logger.Error(fmt.Sprintf("[ %s ] get record list failed: %v", recordCertInfoCacheKey, err)) - } - err = json.Unmarshal(recordCertInfoCacheValue, &recordCerts) - if err != nil { - logger.Error(fmt.Sprintf("[ %s ] json.Unmarshal error: %v", recordCertInfoCacheKey, err)) - } - for _, v := range recordCerts { - ch <- prometheus.MustNewConstMetric(c.metrics[public.RecordCertInfo], prometheus.GaugeValue, float64(v.DaysUntilExpiry), v.CloudProvider, v.CloudName, v.DomainName, v.RecordID, v.FullRecord, v.SubjectCommonName, v.SubjectOrganization, v.SubjectOrganizationalUnit, v.IssuerCommonName, v.IssuerOrganization, v.IssuerOrganizationalUnit, v.CreatedDate, v.ExpiryDate, fmt.Sprintf("%t", v.CertMatched), v.ErrorMsg) + if len(public.Config.CustomRecords) != 0 { + recordCertInfoCacheKey := public.RecordCertInfo + "_" + public.CustomRecords + var recordCerts []provider.RecordCert + recordCertInfoCacheValue, err := public.CertCache.Get(recordCertInfoCacheKey) + if err != nil { + logger.Error(fmt.Sprintf("[ %s ] get record list failed: %v", recordCertInfoCacheKey, err)) + return + } + err = json.Unmarshal(recordCertInfoCacheValue, &recordCerts) + if err != nil { + logger.Error(fmt.Sprintf("[ %s ] json.Unmarshal error: %v", recordCertInfoCacheKey, err)) + return + } + for _, v := range recordCerts { + ch <- prometheus.MustNewConstMetric(c.metrics[public.RecordCertInfo], prometheus.GaugeValue, float64(v.DaysUntilExpiry), v.CloudProvider, v.CloudName, v.DomainName, v.RecordID, v.FullRecord, v.SubjectCommonName, v.SubjectOrganization, v.SubjectOrganizationalUnit, v.IssuerCommonName, v.IssuerOrganization, v.IssuerOrganizationalUnit, v.CreatedDate, v.ExpiryDate, fmt.Sprintf("%t", v.CertMatched), v.ErrorMsg) + } } }