diff --git a/pkg/api/dtos/models.go b/pkg/api/dtos/models.go index 704d573e1a3..9fa6eb79667 100644 --- a/pkg/api/dtos/models.go +++ b/pkg/api/dtos/models.go @@ -88,7 +88,7 @@ func (mr *MetricRequest) GetUniqueDatasourceTypes() []string { } } - res := make([]string, 0) + res := make([]string, 0, len(dsTypes)) for dsType := range dsTypes { res = append(res, dsType) } diff --git a/pkg/api/frontendlogging/sentry.go b/pkg/api/frontendlogging/sentry.go index c91e3a47177..032bb874ef1 100644 --- a/pkg/api/frontendlogging/sentry.go +++ b/pkg/api/frontendlogging/sentry.go @@ -59,7 +59,7 @@ func (value *FrontendSentryExceptionValue) FmtStacktrace(store *SourceMapStore) } func (exception *FrontendSentryException) FmtStacktraces(store *SourceMapStore) string { - var stacktraces []string + stacktraces := make([]string, 0, len(exception.Values)) for _, value := range exception.Values { stacktraces = append(stacktraces, value.FmtStacktrace(store)) } diff --git a/pkg/plugins/manager/loader/initializer/initializer.go b/pkg/plugins/manager/loader/initializer/initializer.go index 4c5f6cdc50b..b484882c635 100644 --- a/pkg/plugins/manager/loader/initializer/initializer.go +++ b/pkg/plugins/manager/loader/initializer/initializer.go @@ -87,7 +87,7 @@ func (i *Initializer) awsEnvVars() []string { type pluginSettings map[string]string func (ps pluginSettings) asEnvVar(prefix string, hostEnv []string) []string { - var env []string + env := make([]string, 0, len(ps)) for k, v := range ps { key := fmt.Sprintf("%s_%s", prefix, strings.ToUpper(k)) if value := os.Getenv(key); value != "" { diff --git a/pkg/services/ngalert/notifier/channels/alertmanager.go b/pkg/services/ngalert/notifier/channels/alertmanager.go index befbb002f7c..9d5d32e4531 100644 --- a/pkg/services/ngalert/notifier/channels/alertmanager.go +++ b/pkg/services/ngalert/notifier/channels/alertmanager.go @@ -5,7 +5,6 @@ import ( "encoding/json" "errors" "fmt" - "net/url" "strings" @@ -34,18 +33,21 @@ func NewAlertmanagerConfig(config *NotificationChannelConfig, fn GetDecryptedVal if urlStr == "" { return nil, errors.New("could not find url property in settings") } - var urls []*url.URL - for _, uS := range strings.Split(urlStr, ",") { + + urlParts := strings.Split(urlStr, ",") + urls := make([]*url.URL, 0, len(urlParts)) + + for _, uS := range urlParts { uS = strings.TrimSpace(uS) if uS == "" { continue } uS = strings.TrimSuffix(uS, "/") + "/api/v1/alerts" - url, err := url.Parse(uS) + u, err := url.Parse(uS) if err != nil { return nil, fmt.Errorf("invalid url property in settings: %w", err) } - urls = append(urls, url) + urls = append(urls, u) } return &AlertmanagerConfig{ NotificationChannelConfig: config, diff --git a/pkg/services/provisioning/dashboards/types.go b/pkg/services/provisioning/dashboards/types.go index b565085dceb..8a4c200d5f8 100644 --- a/pkg/services/provisioning/dashboards/types.go +++ b/pkg/services/provisioning/dashboards/types.go @@ -74,7 +74,7 @@ func createDashboardJSON(data *simplejson.Json, lastModified time.Time, cfg *con } func mapV0ToDashboardsAsConfig(v0 []*configV0) ([]*config, error) { - var r []*config + r := make([]*config, 0, len(v0)) seen := make(map[string]bool) for _, v := range v0 { @@ -101,7 +101,7 @@ func mapV0ToDashboardsAsConfig(v0 []*configV0) ([]*config, error) { } func (dc *configV1) mapToDashboardsAsConfig() ([]*config, error) { - var r []*config + r := make([]*config, 0, len(dc.Providers)) seen := make(map[string]bool) for _, v := range dc.Providers { diff --git a/pkg/services/sqlstore/migrations/ualert/channel.go b/pkg/services/sqlstore/migrations/ualert/channel.go index e6ce68cb93f..01981b47a5d 100644 --- a/pkg/services/sqlstore/migrations/ualert/channel.go +++ b/pkg/services/sqlstore/migrations/ualert/channel.go @@ -212,7 +212,7 @@ func (m *migration) createNotifier(c *notificationChannel) (*PostableGrafanaRece // Create one receiver for every unique notification channel. func (m *migration) createReceivers(allChannels []*notificationChannel) (map[uidOrID]*PostableApiReceiver, []*PostableApiReceiver, error) { - var receivers []*PostableApiReceiver + receivers := make([]*PostableApiReceiver, 0, len(allChannels)) receiversMap := make(map[uidOrID]*PostableApiReceiver) set := make(map[string]struct{}) // Used to deduplicate sanitized names. diff --git a/pkg/services/updatechecker/plugins.go b/pkg/services/updatechecker/plugins.go index 8ba7c27348d..bd3ce31896d 100644 --- a/pkg/services/updatechecker/plugins.go +++ b/pkg/services/updatechecker/plugins.go @@ -146,7 +146,7 @@ func canUpdate(v1, v2 string) bool { } func (s *PluginsService) pluginIDsCSV(m map[string]plugins.PluginDTO) string { - var ids []string + ids := make([]string, 0, len(m)) for pluginID := range m { ids = append(ids, pluginID) } diff --git a/pkg/tsdb/prometheus/querydata/request.go b/pkg/tsdb/prometheus/querydata/request.go index e6ab6b4e123..cce1f4dfefc 100644 --- a/pkg/tsdb/prometheus/querydata/request.go +++ b/pkg/tsdb/prometheus/querydata/request.go @@ -185,7 +185,7 @@ func (s *QueryData) trace(ctx context.Context, q *models.Query) (context.Context } func sdkHeaderToHttpHeader(headers map[string]string) http.Header { - httpHeader := make(http.Header) + httpHeader := make(http.Header, len(headers)) for key, val := range headers { httpHeader[key] = []string{val} }