mirror of
https://git.mirrors.martin98.com/https://github.com/SigNoz/signoz
synced 2025-07-20 12:54:31 +08:00

Switched all file operations from ioutil package to io and os packages due to the deprecation of ioutil in Go 1.16. This change contributes to the maintainability of the codebase, ensuring it's up-to-date with the current standard library. Additionally, implemented usage of filepath.Join for platform-independent file paths.
76 lines
1.3 KiB
Go
76 lines
1.3 KiB
Go
package signozio
|
|
|
|
import (
|
|
"encoding/json"
|
|
"io"
|
|
"net/http"
|
|
"time"
|
|
|
|
"go.signoz.io/signoz/pkg/query-service/constants"
|
|
"go.signoz.io/signoz/pkg/query-service/model"
|
|
)
|
|
|
|
var C *Client
|
|
|
|
const (
|
|
POST = "POST"
|
|
APPLICATION_JSON = "application/json"
|
|
)
|
|
|
|
type Client struct {
|
|
Prefix string
|
|
}
|
|
|
|
func New() *Client {
|
|
return &Client{
|
|
Prefix: constants.ConfigSignozIo,
|
|
}
|
|
}
|
|
|
|
func init() {
|
|
C = New()
|
|
}
|
|
|
|
// FetchDynamicConfigs fetches configs from config server
|
|
func FetchDynamicConfigs() (map[string]Config, *model.ApiError) {
|
|
|
|
client := http.Client{Timeout: 5 * time.Second}
|
|
req, err := http.NewRequest(http.MethodGet, C.Prefix+"/configs", http.NoBody)
|
|
if err != nil {
|
|
return DefaultConfig, nil
|
|
}
|
|
req.SetBasicAuth("admin", "SigNoz@adm1n")
|
|
httpResponse, err := client.Do(req)
|
|
if err != nil {
|
|
return DefaultConfig, nil
|
|
}
|
|
|
|
defer httpResponse.Body.Close()
|
|
|
|
if err != nil {
|
|
return DefaultConfig, nil
|
|
}
|
|
|
|
httpBody, err := io.ReadAll(httpResponse.Body)
|
|
if err != nil {
|
|
return DefaultConfig, nil
|
|
}
|
|
|
|
// read api request result
|
|
result := ConfigResult{}
|
|
err = json.Unmarshal(httpBody, &result)
|
|
if err != nil {
|
|
return DefaultConfig, nil
|
|
}
|
|
|
|
switch httpResponse.StatusCode {
|
|
case 200, 201:
|
|
return result.Data, nil
|
|
case 400, 401:
|
|
return DefaultConfig, nil
|
|
default:
|
|
return DefaultConfig, nil
|
|
}
|
|
|
|
}
|