mirror of https://github.com/prometheus/prometheus
Simon Pasquier
6 years ago
committed by
GitHub
21 changed files with 87 additions and 158 deletions
@ -1,8 +1,13 @@
|
||||
run: |
||||
modules-download-mode: vendor |
||||
deadline: 5m |
||||
|
||||
# Run only staticcheck for now. Additional linters will be enabled one-by-one. |
||||
linters: |
||||
enable: |
||||
- staticcheck |
||||
disable-all: true |
||||
issues: |
||||
exclude-rules: |
||||
- path: _test.go |
||||
linters: |
||||
- errcheck |
||||
|
||||
linters-settings: |
||||
errcheck: |
||||
exclude: scripts/errcheck_excludes.txt |
||||
|
@ -1,45 +0,0 @@
|
||||
// Copyright 2015 The Prometheus Authors
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package main |
||||
|
||||
import ( |
||||
"time" |
||||
|
||||
"github.com/pkg/errors" |
||||
"github.com/prometheus/client_golang/api" |
||||
) |
||||
|
||||
const defaultTimeout = 2 * time.Minute |
||||
|
||||
type prometheusHTTPClient struct { |
||||
requestTimeout time.Duration |
||||
httpClient api.Client |
||||
} |
||||
|
||||
func newPrometheusHTTPClient(serverURL string) (*prometheusHTTPClient, error) { |
||||
hc, err := api.NewClient(api.Config{ |
||||
Address: serverURL, |
||||
}) |
||||
if err != nil { |
||||
return nil, errors.Wrapf(err, "error creating HTTP client") |
||||
} |
||||
return &prometheusHTTPClient{ |
||||
requestTimeout: defaultTimeout, |
||||
httpClient: hc, |
||||
}, nil |
||||
} |
||||
|
||||
func (c *prometheusHTTPClient) urlJoin(path string) string { |
||||
return c.httpClient.URL(path, nil).String() |
||||
} |
@ -1,56 +0,0 @@
|
||||
// Copyright 2015 The Prometheus Authors
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package main |
||||
|
||||
import "testing" |
||||
|
||||
func TestURLJoin(t *testing.T) { |
||||
|
||||
testCases := []struct { |
||||
inputHost string |
||||
inputPath string |
||||
expected string |
||||
}{ |
||||
{"http://host", "path", "http://host/path"}, |
||||
{"http://host", "path/", "http://host/path"}, |
||||
{"http://host", "/path", "http://host/path"}, |
||||
{"http://host", "/path/", "http://host/path"}, |
||||
|
||||
{"http://host/", "path", "http://host/path"}, |
||||
{"http://host/", "path/", "http://host/path"}, |
||||
{"http://host/", "/path", "http://host/path"}, |
||||
{"http://host/", "/path/", "http://host/path"}, |
||||
|
||||
{"https://host", "path", "https://host/path"}, |
||||
{"https://host", "path/", "https://host/path"}, |
||||
{"https://host", "/path", "https://host/path"}, |
||||
{"https://host", "/path/", "https://host/path"}, |
||||
|
||||
{"https://host/", "path", "https://host/path"}, |
||||
{"https://host/", "path/", "https://host/path"}, |
||||
{"https://host/", "/path", "https://host/path"}, |
||||
{"https://host/", "/path/", "https://host/path"}, |
||||
} |
||||
for i, c := range testCases { |
||||
client, err := newPrometheusHTTPClient(c.inputHost) |
||||
if err != nil { |
||||
panic(err) |
||||
} |
||||
actual := client.urlJoin(c.inputPath) |
||||
if actual != c.expected { |
||||
t.Errorf("Error on case %d: %v(actual) != %v(expected)", i, actual, c.expected) |
||||
} |
||||
t.Logf("Case %d: %v(actual) == %v(expected)", i, actual, c.expected) |
||||
} |
||||
} |
@ -0,0 +1,13 @@
|
||||
// Don't flag lines such as "io.Copy(ioutil.Discard, resp.Body)". |
||||
io.Copy |
||||
// The next two are used in HTTP handlers, any error is handled by the server itself. |
||||
io.WriteString |
||||
(net/http.ResponseWriter).Write |
||||
// No need to check for errors on server's shutdown. |
||||
(*net/http.Server).Shutdown |
||||
|
||||
// Never check for logger errors. |
||||
(github.com/go-kit/kit/log.Logger).Log |
||||
|
||||
// Never check for rollback errors as Rollback() is called when a previous error was detected. |
||||
(github.com/prometheus/prometheus/storage.Appender).Rollback |
Loading…
Reference in new issue