Commit graph

385 commits

Author SHA1 Message Date
Simon Pasquier 19ce6b7f5f
discovery: fix more error logs on context cancelation (#6133)
Signed-off-by: Simon Pasquier <spasquie@redhat.com>
2019-10-18 11:48:51 +02:00
Jean-Baptiste Le Duigou 0939d566f3 Improve test by asserting on whole Target Group object
Signed-off-by: Jean-Baptiste Le Duigou <jb.leduigou@gmail.com>
2019-10-17 21:25:38 +02:00
Jean-Baptiste Le Duigou 3309ffa482 Fix imports
Signed-off-by: Jean-Baptiste Le Duigou <jb.leduigou@gmail.com>
2019-10-17 21:12:50 +02:00
Jean-Baptiste Le Duigou 9372a224b5 Improve unit tests for target group
Signed-off-by: Jean-Baptiste Le Duigou <jb.leduigou@gmail.com>
2019-10-16 18:03:05 +02:00
Jean-Baptiste Le Duigou 1f9eb09e8e Improve unit tests for target group
Signed-off-by: Jean-Baptiste Le Duigou <jb.leduigou@gmail.com>
2019-10-15 21:43:31 +02:00
Jean-Baptiste Le Duigou 5146bb14ef adding unit test for target group (#6138)
Signed-off-by: Jean-Baptiste Le Duigou <jb.leduigou@gmail.com>
2019-10-14 23:48:08 +01:00
Jean-Baptiste Le Duigou 15de05d55e adding unit test for target group
Signed-off-by: Jean-Baptiste Le Duigou <jb.leduigou@gmail.com>
2019-10-14 21:05:11 +02:00
Simon Pasquier 8ec6f02854 discovery: don't log errors on context cancelation
Signed-off-by: Simon Pasquier <spasquie@redhat.com>
2019-10-09 11:51:38 +02:00
Nevill 7465f27ea5 Refactor on discovery/manager_test.go
- Use testutil.ToFloat64 to collect testing metrics
- Declare ServiceDiscoveryConfig directly instead of calling Unmarshal on a piece of YAML

Signed-off-by: Nevill <nevill.dutt@gmail.com>
2019-10-08 10:18:48 +08:00
陈谭军 c6928b5c6e fix-up typo unkown->unknown (#6055)
Signed-off-by: chentanjun <2799194073@qq.com>
2019-09-25 09:51:43 +02:00
Simon Pasquier 80bc8553be
discovery/file: fix flaky tests (#5948)
* discovery/file: fix flaky tests

Signed-off-by: Simon Pasquier <spasquie@redhat.com>

* Fix typos

Signed-off-by: Simon Pasquier <spasquie@redhat.com>

* Add copyFileTo() method

Signed-off-by: Simon Pasquier <spasquie@redhat.com>
2019-09-24 14:54:50 +02:00
Björn Rabenstein 52e0504f83
Merge pull request #5254 from nevill/fix-4890
Change prometheus_sd_configs_failed_total to Gauge
2019-09-24 12:10:40 +02:00
Nevill 55661ab004 Set failedConfigs only once right after registerProviders finished
Signed-off-by: Nevill <nevill.dutt@gmail.com>
2019-09-24 09:15:40 +08:00
johncming 31a8ac3219 discovery/dns: add test case for SDConfig.UnmarshalYAML. (#6035)
* discovery/dns: Add code coverage.

Signed-off-by: johncming <johncming@yahoo.com>

* discovery/dns: add test case for SDConfig.UnmarshalYAML.

Signed-off-by: johncming <johncming@yahoo.com>
2019-09-23 13:26:11 +02:00
Nevill 048f81218d Change prometheus_sd_configs_failed_total to Gauge
Signed-off-by: Nevill <nevill.dutt@gmail.com>
2019-09-16 10:38:43 +08:00
Harkishen Singh d98d4a9bf0 remove resetting of manager properties and init manager props under locking (#5979)
Signed-off-by: Harkishen-Singh <harkishensingh@hotmail.com>
2019-09-06 12:46:24 +02:00
Tariq Ibrahim f0a5f88b95 [prometheus_sd/kubernetes]add new node address types for discover (#5902)
Signed-off-by: Tariq Ibrahim <tariq181290@gmail.com>
2019-08-20 15:52:11 +01:00
Bartek Płotka 5cb32d67f9
Merge pull request #5893 from prometheus/unify-tsdbutil
Removed extra tsdb/testutil after merge.
2019-08-15 12:07:59 +01:00
Bartek Plotka f0863a604e Removed extra tsdb/testutil after merge.
Signed-off-by: Bartek Plotka <bwplotka@gmail.com>
2019-08-14 10:12:32 +01:00
Julius Volz b5c833ca21
Update go.mod dependencies before release (#5883)
* Update go.mod dependencies before release

Signed-off-by: Julius Volz <julius.volz@gmail.com>

* Add issue for showing query warnings in promtool

Signed-off-by: Julius Volz <julius.volz@gmail.com>

* Revert json-iterator back to 1.1.6

It produced errors when marshaling Point values with special float
values.

Signed-off-by: Julius Volz <julius.volz@gmail.com>

* Fix expected step values in promtool tests after client_golang update

Signed-off-by: Julius Volz <julius.volz@gmail.com>

* Update generated protobuf code after proto dep updates

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2019-08-14 11:00:39 +02:00
Björn Rabenstein 70ce3df23c
Merge pull request #5860 from tariq1890/variadic
pass multiple args to Registerer.MustRegister method
2019-08-13 13:22:30 +02:00
Ganesh Vernekar 5ecef3542d
Cleanup after merging tsdb into prometheus
Signed-off-by: Ganesh Vernekar <cs15btech11018@iith.ac.in>
2019-08-13 14:04:14 +05:30
tariqibrahim df99d943ba pass multiple args to Registers.MustRegister method
Signed-off-by: tariqibrahim <tariq181290@gmail.com>
2019-08-12 22:56:10 -07:00
Chris Marchbanks 529ccff07b
Remove all usages of stretchr/testify
Signed-off-by: Chris Marchbanks <csmarchbanks@gmail.com>
2019-08-08 19:49:27 -06:00
AllenZMC 41151ca8dc fix mis-spelling in consul_test.go (#5836)
Signed-off-by: czm <zhongming.chang@daocloud.io>
2019-08-06 06:11:41 +01:00
dzzg 938ca06057
fix wrong spells in ingress.go
Signed-off-by: dzzg <zhengguang.zhu@daocloud.io>
2019-07-28 02:07:23 +08:00
Ye Ji 9229811c94 give each tree cache its unique channel to avoid multiple close on the same channel
Signed-off-by: Ye Ji <ye@hioscar.com>
2019-07-09 16:38:56 -04:00
beorn7 dd81912554 Add objectives to Summaries
With the next release of client_golang, Summaries will not have
objectives by default. To not lose the objectives we have right now,
explicitly state the current default objectives.

Signed-off-by: beorn7 <beorn@grafana.com>
2019-06-12 02:03:13 +02:00
sh0rez 8ba23fb336
fix(style): container_is_init to container_init
Removes 'is' keyword to comply style guide

Signed-off-by: sh0rez <me@shorez.de>
2019-05-29 16:16:19 +02:00
sh0rez 88b79bae64
chore(style): Comply with style guide, order list
Signed-off-by: sh0rez <me@shorez.de>
2019-05-29 11:22:10 +02:00
sh0rez 6618f28fd7
test(discovery/kubernetes): TestPodDiscoveryInitContainer
Adds a test to check whether an InitContainer is included in the discovery

Signed-off-by: sh0rez <me@shorez.de>
2019-05-28 16:51:58 +02:00
sh0rez fbd5c6f310
test(discovery/kubernetes): add container_is_init label to tests
Adds the new container_is_init label to the current tests to make them pass again

Signed-off-by: sh0rez <me@shorez.de>
2019-05-27 19:16:03 +02:00
sh0rez cfa253ae06
feat(discovery/kubernetes): container_is_init label
Adds a label that shows whether the container is an init container or not

Signed-off-by: sh0rez <me@shorez.de>
2019-05-27 17:48:15 +02:00
sh0rez bea07fe866
feat(discovery/kubernetes): include InitContainers
Includes InitContainers in the ServiceDiscovery

Signed-off-by: sh0rez <me@shorez.de>
2019-05-26 22:53:14 +02:00
Bevisy b7cdd3e840 Exhaust request body before closing it (#5596)
Signed-off-by: bevisy <binbin36520@gmail.com>
2019-05-25 11:27:12 +01:00
Dmitry Shmulevich d81df5609d fix nil pointer dereference in azure discovery (#5587)
Signed-off-by: Dmitry Shmulevich <dmitry.shmulevich@sysdig.com>
2019-05-21 20:03:24 +01:00
Simon Pasquier 3441ecdea1 discovery/kubernetes: add node name and hostname to endpoints
Signed-off-by: Simon Pasquier <spasquie@redhat.com>
2019-05-16 10:49:13 +02:00
Simon Pasquier 45506841e6
*: enable all default linters (#5504)
Signed-off-by: Simon Pasquier <spasquie@redhat.com>
2019-05-03 15:11:28 +02:00
Frederic Branczyk 3cffd81035
Merge pull request #5520 from YaoZengzeng/service
The workqueue of service should be `service` other than `ingress`
2019-04-29 14:03:21 +02:00
YaoZengzeng 658b33808c The workqueue of service should be service other than ingress
Signed-off-by: YaoZengzeng <yaozengzeng@zju.edu.cn>
2019-04-29 17:21:35 +08:00
Frederic Branczyk f874555a0d
Merge pull request #5486 from tariq1890/update_kubernetes
update client-go,api,api-machinery and klog dependencies
2019-04-29 09:34:27 +02:00
Björn Rabenstein 0be9388f8d
Merge pull request #5463 from prometheus/beorn7/templating
Follow-up on #5009
2019-04-24 16:42:23 +02:00
Tariq Ibrahim 00036cd1e5
update client-go,api,api-machinery and klog dependencies
Signed-off-by: Tariq Ibrahim <tariq181290@gmail.com>
2019-04-23 10:54:18 -07:00
Romain Baugue 95193fa027 Exhaust every request body before closing it (#5166) (#5479)
From the documentation:
> The default HTTP client's Transport may not
> reuse HTTP/1.x "keep-alive" TCP connections if the Body is
> not read to completion and closed.

This effectively enable keep-alive for the fixed requests.

Signed-off-by: Romain Baugue <romain.baugue@elwinar.com>
2019-04-18 09:50:37 +01:00
EarthmanT 35be8c9e25 Add azure public ip label (#5475)
* Update Azure SD Config with Public IP label

Signed-off-by: earthmant <trammell@cloudify.co>
2019-04-17 16:05:44 +01:00
Bjoern Rabenstein a92ef68dd8 Fix staticcheck errors
Not sure why they only show up now.

Signed-off-by: Bjoern Rabenstein <bjoern@rabenste.in>
2019-04-17 01:40:10 +02:00
Simon Pasquier 559237cc4f discovery/kubernetes: fix missing label sanitization (#5462)
Signed-off-by: Simon Pasquier <spasquie@redhat.com>
2019-04-15 19:04:50 +01:00
Brian Brazil 8ff6938fa4
Update dependencies. (#5449)
Including going to tsdb 0.7.0.

Signed-off-by: Brian Brazil <brian.brazil@robustperception.io>
2019-04-10 18:47:25 +01:00
Simon Pasquier dafd1632a2 discovery/kubernetes: add present labels for labels/annotations (#5443)
Signed-off-by: Simon Pasquier <spasquie@redhat.com>
2019-04-10 13:21:42 +01:00
Simon Pasquier 4f47806a7d
discovery/dns: fix slice with wrong length (#5432)
Signed-off-by: Simon Pasquier <spasquie@redhat.com>
2019-04-04 17:05:35 +02:00
Kien Nguyen-Tuan 813b58367a [OpenStack SD] Add ProjectID and UserID meta labels (#5431)
Add extra meta labels which will be useful in the case
Prometheus discovery instances from all projects.

Signed-off-by: Kien Nguyen <kiennt2609@gmail.com>
2019-04-04 10:02:31 +01:00
Tariq Ibrahim 8fdfa8abea refine error handling in prometheus (#5388)
i) Uses the more idiomatic Wrap and Wrapf methods for creating nested errors.
ii) Fixes some incorrect usages of fmt.Errorf where the error messages don't have any formatting directives.
iii) Does away with the use of fmt package for errors in favour of pkg/errors

Signed-off-by: tariqibrahim <tariq181290@gmail.com>
2019-03-26 00:01:12 +01:00
Simon Pasquier 782d00059a
discovery: factorize for SD based on refresh (#5381)
* discovery: factorize for SD based on refresh

Signed-off-by: Simon Pasquier <spasquie@redhat.com>

* discovery: use common metrics for refresh

Signed-off-by: Simon Pasquier <spasquie@redhat.com>
2019-03-25 11:54:22 +01:00
Tariq Ibrahim 0d7104b7eb discovery/azure:optimize iteration logic for VMScalesets, VMScalesetVMs, and VMs (#5363)
Signed-off-by: tariqibrahim <tariq181290@gmail.com>
2019-03-20 09:03:47 +00:00
Tariq Ibrahim 5f933e99d0 discovery/azure: make local virtualMachine struct more generic by removing the go sdk field reference (#5350)
Signed-off-by: tariqibrahim <tariq181290@gmail.com>
2019-03-15 16:18:37 +00:00
Mario Trangoni 5354ffff99 Fix some spelling issues (#5361)
See,
$ codespell -S './vendor/*,./.git*,./web/ui/static/vendor*' --ignore-words-list="uint,dur,ue,iff,te,wan"

Signed-off-by: Mario Trangoni <mjtrangoni@gmail.com>
2019-03-14 14:38:54 +00:00
Simon Pasquier 67385f356f
discovery/openstack: pass context to the OpenStack client (#5231)
Signed-off-by: Simon Pasquier <spasquie@redhat.com>
2019-03-12 13:53:03 +01:00
Callum Styan 83c46fd549 update Consul vendor code so that catalog.ServiceMultipleTags can be (#5151)
Signed-off-by: Callum Styan <callumstyan@gmail.com>
2019-03-12 10:31:27 +00:00
Tariq Ibrahim 197e5ac597 docs: minor improvements to the service discovery README.md (#5296)
i) Increased the size of the Service Discovery Readme title
ii) Changed `TargetGroups` to "target groups" as it has been relocated and renamed to another package.

Signed-off-by: tariqibrahim <tariq181290@gmail.com>
2019-03-03 19:48:03 +01:00
JoeWrightss e4b88704a6 Fix misspell in manager_test.go (#5279)
Signed-off-by: zhoulin xie <zhoulin.xie@daocloud.io>
2019-02-27 11:22:31 +01:00
Simon Pasquier 1d2fc95b1c
discovery/marathon: pass context to the client (#5232)
Signed-off-by: Simon Pasquier <spasquie@redhat.com>
2019-02-26 14:49:16 +01:00
Simon Pasquier e60d314f43
discovery/consul: pass current context to Consul queries (#5230)
Signed-off-by: Simon Pasquier <spasquie@redhat.com>
2019-02-26 14:48:19 +01:00
Simon Pasquier 8f578d9c6b
discovery/ec2: pass context to the client (#5234)
Signed-off-by: Simon Pasquier <spasquie@redhat.com>
2019-02-26 14:48:03 +01:00
Simon Pasquier 4997dcb4a1
discovery/gce: pass context to the client (#5233)
Signed-off-by: Simon Pasquier <spasquie@redhat.com>
2019-02-26 14:47:43 +01:00
Simon Pasquier 9040dddd0c
discovery/azure: pass context to the client (#5255)
Signed-off-by: Simon Pasquier <spasquie@redhat.com>
2019-02-26 14:47:26 +01:00
Simon Pasquier fe7a1bcfc6
discovery/triton: pass context to the client (#5235)
Signed-off-by: Simon Pasquier <spasquie@redhat.com>
2019-02-26 14:47:04 +01:00
Björn Rabenstein ad29221a7b
Merge pull request #5020 from erikh/upgrade-miekg-dns
Upgrade miekg dns
2019-02-25 12:47:32 +01:00
Simon Pasquier e72c875e63
config: fix Kubernetes config with empty API server (#5256)
Signed-off-by: Simon Pasquier <spasquie@redhat.com>
2019-02-22 15:51:47 +01:00
Nguyen Hai Truong aed9ea144a Remove duplicated words in comments
Although it is spelling mistakes, it might make an affects
while reading.

Co-Authored-By: Kim Bao Long longkb@vn.fujitsu.com
Signed-off-by: Nguyen Hai Truong <truongnh@vn.fujitsu.com>
2019-02-20 17:41:02 -08:00
Simon Pasquier c8a1a5a93c
discovery/kubernetes: fix support for password_file and bearer_token_file (#5211)
* discovery/kubernetes: fix support for password_file

Signed-off-by: Simon Pasquier <spasquie@redhat.com>

* Create and pass custom RoundTripper to Kubernetes client

Signed-off-by: Simon Pasquier <spasquie@redhat.com>

* Use inline HTTPClientConfig

Signed-off-by: Simon Pasquier <spasquie@redhat.com>
2019-02-20 11:22:34 +01:00
Erik Hollensbe be3c082539 discovery/dns/dns.go: fix handling of truncated dns records
https://github.com/miekg/dns/pull/815 goes into the detail, but more or
less the existing solution was no longer supported and needed to be
rewritten to support the new versions of the library. miekg additionally
claims this is more correct in the ticket.

Signed-off-by: Erik Hollensbe <github@hollensbe.org>
2019-02-20 00:36:41 +00:00
Simon Pasquier f9462d5d44 discovery/consul: pass current context to Consul queries
Signed-off-by: Simon Pasquier <spasquie@redhat.com>
2019-02-18 14:23:56 +01:00
JoeWrightss 4cb6c202ff Fix fmt.Errorf error message (#5199)
Signed-off-by: zhoulin xie <zhoulin.xie@daocloud.io>
2019-02-10 15:16:20 +05:30
tariqibrahim b173de0c26 fix ineffectual assignment in dns.go
Signed-off-by: tariqibrahim <tariq181290@gmail.com>
2019-01-28 17:15:43 -08:00
Jannick Fahlbusch ฏ๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎ 63f375e80a [FIX] Azure DS: Return error when request failed (#4719)
This fixes the issue that the error is swallowed when the request failed.

Signed-off-by: Jannick Fahlbusch <git@jf-projects.de>
2019-01-28 21:31:45 +00:00
Tariq Ibrahim f4275d2352 Use the latest versions of azure go sdk and go-autorest (#5015)
Signed-off-by: tariqibrahim <tariq181290@gmail.com>
2019-01-28 18:30:29 +00:00
Tariq Ibrahim bfcdba211f remove the prepended watch reactor from the fake k8s client (#5140)
Signed-off-by: tariqibrahim <tariq.ibrahim@microsoft.com>
2019-01-28 16:42:25 +01:00
Simon Pasquier 68e4c211f2
discovery/azure: more robust handling of go routines (#5106)
Signed-off-by: Simon Pasquier <spasquie@redhat.com>
2019-01-18 09:55:47 +01:00
Matt Layher 302148fd69 *: apply gofmt -s
Signed-off-by: Matt Layher <mdlayher@gmail.com>
2019-01-16 17:28:14 -05:00
Simon Pasquier 22a1def98d
Merge pull request #5099 from prometheus/release-2.6
Merge release-2.6 to master
2019-01-16 09:26:00 +01:00
tommarute 9922c35a23 marathon-sd - use Tasks.Ports instead of PortDefinitions.Ports if RequirePorts is false (#5022) (#5026)
Signed-off-by: tommarute <tommarute@gmail.com>
2019-01-14 17:20:22 +00:00
Sylvain Rabot d9f4a8c95f sd: Fix stuck Azure service discovery (#5088)
Signed-off-by: Sylvain Rabot <s.rabot@lectra.com>
2019-01-14 15:09:27 +00:00
Kevin Bulebush 718344434c openstack_sd: Supporting application credential for authentication. (#4968)
* openstack_sd: Support application credentials for authentication.
Updated gophercloud

Signed-off-by: Kevin Bulebush <kmbulebu@gmail.com>
2019-01-09 15:18:58 +00:00
Frederic Branczyk e9ae0b5a1b
Merge pull request #4927 from tariq1890/update_k8s
update client-go to v10.0.0 and other k8s deps to v1.13.1
2019-01-07 10:54:34 +01:00
Fabian Reinartz ca93c8e19b
Merge pull request #4969 from prometheus/azuresubid
Add Azure tenant and subscription ID labels
2019-01-06 12:25:06 +01:00
Simon Pasquier f678e27eb6
*: use latest release of staticcheck (#5057)
* *: use latest release of staticcheck

It also fixes a couple of things in the code flagged by the additional
checks.

Signed-off-by: Simon Pasquier <spasquie@redhat.com>

* Use official release of staticcheck

Also run 'go list' before staticcheck to avoid failures when downloading packages.

Signed-off-by: Simon Pasquier <spasquie@redhat.com>
2019-01-04 14:47:38 +01:00
tariqibrahim aa94efe4b5 Merge branch 'master' of https://github.com/prometheus/prometheus into update_k8s 2019-01-03 10:27:12 -08:00
Fabian Reinartz 7a41038695 Add Azure tenant and subscription ID labels
Signed-off-by: Fabian Reinartz <freinartz@google.com>
2019-01-03 13:09:13 +01:00
Lv Jiawei ad22389218 Add ingress in UnmarshalYAML and init (#5035)
Both UnmarshalYAML and init lacks the role type ingress.

Signed-off-by: MIBc <lvjiawei@cmss.chinamobile.com>
2018-12-24 09:24:01 +00:00
tariqibrahim 122b47caa0 address review comment in client_metrics
Signed-off-by: tariqibrahim <tariq.ibrahim@microsoft.com>
2018-12-21 00:46:47 -08:00
tariqibrahim 1e4e4c46ba Merge branch 'master' of https://github.com/prometheus/prometheus into update_k8s
Signed-off-by: tariqibrahim <tariq.ibrahim@microsoft.com>
2018-12-20 11:36:54 -08:00
Ilya Gladyshev 922c17e119 added name label to all discovery metrics (#5002)
Signed-off-by: Ilya Gladyshev <ilya.v.gladyshev@gmail.com>
2018-12-20 14:47:29 +00:00
Erik Hollensbe b94eea482c discovery/gce: oauth2.NoContext is deprecated, replace with context.Background() (#5024)
* vendor update
* discovery/gce: oauth2.NoContext is deprecated, replace with context.Background()

Signed-off-by: Erik Hollensbe <github@hollensbe.org>
2018-12-20 14:45:18 +00:00
Marcel D. Juhnke c7d83b2b6a discovery: add support for Managed Identity authentication in Azure SD (#4590)
Signed-off-by: Marcel Juhnke <marrat@marrat.de>
2018-12-19 10:03:33 +00:00
tariqibrahim 0d4b6e4e66 address review comments
Signed-off-by: tariqibrahim <tariq.ibrahim@microsoft.com>
2018-12-18 08:14:30 -08:00
Tariq Ibrahim de6f3b6af7 expose kubernetes service cluster ip (#4940)
Signed-off-by: tariqibrahim <tariq.ibrahim@microsoft.com>
Signed-off-by: tariqibrahim <tariq181290@gmail.com>
2018-12-18 15:17:34 +00:00
JoeWrightss e8be31eed9 Fixs typo: 'possibliy' to 'possibly' (#4974)
Signed-off-by: JoeWrightss <zhoulin.xie@daocloud.io>
2018-12-18 11:52:40 +01:00
Samuel Alfageme 240321acee Add taggedAddress to the labels in ConsulSD (#5001)
Useful when multiple (tagged) addresses for a node are exposed on the catalog API
Ref. https://www.consul.io/api/catalog.html#taggedaddresses

Signed-off-by: Samuel Alfageme <samuel@alfage.me>
2018-12-18 11:51:05 +01:00
Tariq Ibrahim e3bdc463fa Revert "add logic to check if an azure VM is deallocated or not (#4908)" (#4980)
This reverts commit 61cf4365

Signed-off-by: tariqibrahim <tariq.ibrahim@microsoft.com>
2018-12-12 09:27:12 +01:00
tariqibrahim 1fd438ed2b rebase and resolve merge conflicts
Signed-off-by: tariqibrahim <tariq.ibrahim@microsoft.com>
2018-12-06 09:15:34 -08:00