Compare commits

...

6820 Commits

Author SHA1 Message Date
ae9734ed27 version: 3.4.13
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-08-24 12:11:28 -07:00
781bde75e2 Merge pull request #12250 from spzala/automated-cherry-pick-of-#12242-upstream-release-3.4
Automated cherry pick of #12242
2020-08-24 12:05:03 -07:00
d5ebbbceb8 pkg: file stat warning
Provide warning and doc instead of enforcing file permission.
2020-08-24 11:21:29 -04:00
7cd5872656 Merge pull request #12244 from hexfusion/automated-cherry-pick-of-#12243-upstream-release-3.4
Automated cherry pick of #12243 on release 3.4
2020-08-21 11:24:21 -04:00
46a0a44f95 Automated cherry pick of #12243 on release 3.4
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
2020-08-21 10:14:07 -04:00
17cef6e3e9 version: 3.4.12
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-08-19 09:56:24 -07:00
c07cba001b Merge pull request #12239 from liggitt/slow-v2-panic-3.4
[3.4] etcdserver: Avoid panics logging slow v2 requests in integration tests
2020-08-19 09:55:08 -07:00
b8878eac45 etcdserver: Avoid panics logging slow v2 requests in integration tests 2020-08-19 11:30:39 -04:00
e71e0c5c88 Merge pull request #12226 from jingyih/fix_backport_PR12216
*: add plog logging to the backport of PR12216
2020-08-18 08:48:09 -07:00
bc44e367c3 version: 3.4.11
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-08-18 08:46:13 -07:00
299e0f17aa Revert "etcdserver/api/v3rpc: "MemberList" never return non-empty ClientURLs"
This reverts commit 0372cfc7ab.
2020-08-18 08:45:38 -07:00
75d5e78d1f *: fix backport of PR12216
Fix bugs introduced in commit c60dabf
2020-08-16 15:01:18 +08:00
c60dabf2f3 *: add experimental flag for watch notify interval
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-08-15 10:24:25 -07:00
8a4afdbcc2 Merge pull request #12189 from jingyih/automated-cherry-pick-of-#11452-#12187-upstream-release-3.4
Automated cherry pick of #11452 #12187 on release 3.4
2020-08-13 21:38:05 -07:00
6fcab5af9f clientv3: remove excessive watch cancel logging 2020-08-13 13:51:21 +08:00
008074187c etcdserver: add OS level FD metrics
Similar counts are exposed via Prometheus.
This adds the one that are perceived by etcd server.

e.g.

os_fd_limit 120000
os_fd_used 14
process_cpu_seconds_total 0.31
process_max_fds 120000
process_open_fds 17

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-08-12 18:38:35 -07:00
cf558ee8b7 pkg/runtime: optimize FDUsage by removing sort
No need sort when we just want the counts.

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-08-12 18:38:17 -07:00
e800c62eca clientv3: log warning in case of error sending request 2020-07-30 22:54:35 +08:00
0372cfc7ab etcdserver/api/v3rpc: "MemberList" never return non-empty ClientURLs
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>

cr https://code.amazon.com/reviews/CR-29712724
2020-07-16 16:29:51 -07:00
18dfb9cca3 version: 3.4.10
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-07-16 15:16:20 -07:00
7b8270416d Merge pull request #12106 from bart0sh/PR001-cherry-pick-change-protobuf-field-type-from-int-to-int64
etcdserver: change protobuf field type from int to int64 (#12000)
2020-07-16 00:45:16 +08:00
a2c37485dd Merge pull request #12127 from spzala/automated-cherry-pick-of-#12012-upstream-release-3.4
Automated cherry pick of #12012
2020-07-13 10:53:52 -04:00
67bfc310f0 Documentation: note on data encryption 2020-07-13 09:50:30 -04:00
ed28c768a3 etcdserver: change protobuf field type from int to int64 (#12000) 2020-07-08 10:21:10 +03:00
d3a702a09d Merge pull request #12112 from spzala/automated-cherry-pick-of-#12018-upstream-release-3.4
Automated cherry pick of #12018
2020-07-07 10:32:18 -07:00
319331192e pkg: consider umask when use MkdirAll
os.MkdirAll creates directory before umask so make sure that a desired
permission is set after creating a directory with MkdirAll. Use the
existing TouchDirAll function which checks for permission if dir is already
exist and when create a new dir.
2020-07-07 11:46:31 -04:00
2acdf88406 Merge pull request #12076 from cfc4n/automated-cherry-pick-of-#11987-upstream-release-3.4
Automated cherry pick of #11987
2020-07-06 13:01:24 -07:00
a8454e453f Merge pull request #12089 from tangcong/automated-cherry-pick-of-#11997-origin-release-3.4
Automated cherry pick of #11997
2020-07-06 13:00:56 -07:00
32583af167 Merge pull request #12101 from tangcong/automated-cherry-pick-of-#12100-origin-release-3.4
Automated cherry pick of #12100
2020-07-06 11:47:24 -07:00
85cc4deae6 Merge pull request #12103 from spzala/automated-cherry-pick-of-#12092-upstream-release-3.4
Automated cherry pick of #12092
2020-07-05 11:45:30 -04:00
7dec4c412c etcdmain: let grpc proxy warn about insecure-skip-tls-verify 2020-07-01 18:25:29 -04:00
a4667f596a etcdmain: fix shadow error 2020-07-01 13:36:48 +08:00
0207d1df66 pkg/fileutil: print desired file permission in error log 2020-06-29 09:59:19 +08:00
99e893d285 Merge pull request #12074 from cfc4n/automated-cherry-pick-of-#12005-upstream-release-3.4
Automated cherry pick of #12005
2020-06-26 11:30:07 -07:00
d5dec731db Merge pull request #12077 from cfc4n/automated-cherry-pick-of-#11980-upstream-release-3.4
Automated cherry pick of #11980
2020-06-26 11:29:16 -07:00
81a2edc365 Merge pull request #12081 from spzala/automated-cherry-pick-of-#11945-upstream-release-3.4
Automated cherry pick of #11945
2020-06-26 11:28:34 -07:00
e5424fc474 pkg: Fix dir permission check on Windows 2020-06-25 20:20:55 -04:00
4488595e05 auth: Customize simpleTokenTTL settings.
see https://github.com/etcd-io/etcd/issues/11978 for more detail.
2020-06-25 19:58:26 +08:00
7b99863e02 mvcc: chanLen 1024 is to biger,and it used more memory. 128 seems to be enough. Sometimes the consumption speed is more than the production speed.
See https://github.com/etcd-io/etcd/issues/11906 for more detail.
2020-06-25 19:53:13 +08:00
490c6139ac auth: return incorrect result 'ErrUserNotFound' when client request without username or username was empty.
Fiexs https://github.com/etcd-io/etcd/issues/12004 .
2020-06-25 19:48:36 +08:00
31e49a4df3 Merge pull request #12048 from spzala/automated-cherry-pick-of-#11793-upstream-release-3.4
Automated cherry pick of #11793
2020-06-24 20:42:26 -07:00
83fc96df0c Merge pull request #12055 from tangcong/automated-cherry-pick-of-#11850-origin-release-3.4
Automated cherry pick of #11850
2020-06-24 20:41:44 -07:00
45192cf62b Merge pull request #12064 from cfc4n/automated-cherry-pick-of-#11986-upstream-release-3.4
Automated cherry pick of #11986
2020-06-24 20:40:37 -07:00
1a1281005c Merge pull request #12070 from spzala/automated-cherry-pick-of-#12060-upstream-release-3.4
Automated cherry pick of #12060
2020-06-24 20:39:33 -07:00
a4f42948e8 Merge pull request #12072 from tangcong/automated-cherry-pick-of-#12066-origin-release-3.4
Automated cherry pick of #12066
2020-06-24 20:39:15 -07:00
2212a84adb Merge pull request #12034 from spzala/automated-cherry-pick-of-#11798-upstream-release-3.4
Automated cherry pick of #11798
2020-06-24 20:38:46 -07:00
e42d7b5248 etcdmain: fix shadow error 2020-06-25 06:40:33 +08:00
b86bb615ff doc: add TLS related warnings 2020-06-24 16:39:35 -04:00
ee963470f4 etcdserver:FDUsage set ticker to 10 minute from 5 seconds. This ticker will check File Descriptor Requirements ,and count all fds in used. And recorded some logs when in used >= limit/5*4. Just recorded message. If fds was more than 10K,It's low performance due to FDUsage() works. So need to increase it.
see https://github.com/etcd-io/etcd/issues/11969 for more detail.
2020-06-24 13:28:40 +08:00
36452a1c1d clientv3: cancel watches proactively on client context cancellation
Currently, watch cancel requests are only sent to the server after a
message comes through on a watch where the client has cancelled. This
means that cancelled watches that don't receive any new messages are
never cancelled; they persist for the lifetime of the client stream.
This has negative connotations for locking applications where a watch
may observe a key which might never change again after cancellation,
leading to many accumulating watches on the server.

By cancelling proactively, in most cases we simply move the cancel
request to happen earlier, and additionally we solve the case where the
cancel request would never be sent.

Fixes #9416
Heavy inspiration drawn from the solutions proposed there.
2020-06-23 19:50:21 +08:00
4571e528f4 wal: check out of range slice in "ReadAll", "decoder"
wal: add slice bound checks in decoder

CHANGELOG-3.5: add wal slice bound check
CHANGELOG-3.5: add "decodeRecord"

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-06-22 11:57:43 -04:00
37ac22205b Merge pull request #12035 from spzala/automated-cherry-pick-of-#11787-upstream-release-3.4
Automated cherry pick of #11787
2020-06-21 19:22:54 -07:00
493f15c156 Merge pull request #12037 from spzala/automated-cherry-pick-of-#11807-upstream-release-3.4
Automated cherry pick of #11807
2020-06-21 19:20:42 -07:00
c8b3c6f54c Merge pull request #12041 from spzala/automated-cherry-pick-of-#11795-upstream-release-3.4
Automated cherry pick of #11795
2020-06-21 19:20:26 -07:00
368ff75a10 Merge pull request #12039 from spzala/automated-cherry-pick-of-#11845-upstream-release-3.4
Automated cherry pick of #11845
2020-06-21 19:20:04 -07:00
7adbfa1144 Merge pull request #12038 from spzala/automated-cherry-pick-of-#11608-upstream-release-3.4
Automated cherry pick of #11608
2020-06-21 19:19:50 -07:00
e151faf3cc Merge pull request #12040 from spzala/automated-cherry-pick-of-#11796-upstream-release-3.4
Automated cherry pick of #11796
2020-06-21 19:19:31 -07:00
8292fd5051 Merge pull request #12042 from spzala/automated-cherry-pick-of-#11818-upstream-release-3.4
Automated cherry pick of #11818
2020-06-21 19:19:17 -07:00
c37245ed4b Merge pull request #12043 from spzala/automated-cherry-pick-of-#11830-upstream-release-3.4
Automated cherry pick of #11830
2020-06-21 19:18:51 -07:00
6dab8aff66 Merge pull request #12044 from spzala/automated-cherry-pick-of-#11841-upstream-release-3.4
Automated cherry pick of #11841
2020-06-21 19:18:35 -07:00
c69efda350 etcdctl, etcdmain: warn about --insecure-skip-tls-verify options 2020-06-21 19:23:06 -04:00
3d8e9a323d Documentation: note on the policy of insecure by default 2020-06-21 19:21:05 -04:00
963b242846 etcdserver: don't let InternalAuthenticateRequest have password 2020-06-21 19:18:18 -04:00
6f011ce524 auth: a new error code for the case of password auth against no password user 2020-06-21 19:12:55 -04:00
36f8dee003 Documentation: note on password strength 2020-06-21 19:08:39 -04:00
47001f28bd etcdmain: best effort detection of self pointing in tcp proxy 2020-06-21 18:12:24 -04:00
9a24f73f7b Discovery: do not allow passing negative cluster size
When an etcd instance attempts to perform service discovery, if a
cluster size with negative value  is provided, the etcd instance
will panic without recovery because of
2020-06-21 18:00:35 -04:00
7d1cf64049 wal: fix panic when decoder not set
Handle the related panic and clarify doc.
2020-06-21 16:21:34 -04:00
05c441f92f embed: fix compaction runtime err
Handle negative value input which currently gives a runtime error.
2020-06-20 20:58:18 -04:00
434f7e83f0 pkg: check file stats
modify file util.
2020-06-20 16:29:47 -04:00
91b1a9182a Merge pull request #11977 from jpbetz/automated-cherry-pick-of-#11946-release-3.4
Automated cherry pick of #11946
2020-06-05 12:46:33 -07:00
78f67988aa etcdserver, et al: add --unsafe-no-fsync flag
This makes it possible to run an etcd node for testing and development
without placing lots of load on the file system.

Fixes #11930.

Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-06-04 20:19:28 -07:00
54ba958911 version: 3.4.9
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-05-20 16:28:29 -07:00
609e844f86 Merge pull request #11811 from wswcfan/automated-cherry-pick-of-#11735-origin-release-3.4
Automated cherry pick of #11735 on release-3.4
2020-05-20 15:57:48 -07:00
166b4473fa wal: add TestValidSnapshotEntriesAfterPurgeWal testcase
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-05-20 11:38:06 -07:00
ed231df7c0 wal: fix crc mismatch crash bug 2020-05-20 11:37:04 -07:00
cfe37de6c0 rafthttp: log snapshot download duration
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-05-20 11:37:01 -07:00
0de2b1f860 version: 3.4.8
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-05-18 11:40:23 -07:00
a668adba78 rafthttp: improve snapshot send logging
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-05-18 11:39:24 -07:00
9bad82fee5 *: make sure snapshot save downloads SHA256 checksum
ref. https://github.com/etcd-io/etcd/pull/11896

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-05-17 17:38:42 -07:00
f1ea03a7c8 etcdserver/api/snap: exclude orphaned defragmentation files in snapNames
ref. https://github.com/etcd-io/etcd/pull/11900

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-05-17 14:21:02 -07:00
4079deadb4 etcdserver: continue releasing snap db in case of error
Signed-off-by: Ted Yu <yuzhihong@gmail.com>
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-05-17 14:15:26 -07:00
87fc3c9e57 etcdserver,wal: fix inconsistencies in WAL and snapshot
etcdserver/*, wal/*: changes to snapshots and wal logic
etcdserver/*: changes to snapshots and wal logic to fix #10219
etcdserver/*, wal/*: add Sync method
etcdserver/*, wal/*: find valid snapshots by cross checking snap files and wal snap entries
etcdserver/*, wal/*:Add comments, clean up error messages and tests
etcdserver/*, wal/*: Remove orphaned .snap.db files during Release

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-05-15 08:40:09 -07:00
e048e166ab cherry pick of #11564 (#11880)
* clientv3: fix grpc-go(v1.27.0) incompatible changes to balancer/resolver.

* vendor: upgrade gRPC Go to v1.24.0

Picking up some performance improvements and bug fixes.

https://github.com/grpc/grpc-go/releases/tag/v1.24.0

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>

* vendor: update gRPC Go to v1.26.0 (#11522)

* GO111MODULE=on go mod vendor

* GO111MODULE=on go mod vendor go 1.14

Bump travis 2

Co-authored-by: EDDYCJY <313687982@qq.com>
Co-authored-by: Gyuho Lee <leegyuho@amazon.com>
Co-authored-by: Yuchen Zhou <yczhou@google.com>
2020-05-13 10:12:58 -07:00
2333c727a2 Merge pull request #11855 from tangcong/automated-cherry-pick-of-#11817-origin-release-3.4
Automated cherry pick of #11817 on release-3.4
2020-05-07 20:00:26 -07:00
aa75e90ac8 mvcc: fix deadlock bug 2020-05-08 09:56:23 +08:00
f18976f4b8 auth: optimize lock scope for CheckPassword
to improve authentication performance in concurrent scenarios when enable auth and using authentication based password
2020-04-25 18:36:18 +08:00
f1eca4e1fa Merge pull request #11752 from tangcong/automated-cherry-pick-of-#11652-#11670-#11710-origin-release-3.4
Automated cherry pick of #11652 #11670 #11710
2020-04-10 23:21:45 +08:00
b733b22712 auth: ensure RoleGrantPermission is compatible with older versions 2020-04-09 09:33:40 +08:00
eb80716532 etcdserver: print warn log when failed to apply request 2020-04-09 09:33:40 +08:00
e2abd97659 auth: cleanup saveConsistentIndex in NewAuthStore 2020-04-09 09:33:40 +08:00
716821b9b5 auth: print warning log when error is ErrAuthOldRevision 2020-04-09 09:33:40 +08:00
63116ffdb4 auth: add new metric 'etcd_debugging_auth_revision' 2020-04-09 09:33:40 +08:00
b3d54def77 tools/etcd-dump-db: add auth decoder, optimize print format 2020-04-09 09:33:40 +08:00
347c8dac3b *: fix auth revision corruption bug 2020-04-09 09:33:36 +08:00
e2ae6013a4 Merge pull request #11757 from jingyih/automated-cherry-pick-of-#11754-upstream-release-3.4
Automated cherry pick of #11754 on release-3.4
2020-04-06 11:09:26 -04:00
9c8554573f etcdserver: watch stream got closed once one request is not permitted (#11708) 2020-04-06 07:06:57 -07:00
e694b7bb08 version: 3.4.7
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-04-01 10:46:54 -07:00
e99399d0dc wal: add "etcd_wal_writes_bytes_total"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-04-01 09:30:09 -07:00
b68f8ff31d pkg/ioutil: add "FlushN"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-04-01 09:29:59 -07:00
857dffa386 Merge pull request #11734 from jingyih/automated-cherry-pick-of-#11330-upstream-release-3.4
Cherry pick of #11330 on release-3.4
2020-03-31 14:58:59 -07:00
5f17aa2c8b test: auto detect branch when finding merge base 2020-03-31 10:59:44 -07:00
89b10cf967 mvcc/kvstore:when the number key-value is greater than one million, compact take too long and blocks other requests 2020-03-30 08:21:38 -07:00
bdc9bc1d81 version: 3.4.6
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-03-29 12:47:27 -07:00
b0bdaaa449 lease: fix memory leak in LeaseGrant when node is follower 2020-03-29 12:47:14 -07:00
e784ba73c2 version: 3.4.5
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-03-18 17:24:42 -07:00
35dc623a98 words: whitelist "racey"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-03-18 17:24:15 -07:00
130342152a Revert "version: 3.4.5"
This reverts commit 0dc5d577fc.
2020-03-18 17:17:19 -07:00
fc93fbf9de words: whitelist "hasleader"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-03-18 17:17:04 -07:00
0dc5d577fc version: 3.4.5
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-03-18 17:17:04 -07:00
e63db56cc9 etcdserver/api/v3rpc: handle api version metadata, add metrics
ref.
https://github.com/etcd-io/etcd/pull/11687

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-03-18 17:17:04 -07:00
1471e12108 clientv3: embed api version in metadata
ref.
https://github.com/etcd-io/etcd/pull/11687

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>

clientv3: fix racy writes to context key

=== RUN   TestWatchOverlapContextCancel

==================

WARNING: DATA RACE

Write at 0x00c42110dd40 by goroutine 99:

  runtime.mapassign()

      /usr/local/go/src/runtime/hashmap.go:485 +0x0

  github.com/coreos/etcd/clientv3.metadataSet()

      /go/src/github.com/coreos/etcd/gopath/src/github.com/coreos/etcd/clientv3/ctx.go:61 +0x8c

  github.com/coreos/etcd/clientv3.withVersion()

      /go/src/github.com/coreos/etcd/gopath/src/github.com/coreos/etcd/clientv3/ctx.go:47 +0x137

  github.com/coreos/etcd/clientv3.newStreamClientInterceptor.func1()

      /go/src/github.com/coreos/etcd/gopath/src/github.com/coreos/etcd/clientv3/client.go:309 +0x81

  google.golang.org/grpc.NewClientStream()

      /go/src/github.com/coreos/etcd/gopath/src/google.golang.org/grpc/stream.go:101 +0x10e

  github.com/coreos/etcd/etcdserver/etcdserverpb.(*watchClient).Watch()

      /go/src/github.com/coreos/etcd/gopath/src/github.com/coreos/etcd/etcdserver/etcdserverpb/rpc.pb.go:3193 +0xe9

  github.com/coreos/etcd/clientv3.(*watchGrpcStream).openWatchClient()

      /go/src/github.com/coreos/etcd/gopath/src/github.com/coreos/etcd/clientv3/watch.go:788 +0x143

  github.com/coreos/etcd/clientv3.(*watchGrpcStream).newWatchClient()

      /go/src/github.com/coreos/etcd/gopath/src/github.com/coreos/etcd/clientv3/watch.go:700 +0x5c3

  github.com/coreos/etcd/clientv3.(*watchGrpcStream).run()

      /go/src/github.com/coreos/etcd/gopath/src/github.com/coreos/etcd/clientv3/watch.go:431 +0x12b

Previous read at 0x00c42110dd40 by goroutine 130:

  reflect.maplen()

      /usr/local/go/src/runtime/hashmap.go:1165 +0x0

  reflect.Value.MapKeys()

      /usr/local/go/src/reflect/value.go:1090 +0x43b

  fmt.(*pp).printValue()

      /usr/local/go/src/fmt/print.go:741 +0x1885

  fmt.(*pp).printArg()

      /usr/local/go/src/fmt/print.go:682 +0x1b1

  fmt.(*pp).doPrintf()

      /usr/local/go/src/fmt/print.go:998 +0x1cad

  fmt.Sprintf()

      /usr/local/go/src/fmt/print.go:196 +0x77

  github.com/coreos/etcd/clientv3.streamKeyFromCtx()

      /go/src/github.com/coreos/etcd/gopath/src/github.com/coreos/etcd/clientv3/watch.go:825 +0xc8

  github.com/coreos/etcd/clientv3.(*watcher).Watch()

      /go/src/github.com/coreos/etcd/gopath/src/github.com/coreos/etcd/clientv3/watch.go:265 +0x426

  github.com/coreos/etcd/clientv3/integration.testWatchOverlapContextCancel.func1()

      /go/src/github.com/coreos/etcd/gopath/src/github.com/coreos/etcd/clientv3/integration/watch_test.go:959 +0x23e

Goroutine 99 (running) created at:

  github.com/coreos/etcd/clientv3.(*watcher).newWatcherGrpcStream()

      /go/src/github.com/coreos/etcd/gopath/src/github.com/coreos/etcd/clientv3/watch.go:236 +0x59d

  github.com/coreos/etcd/clientv3.(*watcher).Watch()

      /go/src/github.com/coreos/etcd/gopath/src/github.com/coreos/etcd/clientv3/watch.go:278 +0xbb6

  github.com/coreos/etcd/clientv3/integration.testWatchOverlapContextCancel.func1()

      /go/src/github.com/coreos/etcd/gopath/src/github.com/coreos/etcd/clientv3/integration/watch_test.go:959 +0x23e

Goroutine 130 (running) created at:

  github.com/coreos/etcd/clientv3/integration.testWatchOverlapContextCancel()

      /go/src/github.com/coreos/etcd/gopath/src/github.com/coreos/etcd/clientv3/integration/watch_test.go:979 +0x76d

  github.com/coreos/etcd/clientv3/integration.TestWatchOverlapContextCancel()

      /go/src/github.com/coreos/etcd/gopath/src/github.com/coreos/etcd/clientv3/integration/watch_test.go:922 +0x44

  testing.tRunner()

      /usr/local/go/src/testing/testing.go:657 +0x107

==================

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-03-18 17:17:00 -07:00
0b9cfa8677 etcdserver/api/etcdhttp: log server-side /health checks
ref.
https://github.com/etcd-io/etcd/pull/11704

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-03-18 16:29:24 -07:00
b66c53ff5f proxy/grpcproxy: add return on error for metrics handler
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
2020-03-16 12:06:01 -04:00
8f6c3f4d09 Merge pull request #11664 from jingyih/automated-cherry-pick-of-#11638-upstream-release-3.4
Automated cherry pick of #11638 on release-3.4
2020-03-11 19:26:11 -04:00
379d01a0d2 etcdctl: fix member add command
Use members information from member add response, which is
guaranteed to be up to date.
2020-02-29 07:18:11 -08:00
c65a9e2dd1 version: 3.4.4
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2020-02-24 13:14:02 -08:00
7862f6ed2c Merge pull request #11644 from jingyih/automated-cherry-pick-of-#11640-upstream-release-3.4
Automated cherry pick of #11640 on release-3.4
2020-02-23 14:42:34 +08:00
257319fb18 etcdserver: fix quorum calculation when promoting a learner member
When promoting a learner member we should not count already a voting
member, but take only into account the number of existing voting
members and their current status (started, unstarted) when taking the
decision whether a learner member can be promoted.

Before this change, it was impossible to grow from a quorum N to a N+1
through promoting a learning member.

Fixes: #11633
2020-02-21 23:14:55 -08:00
cdb2dc11b8 Merge pull request #11636 from YoyinZyc/automated-cherry-pick-of-#11621-upstream-release-3.4
Automated cherry pick of #11621 to release-3.4
2020-02-20 13:04:33 +08:00
770674e4a6 etcdserver: corruption check via http
During corruption check, get peer's hashKV via http call.
2020-02-18 14:12:19 -08:00
c10168f718 Merge pull request #11631 from jingyih/automated-cherry-pick-of-#11630-upstream-release-3.4
Automated cherry pick of #11630 to release-3.4
2020-02-16 08:35:23 +08:00
94673a6ba4 mvcc/backend: check for nil boltOpenOptions
Check if boltOpenOptions is nil before use it.
2020-02-15 00:18:26 -08:00
a1bf5574fc Merge pull request #11622 from jpbetz/automated-cherry-pick-of-#11613-origin-release-3.4
Automated cherry pick of #11613 to release-3.4
2020-02-13 14:45:38 -08:00
6d646c442a mvcc/backend: Delete orphaned db.tmp files before defrag 2020-02-13 12:26:54 -08:00
1226686cf3 Merge pull request #11588 from jingyih/automated-cherry-pick-of-#11586-upstream-release-3.4
Automated cherry pick of #11586 on release 3.4
2020-02-04 19:45:59 -08:00
50e12328ac auth: correct logging level 2020-02-04 05:38:58 -08:00
0dc78a144b Merge pull request #11439 from YoyinZyc/automated-cherry-pick-of-#11418-upstream-release-3.4
Automated cherry pick of #11418 to release 3.4
2019-12-11 14:41:06 -08:00
7cf32c262c e2e: test curl auth on onoption user 2019-12-10 12:53:10 -08:00
4a9247a47e auth: fix NoPassWord check when add user 2019-12-10 12:53:10 -08:00
ac63c2fbd0 Merge pull request #11415 from YoyinZyc/automated-cherry-pick-of-#11413-upstream-release-3.4
Automated cherry pick of #11413 to release-3.4
2019-12-02 14:51:47 -08:00
ae5bd3c268 auth: fix user.Options nil pointer 2019-12-02 14:44:15 -08:00
94e46ba0d7 Merge pull request #11403 from jingyih/automated-cherry-pick-of-#11400-upstream-release-3.4
Automated cherry pick of #11400 on release 3.4
2019-11-27 13:28:34 -08:00
8c10973820 mvcc/kvstore:fixcompactbug 2019-11-27 13:07:47 -08:00
1af0b51537 Merge pull request #11393 from jingyih/automated-cherry-pick-of-#11374-upstream-release-3.4
Automated cherry pick of #11374 on release 3.4
2019-11-26 15:02:27 -08:00
f4669c3b62 mvcc: update to "etcd_debugging_mvcc_total_put_size_in_bytes" 2019-11-26 14:03:07 -08:00
55c3476abc mvcc: add "etcd_mvcc_put_size_in_bytes" to monitor the throughput of put request. 2019-11-26 14:03:07 -08:00
b66203c0a1 Merge pull request #11299 from jingyih/automated-cherry-pick-of-#10468-upstream-release-3.4
Automated cherry pick of #10468 on release-3.4
2019-11-05 18:34:22 -08:00
4388404f56 clientv3: fix retry/streamer error message
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-10-31 10:09:18 -07:00
a447d51f23 Merge pull request #11312 from jingyih/automated-cherry-pick-of-#11308-upstream-release-3.4
Automated cherry pick of #11308 on release-3.4
2019-10-31 10:08:34 -07:00
4f3c81d81d etcdserver: wait purge file loop during shutdown
To prevent the purge file loop from accidentally acquiring the file lock
and remove the files during server shutdowm.
2019-10-30 16:04:41 -07:00
478da3bf24 integration: disable TestV3AuthOldRevConcurrent
Disable TestV3AuthOldRevConcurrent for now. See
https://github.com/etcd-io/etcd/pull/10468#issuecomment-463253361
2019-10-28 15:03:44 -07:00
d6b30e43cd etcdserver: remove auth validation loop
Remove auth validation loop in v3_server.raftRequest(). Re-validation
when error ErrAuthOldRevision occurs should be handled on client side.
2019-10-28 15:03:44 -07:00
1e98c9642e scripts/release: list GPG key only when tagging is needed
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-10-23 11:13:21 -07:00
3cf2f69b57 version: 3.4.3
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-10-23 10:11:46 -07:00
d617055284 *: use Go 1.12.12
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-10-23 10:11:02 -07:00
84db9b0878 Merge pull request #11252 from YoyinZyc/automated-cherry-pick-of-#11247-origin-release-3.4
Automated cherry pick of #11247
2019-10-18 10:30:30 -07:00
6cf418ff6d Merge pull request #11275 from YoyinZyc/stream-support-3.4
rafthttp: add 3.4 stream type
2019-10-18 10:25:53 -07:00
97e68cf4e7 rafthttp: add 3.4 stream type 2019-10-17 14:33:53 -07:00
90556d550d Merge pull request #11269 from jingyih/automated-cherry-pick-of-#11265-upstream-release-3.4
Automated cherry pick of #11265 on release 3.4
2019-10-16 16:50:06 -07:00
a00abf5f2a etcdserver: strip patch version in metrics
Strip patch version in cluster version metrics during node restart.
2019-10-16 16:29:53 -07:00
b3329ebcd2 Merge pull request #11255 from jingyih/automated-cherry-pick-of-#11233-#11254-upstream-release-3.4
Automated cherry pick of #11233 #11254 on release 3.4
2019-10-15 11:06:09 -07:00
b67862c0a6 etcdserver: strip patch version in cluster version
Strip patch version in cluster version metrics.
2019-10-14 17:37:49 -07:00
6a699b6b7f etcdserver: unset old cluster version in metrics 2019-10-14 17:35:10 -07:00
bb5ba14aac Add version, tag and branch checks to release script 2019-10-14 12:55:17 -07:00
c3dc994567 Merge pull request #11243 from YoyinZyc/automated-cherry-pick-of-#11237-origin-release-3.4
Automated cherry pick of #11237
2019-10-11 12:38:10 -07:00
f3fbed5b72 Merge branch 'release-3.4' into automated-cherry-pick-of-#11237-origin-release-3.4 2019-10-11 11:17:03 -07:00
e2547907c5 scripts: avoid release builds on darwin machine. 2019-10-11 11:12:30 -07:00
14c239030f Merge pull request #11235 from YoyinZyc/automated-cherry-pick-of-#11234-origin-release-3.4
Automated cherry pick of #11234
2019-10-10 16:28:59 -07:00
7b67e8a5c5 scripts: fix read failure prompt in release; use https for git clone. 2019-10-10 16:20:17 -07:00
bbe86b066c version: 3.4.2 2019-10-09 15:26:52 -07:00
2c36cab87d Merge pull request #11223 from YoyinZyc/automated-cherry-pick-of-#11179-origin-release-3.4
Automated cherry pick of #11179
2019-10-09 13:28:04 -07:00
480d5510f9 etcdserver: trace compaction request; add return parameter 'trace' to applierV3.Compaction() mvcc: trace compaction request; add input parameter 'trace' to KV.Compact() 2019-10-09 12:40:12 -07:00
9245518363 etcdserver: trace raft requests. 2019-10-09 12:40:12 -07:00
daa432cfa7 etcdserver: add put request steps. mvcc: add put request steps; add trace to KV.Write() as input parameter. 2019-10-09 12:40:12 -07:00
8717327697 pkg: use zap logger to format the structure log output. 2019-10-09 12:40:12 -07:00
4f1bbff888 pkg: add field to record additional detail of trace; add stepThreshold to reduce log volume. 2019-10-09 12:40:12 -07:00
28bb8037d9 pkg: create package traceutil for tracing. mvcc: add tracing steps:range from the in-memory index tree; range from boltdb. etcdserver: add tracing steps: agreement among raft nodes before linerized reading; authentication; filter and sort kv pairs; assemble the response. 2019-10-09 12:40:12 -07:00
03b5e7229b Merge pull request #11213 from jpbetz/automated-cherry-pick-of-#11211-origin-release-3.4
Automated cherry pick of #11211
2019-10-08 18:47:06 -07:00
0781c0327d clientv3: Replace endpoint.ParseHostPort with net.SplitHostPort to fix IPv6 client endpoints 2019-10-08 18:27:03 -07:00
99774d8ed4 Merge pull request #11214 from jpbetz/automated-cherry-pick-of-#11184-origin-release-3.4
Automated cherry pick of #11184
2019-10-08 17:35:02 -07:00
c454344f14 clientv3: Set authority used in cert checks to host of endpoint 2019-10-08 15:35:27 -07:00
dae0a72a42 Merge pull request #11200 from jingyih/automated-cherry-pick-of-#11194-origin-release-3.4
Automated cherry pick of #11194 on release-3.4
2019-10-03 16:03:23 -07:00
c91a6bf14f tests/e2e: fix metrics tests
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-10-03 16:02:39 -07:00
b7ff97f54e etcdctl: fix member add command 2019-10-03 13:52:22 -07:00
d08bb07d6d scripts/build-binary: fix darwin tar commands
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-09-28 11:39:04 -07:00
3a736a81e8 scripts/release: fix SHA256SUMS command
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-09-17 14:12:18 -07:00
a14579fbfb version: 3.4.1
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-09-17 13:53:25 -07:00
ade66a5722 scripts/release: fix docker push command
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-09-17 13:53:12 -07:00
67cc70926d integration: fix bug in for loop, make it break properly 2019-09-17 13:30:12 -07:00
21dcadc83c Merge pull request #11148 from spzala/automated-cherry-pick-of-#11147-upstream-release-3.4
Automated cherry pick of #11147
2019-09-13 11:12:41 -07:00
c7c379e52e embed: expose ZapLoggerBuilder
This exposes the ZapLoggerBuilder in the embed.Config to allow for
custom loggers to be defined and used by embedded etcd.

Fixes #11144
2019-09-13 14:09:54 -04:00
9ed5f76dc0 vendor: upgrade to gRPC v1.23.1
https://github.com/grpc/grpc-go/releases/tag/v1.23.1

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-09-11 14:54:24 -07:00
994865c89e Merge pull request #11133 from jingyih/automated-cherry-pick-of-#11126-origin-release-3.4
Automated cherry pick of #11126 on release-3.4
2019-09-07 00:03:37 -07:00
ccbbb2f8d6 mvcc: add store revision metrics
Add experimental metrics etcd_debugging_mvcc_current_revision and
etcd_debugging_mvcc_compact_revision.
2019-09-06 17:03:21 -07:00
d5f79adc9c etcdserver: remove dup percentage sign in log 2019-09-04 22:03:49 -07:00
8b053b0f44 embed: fix secure server logging message
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-09-03 09:43:08 -07:00
11980f8165 scripts/release: Apply shellcheck findings
I run https://github.com/koalaman/shellcheck/ over scripts/* and fixed
the findings it returned.

Signed-off-by: Manuel Rüger <manuel@rueg.eu>
2019-09-03 09:42:35 -07:00
41d4e2b276 scripts/release: rename SHA256SUM to SHA256SUMS
These files are commonly called SHA256SUMS and with this change rget
works for v3.4.0 as well.

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-30 13:35:40 -07:00
898bd1351f version: 3.4.0
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-30 08:09:55 -07:00
d04d96c9ac tests/e2e: run metrics test again
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-30 08:09:32 -07:00
21edf98fdb Documentation:fix clerical error 2019-08-30 08:08:47 -07:00
a4f7c65ef8 vendor: x/sys and x/net to support building on Risc-V
Signed-off-by: Carlos de Paula <me@carlosedp.com>
2019-08-29 14:03:59 -07:00
c3a9eec843 scripts/release: fix sha256sum
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-29 09:38:57 -07:00
e5528acf57 version: 3.4.0-rc.4
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-29 08:53:10 -07:00
9977550ae9 Merge pull request #11091 from hexfusion/automated-cherry-pick-of-#11087-upstream-release-3.4
Automated cherry pick of #11087 on release 3.4
2019-08-29 08:39:11 -07:00
4d7a6e2755 scripts/release: add sha256sum summary of release assets
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
2019-08-29 11:33:16 +00:00
5e8757c3c5 Documentation: Add section headers to etcd Learner
In the Background section, the document describes various challenges for cluster membership change.
Added section header for each case described for better readability.
2019-08-27 10:18:34 -07:00
012e38fef3 version: 3.4.0-rc.3
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-27 09:50:54 -07:00
41a2cfa122 pkg/logutil: change to "MergeOutputPaths"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-27 09:50:26 -07:00
9f8a1edf38 embed: fix "--log-outputs" setup without "stderr"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-27 09:50:17 -07:00
165ba72593 raft/log_test: fixed wrong index 2019-08-26 12:37:07 -07:00
9c850ccef0 raft: fixed some typos and simplify minor logic 2019-08-26 12:37:02 -07:00
61d6efda4c etcdserver: add check for nil options 2019-08-26 10:48:20 -07:00
b76f149c35 tests/e2e: skip metrics tests for now
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-26 00:02:48 -07:00
5e33bb1a95 Documentation: snapshot can be requested from one etcd node only
Updated Snapshot section of demo.md to reflect that snapsot can be requested only from one etcd node at a time.

Fixes : #10855
2019-08-25 23:40:25 -07:00
83bf125d93 clientv3: add nil checks in Close()
Added nil checks in Close() for Watcher and Lease fields
Added test case
2019-08-25 23:40:05 -07:00
d23af41bca tests/e2e: remove string replace for v3.4.0-rc.1
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-23 01:14:42 -07:00
67d0c21bb0 version: 3.4.0-rc.2
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-23 00:37:01 -07:00
18a077d3d3 raft : Write compact if statements 2019-08-23 00:36:44 -07:00
fb6d870e89 Merge pull request #11072 from jingyih/automated-cherry-pick-of-#11069-origin-release-3.4
Automated cherry pick of #11069 on release-3.4
2019-08-23 06:57:12 +08:00
e00224f87e integration: fix TestKVPutError
Give backend quota enough overhead.
2019-08-22 13:33:19 -07:00
2af1caf1a5 functional test: fix typo in agent log
Fix typo in functional test agent log to avoid debugging confusion.
2019-08-20 15:23:13 -07:00
0777eab766 Documentation/upgrades: special upgrade guides for >= 3.3.14
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-16 16:19:22 -07:00
0ecc0d0542 etcdmain: update help message
Add experimental-peer-skip-client-san-verification flag description to
help message. Add default values.
2019-08-16 16:07:06 -07:00
982a8c9bc3 rafttest: print Ready before processing it
It was confusing to see the effects of the Ready (i.e. log messages)
printed before the Ready itself.
2019-08-16 08:10:17 -07:00
b8e3e4e7cb raft: fix a test file name 2019-08-16 08:10:07 -07:00
4090edfb5b raft: document problem with leader self-removal
When a leader removes itself, it will retain its leadership but not
accept new proposals, making the range effectively stuck until manual
intervention triggers a campaign event.

This commit documents the behavior. It does not correct it yet.
2019-08-16 08:09:56 -07:00
078caccce5 raft: add a batch of interaction-driven conf change tests
Verifiy the behavior in various v1 and v2 conf change operations.
This also includes various fixups, notably it adds protection
against transitioning in and out of new configs when this is not
permissible.

There are more threads to pull, but those are left for future commits.
2019-08-16 08:09:44 -07:00
d177b7f6b4 raft: proactively probe newly added followers
When the leader applied a new configuration that added voters, it would
not immediately probe these voters, delaying when they would be caught
up.

I noticed this while writing an interaction-driven test, which has now
been cleaned up and completed.
2019-08-16 08:09:33 -07:00
2c1a1d8c32 rafttest: add _breakpoint directive
It is a helper case to attach a debugger to when a problem needs
to be investigated in a longer test file. In such a case, add the
following stanza immediately before the interesting behavior starts:

_breakpoint:
----
ok

and set a breakpoint on the _breakpoint case.
2019-08-16 08:09:23 -07:00
0fc108428e raft: initialize new Progress at LastIndex, not LastIndex+1
Initializing at LastIndex+1 meant that new peers would not be probed
immediately when they appeared in the leader's config, which delays
their getting caught up.
2019-08-16 08:09:11 -07:00
df489e7a2c raft/rafttest: fix stabilize handler
It was bailing out too early.
2019-08-16 08:08:28 -07:00
f13a5102ec tests/e2e: fix version matching
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-15 14:46:19 -07:00
c9465f51d2 *: use Go 1.12.9
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-15 14:40:46 -07:00
8f85f0dc26 version: 3.4.0-rc.1
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-15 13:45:25 -07:00
0161e72d8d mvcc: keep 64-bit alignment in "store" struct
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-15 13:31:52 -07:00
1691eec2db clientv3/integration: fix "mvcc.NewStore" call
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-15 13:31:46 -07:00
1e213b7ab6 *: Add experimental-compaction-batch-limit flag
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-15 13:31:39 -07:00
b30c1eb2c8 mvcc: Optimize compaction for short commit pauses 2019-08-15 13:29:28 -07:00
a0be90f450 Documentation/upgrades: update
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-14 17:01:19 -07:00
8110a96f69 scripts/release: clean up minor tag docker commands
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-13 22:01:10 -07:00
8e05c73fa7 Makefile: explicit about GOOS in docker-test builds
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-13 16:57:22 -07:00
970ca9fa43 Documentation/upgrades: highlight "--enable-v2=false"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-13 15:32:46 -07:00
a481ee809f vendor: update "net/http2" to latest
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-13 14:44:59 -07:00
4d06d3b498 vendor: upgrade grpc-go to 1.23.0
https://github.com/grpc/grpc-go/releases/tag/v1.23.0

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-13 14:44:53 -07:00
98462b52d1 *: use Go 1.12.8
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-13 12:56:11 -07:00
2a8d09b83b clientv3: use Endpoints(), fix context creation
If overwritten, the previous context should be canceled first.

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-13 12:43:49 -07:00
49c6e87f74 version: 3.4.0-pre
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-13 12:43:40 -07:00
84ed0f7f87 version: 3.4.0-rc.0
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-12 10:06:34 -07:00
52d34298ab scripts: remove ".aci" commands
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-12 10:06:24 -07:00
9c1d2eaee4 scripts/release: fix version check commands
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-12 09:59:24 -07:00
547631a492 scripts: fix build docker commands, add more logging
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-12 09:50:21 -07:00
802e01a0d8 *: remove "acbuild"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-12 09:50:21 -07:00
1dff1c869f scripts/release: fix "yq" command
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-12 09:50:18 -07:00
ac6b604bb8 raft/rafttest: introduce datadriven testing
It has often been tedious to test the interactions between multi-member
Raft groups, especially when many steps were required to reach a certain
scenario. Often, this boilerplate was as boring as it is hard to write
and hard to maintain, making it attractive to resort to shortcuts
whenever possible, which in turn tended to undercut how meaningful and
maintainable the tests ended up being - that is, if the tests were even
written, which sometimes they weren't.

This change introduces a datadriven framework specifically for testing
deterministically the interaction between multiple members of a raft group
with the goal of reducing the friction for writing these tests to near
zero.

In the near term, this will be used to add thorough testing for joint
consensus (which is already available today, but wildly undertested),
but just converting an existing test into this framework has shown that
the concise representation and built-in inspection of log messages
highlights unexpected behavior much more readily than the previous unit
tests did (the test in question is `snapshot_succeed_via_app_resp`; the
reader is invited to compare the old and new version of it).

The main building block is `InteractionEnv`, which holds on to the state
of the whole system and exposes various relevant methods for
manipulating it, including but not limited to adding nodes, delivering
and dropping messages, and proposing configuration changes. All of this
is extensible so that in the future I hope to use it to explore the
phenomena discussed in

https://github.com/etcd-io/etcd/issues/7625#issuecomment-488798263

which requires injecting appropriate "crash points" in the Ready
handling loop. Discussions of the "what if X happened in state Y"
can quickly be made concrete by "scripting up an interaction test".

Additionally, this framework is intentionally not kept internal to the
raft package.. Though this is in its infancy, a goal is that it should
be possible for a suite of interaction tests to allow applications to
validate that their Storage implementation behaves accordingly, simply
by running a raft-provided interaction suite against their Storage.
2019-08-12 08:10:29 -07:00
69c97cdc8f vendor: bump datadriven
Picks up some fixes for papercuts.
2019-08-12 08:10:19 -07:00
faa71d89d4 cleanup: correct summary message in put.go 2019-08-12 08:07:33 -07:00
64c16779c0 tests/e2e: pass "rc.0"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-12 01:46:58 -07:00
8ff71c52db test: fix metric name typo 2019-08-09 13:24:27 -07:00
dbe5198c45 raft: fix restoring joint configurations
While writing interaction tests for joint configuration changes, I
realized that this wasn't working yet - restoring had no notion of
the joint configuration and was simply dropping it on the floor.

This commit introduces a helper `confchange.Restore` which takes
a `ConfState` and initializes a `Tracker` from it.

This is then used both in `(*raft).restore` as well as in `newRaft`.
2019-08-09 11:18:40 -07:00
39d0f4e53c confchange: clean up unnecessary block 2019-08-09 11:18:30 -07:00
a8b4213ec0 raft : newRaft() does check for validity of Config 2019-08-09 11:18:06 -07:00
a945379ce4 raft/tracker: visit Progress in stable order
This is helpful for upcoming testing work which allows datadriven
testing of the interaction of multiple nodes. This testing requires
determinism to work correctly.
2019-08-09 08:39:52 -07:00
7a50cd7074 raft/auorum: remove unused type 2019-08-09 08:39:44 -07:00
f786b6ba16 etcdserver: add "etcd_server_snapshot_apply_in_progress_total"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-08 14:02:13 -07:00
1c8ab76333 integration: test snapshot inflights metrics
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-08 14:01:54 -07:00
abdb7ca17b etcdserver/api: add "etcd_network_snapshot_send_inflights_total", "etcd_network_snapshot_receive_inflights_total"
Useful for deciding when to terminate the unhealthy follower.
If the follower is receiving a leader snapshot, operator may wait.

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-08 14:01:45 -07:00
629cb7aa5e agent: fix a data race and deadlock
add 1-size buffer for `errc`  to avoid deadlock of child goroutine
add a local variable to a void data race in `err`
when `case <-stream.Context().Done():` is taken
2019-08-08 12:23:08 -07:00
89e102365d Documentation/op-guide: update runtime configuration
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-08 09:25:29 -07:00
9018b3dc4d raft: let learners vote
It turns out that that learners must be allowed to cast votes.

This seems counter- intuitive but is necessary in the situation in which
a learner has been promoted (i.e. is now a voter) but has not learned
about this yet.

For example, consider a group in which id=1 is a learner and id=2 and
id=3 are voters. A configuration change promoting 1 can be committed on
the quorum `{2,3}` without the config change being appended to the
learner's log. If the leader (say 2) fails, there are de facto two
voters remaining. Only 3 can win an election (due to its log containing
all committed entries), but to do so it will need 1 to vote. But 1
considers itself a learner and will continue to do so until 3 has
stepped up as leader, replicates the conf change to 1, and 1 applies it.

Ultimately, by receiving a request to vote, the learner realizes that
the candidate believes it to be a voter, and that it should act
accordingly. The candidate's config may be stale, too; but in that case
it won't win the election, at least in the absence of the bug discussed
in:
https://github.com/etcd-io/etcd/issues/7625#issuecomment-488798263.
2019-08-08 09:10:21 -07:00
b9bea9def7 functional/agent: copy file, instead of renaming
To retain failure logs in CI testing.

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-08 09:09:39 -07:00
d2675c13f4 functional/rpcpb: make client log less verbose
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-08 09:09:34 -07:00
8230536171 functional.yaml: try lower snapshot count for flaky tests, error threshold
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-08 09:09:29 -07:00
524278c187 pkg/types: Avoid potential double lock of tsafeSet.
(tsafeSet).Sub and (tsafeSet).Equals can cause double lock bug if ts and other is pointing the same variable

gofmt the code and add some comments
2019-08-07 16:02:24 -07:00
29cdc9abfc test: output etcd server logs when functional tests fail
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-07 10:16:44 -07:00
a6a9a71b6a integration: fix a data race about err
don't share `err` between goroutines
2019-08-06 16:15:27 -07:00
8c8f6f4b01 mvcc: fix typo in test
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-06 15:09:55 -07:00
b6cfaf883b v3rpc: fix a typo err
don't read return value in child goroutine which causes data race.
2019-08-06 15:09:47 -07:00
b522281a98 stream: Prevent panic when newAttemptLocked fails to get a transport for the new attempt
Testing https://github.com/grpc/grpc-go/pull/2958

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-06 15:09:42 -07:00
a78793e6bf vendor: update gRPC to latest
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-06 15:09:37 -07:00
e09528aa06 Merge pull request #10988 from wenjiaswe/automated-cherry-pick-of-#10987-upstream-release-3.4
Automated cherry pick of #10987
2019-08-05 23:31:33 -07:00
cb4507d15b functional:update go.etcd.io/etcd link and go image registry for functional test 2019-08-05 23:28:45 -07:00
4cead3c25c Merge pull request #10986 from wenjiaswe/automated-cherry-pick-of-#10985-upstream-release-3.4
Automated cherry pick of #10985
2019-08-05 22:45:31 -07:00
3ac41644cc functional test: Update functional README.md 2019-08-05 22:12:50 -07:00
0564743c9b CHANGELOG: remove from release branch
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-05 14:39:18 -07:00
9d927afead Documentation/upgrades: highlight "grpc.ErrClientConnClosing"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-05 14:38:51 -07:00
5d19b96341 proxy/grpcproxy: deprecate "grpc.ErrClientConnClosing"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-05 14:38:44 -07:00
faa1d9d206 functional: deprecate "grpc.ErrClientConnClosing"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-05 14:38:35 -07:00
ab1db0dfd8 clientv3: deprecate "grpc.ErrClientConnClosing"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-05 14:38:27 -07:00
1c312cefbd functional: use Go 1.12.7 as default
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-05 12:40:50 -07:00
b4fcaad87d pkg/adt: remove TODO
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-05 00:25:02 -07:00
3468505e38 clientv3: document "WithBlock" dial option
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-04 23:53:02 -07:00
a2d68dd389 travis: do not allow CPU 4 test failures
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-04 23:34:31 -07:00
c6e9699960 travis: do not run coverage, tip tests in v3.4
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-04 23:33:13 -07:00
b05dfeb15e scripts/release: remove acbuild commands
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-04 23:21:51 -07:00
bb7df24af4 pkg/adt: fix interval tree black-height property based on rbtree
Author: xkey <xk33430@ly.com>
ref. https://github.com/etcd-io/etcd/pull/10978

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-04 23:15:09 -07:00
9ff86fe516 tests/e2e: skip release tests until release candidate
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-03 00:09:10 -07:00
bc9a54beae tests/e2e: fix upgrade, metrics tests
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-02 15:58:25 -07:00
df1d3f7c6e functional: remove "embed" support in tests
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-02 15:58:21 -07:00
14053ba7f7 etcdserver/api: enable 3.4 capability
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-02 15:24:40 -07:00
040f2c5526 version: 3.4.0-pre
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-01 16:05:22 -07:00
f1c7fd3d53 functional: add "LogLevel" flags
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-01 15:58:01 -07:00
22a3ec3ac5 CHANGELOG-3.4: highlight version string change
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-01 15:30:04 -07:00
4244ea4390 CHANGELOG: update with latest changes, make language consistent
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-01 15:26:31 -07:00
d239b21d10 Documentation/upgrades: update 3.4 guides
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-01 15:26:16 -07:00
b679c12a51 Merge pull request #10968 from gyuho/mmm
mvcc: add "etcd_mvcc_range_total", "etcd_mvcc_txn_total"
2019-08-01 14:46:49 -07:00
328fdc2150 mvcc: add TODOs
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-01 14:45:21 -07:00
f82e23ab52 mvcc: add "etcd_mvcc_range_total", "etcd_mvcc_txn_total"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-01 14:44:55 -07:00
dde3c5fc40 mvcc: clean up metrics names, add missing register calls
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-01 14:44:55 -07:00
05b2f967c2 Merge pull request #10969 from gyuho/maintainers
MAINTAINERS: add @spzala
2019-08-01 14:44:12 -07:00
8d88fea0c8 MAINTAINERS: add @spzala
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-01 14:24:24 -07:00
c9bd8db46a CHANGELOG: fix typos
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-01 14:11:50 -07:00
6804bd8af4 CHANGELOG: add latest metrics change
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-01 13:53:12 -07:00
d5bd600aa5 CHANGELOG: update "pkg/adt"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-01 13:37:28 -07:00
3b631e1bb6 pkg/adt: document textbook implementation with pseudo-code
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-01 12:58:47 -07:00
456c91b63a Merge pull request #10959 from gyuho/adt
pkg/adt: refactor + add more test cases
2019-08-01 12:22:15 -07:00
5ef8f2770c Merge pull request #10962 from hexfusion/promote_mvcc
metrics: promote etcd_debugging_mvcc put_total and delete_total
2019-07-31 22:24:40 -07:00
6a0811a949 *: use new adt.IntervalTree interface
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-31 22:23:13 -07:00
3cc3affedd pkg/adt: mask test failure, add TODO
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-31 22:20:59 -07:00
f46ee91863 metrics: promote etcd_debugging_mvcc put_total and delete_total
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
2019-08-01 01:28:07 +00:00
46f04b3c15 pkg/adt: add "IntervalTree.Delete" failure case
Described in https://github.com/etcd-io/etcd/issues/10877.

"black-height" property: Every path from a node to any descendant leaf node must have the same number of black nodes.

Expected

    After deleting 11 (requires rebalancing):
                            [510,511]
                             /      \
                   ----------        --------------------------
                  /                                            \
              [383,384]                                       [830,831]
              /       \                                      /          \
             /         \                                    /            \
      [261,262](red)  [410,411]                     [647,648]           [899,900](red)
          /               \                              \                      /    \
         /                 \                              \                    /      \
      [82,83]           [292,293]                      [815,816](red)   [888,889]    [972,973]
            \                                                           /
             \                                                         /
          [238,239](red)                                       [953,954](red)

Got

    After deleting 11 (requires rebalancing):
                            [510,511]
                             /      \
                   ----------        --------------------------
                  /                                            \
              [82,83]                                       [830,831]
                    \                                      /          \
                     \                                    /            \
                  [383,384]                        [647,648]            [899,900]
                  /       \                              \                  /    \
                 /         \                              \                /      \
           [261,262]      [410,411]                      [815,816]   [888,889]    [972,973]
             /   \                                                                  /
            /     \                                                                /
     [238,239]   [292,293]                                                  [953,954]

This violates "black-height" property.

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-31 10:05:32 -07:00
f2742d6cd4 pkg/adt: test node "11" deletion
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-31 10:05:32 -07:00
1d638bad72 pkg/adt: README "IntervalTree.Delete" test case images
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-31 10:05:32 -07:00
19d69d2563 pkg/adt: README initial commit
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-31 10:05:27 -07:00
6917c495e8 pkg/adt: add "visitLevel", make "IntervalTree" interface, more tests
Make "IntervalTree" an interface to abstract range tree interface

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-30 15:59:59 -07:00
149e5dc291 etcdserver: mark flag as experimental, add to changelog and configuration 2019-07-30 16:57:57 -04:00
03fd396610 pkg/transport: Improved description of flag peer-skip-client-san-verification 2019-07-30 16:57:57 -04:00
2f476f2b5a pkg/transport: Added test for SkipClientVerify flag. 2019-07-30 16:57:57 -04:00
1b048c91ec etcdserver: Added configuration flag --peer-skip-client-verify=true 2019-07-30 16:57:57 -04:00
a2a8887c33 Merge pull request #10953 from gyuho/grpc-gateway
vendor: update grpc-ecosystem
2019-07-30 13:31:44 -07:00
465592a718 Documentation/etcd-mixin: Add an alert for down etcd members
An etcd member being down is an important failure state - while
normal admin operations may cause transient outages to rotate,
when any member is down the cluster is operating in a degraded
fashion. Add an alert that records when any members are down
so that administrators know whether the next failure is fatal.

The rule is more complicated than `up{...} == 0` because not all
failure modes for etcd may have an `up{...}` entry for each member.
For instance, a Kubernetes service in front of an etcd cluster
might only have 2 endpoints recorded in `up` because the third
pod is evicted by the kubelet - the cluster is degraded but
`count(up{...})` would not return the full quorum size. Instead,
use network peer send failures as a failure detector and attempt
to return the max of down services or failing peers. We may
undercount the number of total failures, but we will at least
alert that a member is down.
2019-07-30 14:39:50 -04:00
12c049e6be Merge pull request #10835 from spzala/securityprocess
Security: Create etcd security process
2019-07-30 14:14:46 -04:00
bc95b1fa84 bill-of-materials: update
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-29 21:41:47 -07:00
80efba3368 tests/e2e: fix curl proclaim error message
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-29 21:28:15 -07:00
f3bca1db08 vendor: update grpc-ecosystem
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-29 16:13:54 -07:00
800e7235eb CHANGELOG: add recent changes in logger
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-29 16:09:06 -07:00
6e766ac5fb Merge pull request #10947 from gyuho/log-level
*: make log level configurable
2019-07-29 16:06:51 -07:00
4e43a082b2 raft: use mutex in "SetLogger" to avoid race conditions in tests
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-29 15:43:19 -07:00
c6e3401255 etcdserver: make raft log configured by top level logger
To make it consistent

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-29 15:43:19 -07:00
abba5421f5 Documentation/op-guide: add "--log-level" flag
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-29 15:43:19 -07:00
a37f3441f5 etcdmain: add "--log-level" flag
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-29 15:43:19 -07:00
b9de4bddda embed: add "LogLevel", deprecate "Debug" in v3.5
Make log level configurable, and deprecate "debug" flag in v3.5.
And adds more warnings on flags that's being deprecated in v3.5.

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-29 15:43:19 -07:00
e911f901a6 pkg/logutil: add log level utilities
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-29 15:43:19 -07:00
348b0d40a6 embed: do not expose "zapLoggerBuilder"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-29 15:43:19 -07:00
324952c12a Merge pull request #10935 from gyuho/v2
*: disable v2 API by default
2019-07-29 15:42:56 -07:00
936c506e8d Merge pull request #10945 from tbg/add-todo
raft: leave TODO about leaving StateSnapshot
2019-07-29 13:51:38 -07:00
4ca04ba991 Merge pull request #10949 from gyuho/docs
Documentation: move design docs to "Documentation", remove "docs"
2019-07-29 13:48:38 -07:00
87e203a5cf Documentation/learning: rewrite balancer design doc images
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-29 13:47:25 -07:00
ad491c0c32 Documentation: move client, learner design docs
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-28 21:54:22 -07:00
3fc62ca586 tools,Documentation: move "etcd-dump-metrics" output to "Documentation"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-28 21:53:50 -07:00
101a63ae97 docs: remove
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-28 21:53:31 -07:00
9e75f27985 CHANGELOG: move corrupt check features to etcd v4
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-28 23:09:42 -05:00
2f30e9ad7f etcdserver: document v2 usage in "publish" method
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-28 21:07:39 -05:00
ae87b21a72 tests/e2e: enable-v2 for v2 e2e tests
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-28 21:07:36 -05:00
38128425b2 Documentation/op-guide: disable v2 by default
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-28 19:36:51 -05:00
ecb915617d embed: disable v2 by default
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-28 19:36:51 -05:00
89d400211d Merge pull request #10911 from gyuho/balancer
clientv3: fix secure endpoint failover, refactor with gRPC 1.22 upgrade
2019-07-26 14:50:54 -07:00
3b02d4c5ff raft: leave TODO about leaving StateSnapshot
The condition is overly strict, which has popped up in CockroachDB
recently.
2019-07-26 23:19:34 +02:00
a7b8034e56 words: whitelist more
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-26 09:19:22 -07:00
8a2a951d79 integration: match code.Canceled in "TestV3KVInflightRangeRequests"
Match new error codes in gRPC v1.22.0

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-26 09:19:22 -07:00
ba42e65b59 clientv3/integration: give more time for balancer resolution
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-26 09:19:22 -07:00
8c7c6ec0c1 clientv3/balancer: refactor
refactor + remove unused

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-26 09:19:19 -07:00
3dc00ab615 clientv3: move auth token credential to "credentials" package
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-26 09:17:44 -07:00
db61ee106c clientv3/credentials: set dial target "Authority" with target address
Overwrite authority when it's IP.

When user dials with "grpc.WithDialer", "grpc.DialContext" "cc.parsedTarget"
update only happens once. This is problematic, because when TLS is enabled,
retries happen through "grpc.WithDialer" with static "cc.parsedTarget" from
the initial dial call.
If the server authenticates by IP addresses, we want to set a new endpoint as
a new authority. Otherwise
"transport: authentication handshake failed: x509: certificate is valid for 127.0.0.1, 192.168.121.180, not 192.168.223.156"
when the new dial target is "192.168.121.180" whose certificate host name is also "192.168.121.180"
but client tries to authenticate with previously set "cc.parsedTarget" field "192.168.223.156"

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-26 09:17:40 -07:00
a6b105a907 embed: use new "credentials" package
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-26 08:56:45 -07:00
7cbe2f5dd6 etcdserver/api/v3rpc: use new "credentials" package
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-26 08:56:38 -07:00
db7231accc clientv3: use new "credentials" package
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-26 08:56:33 -07:00
324c876742 clientv3/credential: implement grpc/credentials.Bundle
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-26 08:56:05 -07:00
4707d7a196 vendor: upgrade grpc-go to v1.22.1
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-26 08:53:09 -07:00
12ab2ee3c4 clientv3: do not use pointer to TransportCredentials interface
Interface in Go is already reference

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-26 08:52:31 -07:00
50babc16e7 etcdserver/api/v2v3: skip tests for CI
To fix in v3.5

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-26 05:54:58 -07:00
cf4b5d9c7f Merge pull request #10938 from MasahikoSawada/updategoversion
README: require Go 1.12+
2019-07-25 22:59:34 -07:00
222dcc8d13 README: require Go 1.12+
Fixes #10937
2019-07-26 14:31:24 +09:00
e36e3ac6a7 Merge pull request #10917 from gyuho/raft-node
raft: improve logging around tick miss
2019-07-25 22:17:28 +02:00
388d15f521 Merge pull request #10622 from philips/add-v2v3-tests
etcdserver: api/v2v3: add initial tests
2019-07-25 10:05:29 -07:00
84a38045c9 CHANGELOG: move "--enable-v2v3" to 3.5
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-25 09:29:31 -07:00
c5dba11197 Merge pull request #10933 from ChrisRx/fix-embed-panic
embed: fix oob panic in zap logger
2019-07-25 06:56:31 -07:00
2223142685 embed: fix oob panic in zap logger
This fixes an index out-of-bounds panic caused when using the embed
package and the zap logger. When a TLS handshake error is logged, the
slice for cert ip addresses is allocated with capacity but no length, so
subsequent index access causes the panic, and doesn't surface the TLS
handshake error to the user.

Fixes #10932
2019-07-25 09:42:42 -04:00
1782469a76 Merge pull request #10928 from spzala/changelogdep
changelog: reflect the latest vendor dependencies
2019-07-25 06:19:13 -07:00
c63c988d03 changelog: reflect the latest vendor dependencies
Vendor dependencies are modified under,
https://github.com/etcd-io/etcd/pull/10918

Also, the protobuf module is mentioned twice so removing one.
2019-07-25 02:52:34 -04:00
c7c9428f6b raft: move "RawNode", clarify tick miss
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-24 23:35:36 -07:00
8f000c755b Merge pull request #10918 from gyuho/zap-go
vendor: upgrade dependencies
2019-07-24 21:59:36 -07:00
425b65467c Merge pull request #10907 from spzala/emptyrole10905
etcdserver: do not allow creating empty role
2019-07-24 18:51:43 -07:00
1cef112a79 etcdserver: do not allow creating empty role
Like user, we should not allow creating empty role.

Related #10905
2019-07-24 17:41:24 -04:00
46166ad733 vendor: update
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-24 14:09:50 -07:00
d137fa9d4a Merge pull request #10920 from tbg/rawnode-ready
raft: require app to consume result from Ready()
2019-07-24 11:46:55 +02:00
8b752ef647 CHANGELOG: update latest changes
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-23 15:36:14 -07:00
721127da12 raft: require app to consume result from Ready()
I changed `(*RawNode).Ready`'s behavior in #10892 in a problematic way.
Previously, `Ready()` would create and immediately "accept" a Ready
(i.e. commit the app to actually handling it). In #10892, Ready() became
a pure read-only operation and the "accepting" was moved to
`Advance(rd)`.  As a result it was illegal to use the RawNode in certain
ways while the Ready was being handled. Failure to do so would result in
dropped messages (and perhaps worse). For example, with the following
operations

1. `rd := rawNode.Ready()`
2. `rawNode.Step(someMsg)`
3. `rawNode.Advance(rd)`

`someMsg` would be dropped, because `Advance()` would clear out the
outgoing messages thinking that they had all been handled by the client.
I mistakenly assumed that this restriction had existed prior, but this
is incorrect.

I noticed this while trying to pick up the above PR in CockroachDB,
where it caused unit test failures, precisely due to the above example.

This PR reestablishes the previous behavior (result of `Ready()` must
be handled by the app) and adds a regression test.

While I was there, I carried out a few small clarifying refactors.
2019-07-23 22:45:01 +02:00
a91f4e45c0 Merge pull request #10919 from gyuho/ci
*: test with Go 1.12.7
2019-07-23 13:09:01 -07:00
97bd2b3262 Update CHANGELOG-3.4.md for PR #10805 2019-07-23 12:48:28 -07:00
08db37db54 Security: Create etcd security process
Create security disclosure and release process, and team to handle issues.

Related # https://github.com/etcd-io/maintainers/issues/1
2019-07-23 15:43:15 -04:00
dfd62f04e9 *: test with Go 1.12.7
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-23 12:40:47 -07:00
a9047850de Merge pull request #10805 from wenjiaswe/rebase-distroless
Dockerfile: Rebase etcd image to debian
2019-07-23 11:42:48 -07:00
d1183424bb Merge pull request #10914 from tbg/api
raft: allow use of joint quorums
2019-07-23 11:49:08 +02:00
b9c051e7a7 raftpb: clean up naming in ConfChange 2019-07-23 10:40:03 +02:00
b67303c6a2 raft: allow use of joint quorums
This change introduces joint quorums by changing the Node and RawNode
API to accept pb.ConfChangeV2 (on top of pb.ConfChange).

pb.ConfChange continues to work as today: it allows carrying out a
single configuration change. A pb.ConfChange proposal gets added to
the Raft log as such and is thus also observed by the app during Ready
handling, and fed back to ApplyConfChange.

ConfChangeV2 allows joint configuration changes but will continue to
carry out configuration changes in "one phase" (i.e. without ever
entering a joint config) when this is possible.
2019-07-23 10:40:03 +02:00
88f5561733 raft: use ConfChangeSingle internally 2019-07-23 10:39:48 +02:00
10680744b9 raft: introduce protos for joint quorums 2019-07-23 10:39:48 +02:00
f856ce963b Dockerfile: rebase etcd image to debian 2019-07-22 18:58:16 -07:00
fe86a786a4 Merge pull request #10904 from yuzeming/fixed-10899
integration: fix a data race about `i` and `tt` in TestV3WatchFromCur…
2019-07-19 17:51:21 -07:00
39680c381e Merge pull request #10908 from tbg/log
etcdserver: fix createConfChangeEnts
2019-07-19 17:45:27 -07:00
9a69aa17c8 Merge pull request #10614 from jmillikin-stripe/cert-allowed-san-flags
etcdmain, pkg: Support peer and client TLS auth based on SAN fields.
2019-07-19 12:02:28 -07:00
eb4d9b640a etcdserver: fix createConfChangeEnts
It created a sequence of conf changes that could intermittently cause an
empty set of voters, which Raft asserts against as of #10889.

This fixes TestCtlV2BackupSnapshot and TestCtlV2BackupV3Snapshot, see:
https://github.com/etcd-io/etcd/issues/10700#issuecomment-512358126
2019-07-19 17:13:08 +02:00
3c5e2f51e4 Merge pull request #10892 from tbg/rawnode-everywhere-attempt3
raft: use RawNode for node's event loop; clean up bootstrap
2019-07-19 14:30:08 +02:00
caa48bcc3d raft: remove TestNodeBoundedLogGrowthWithPartition
It has a data race between the test's call to `reduceUncommittedSize`
and a corresponding call during Ready handling in `(*node).run()`.
The corresponding RawNode test still verifies the functionality, so
instead of fixing the test we can remove it.
2019-07-19 12:35:14 +02:00
500af91653 raft: restore ability to bootstrap RawNode
We are worried about breaking backwards compatibility for any
application out there that may have relied on the old behavior. Their
RawNode invocation would have been broken by the removal of the peers
argument so it would not have changed silently; an associated comment
tells callers how to fix it.
2019-07-19 10:02:02 +02:00
c9491d7861 raft: clean up bootstrap
This is the first (maybe not last) step in cleaning up the bootstrap
code around StartNode.

Initializing a Raft group for the first time is awkward, since a
configuration has to be pulled from thin air. The way this is solved
today is unclean: The app is supposed to pass peers to StartNode(),
we add configuration changes for them to the log, immediately pretend
that they are applied, but actually leave them unapplied (to give the
app a chance to observe them, though if the app did decide to not apply
them things would really go off the rails), and then return control to
the app. The app will then process the initial Readys and as a result
the configuration will be persisted to disk; restarts of the node then
use RestartNode which doesn't take any peers.

The code that did this lived awkwardly in two places fairly deep down
the callstack, though it was really only necessary in StartNode(). This
commit refactors things to make this more obvious: only StartNode does
this dance now. In particular, RawNode does not support this at all any
more; it expects the app to set up its Storage correctly.

Future work may provide helpers to make this "preseeding" of the Storage
more user-friendly. It isn't entirely straightforward to do so since
the Storage interface doesn't provide the right accessors for this
purpose. Briefly speaking, we want to make sure that a non-bootstrapped
node can never catch up via the log so that we can implicitly use one
of the "skipped" log entries to represent the configuration change into
the bootstrap configuration. This is an invasive change that affects
all consumers of raft, and it is of lower urgency since the code (post
this commit) already encapsulates the complexity sufficiently.
2019-07-19 10:02:02 +02:00
c62b7048b5 raft: use RawNode for node's event loop
It has always bugged me that any new feature essentially needed to be
tested twice due to the two ways in which apps can use raft (`*node` and
`*RawNode`). Due to upcoming testing work for joint consensus, now is a
good time to rectify this somewhat.

This commit removes most logic from `(*node).run` and uses `*RawNode`
internally. This simplifies the logic and also lead (via debugging) to
some insight on how the semantics of the approaches differ, which is now
documented in the comments.
2019-07-19 09:59:59 +02:00
5f21b557e5 integration: fix a data race about i and tt in TestV3WatchFromCurrentRevision
don't references to loop variables from within go anonymous function

Fixes etcd-io#10899
2019-07-19 00:48:49 -07:00
233be58056 Merge pull request #10839 from needkane/pr
raft: update log info and annotation
2019-07-18 23:26:44 -07:00
62f4fb3c5e Merge pull request #10903 from tbg/inflights
raft: return non-nil Inflights in raft status
2019-07-18 17:50:28 +02:00
6b0322549f raft: replace StatusWithoutProgress with BasicStatus
Now that a Config is also added to the full status, the old name
did not convey the intention, which was to get a Status without
an associated allocation.
2019-07-18 16:28:37 +02:00
f498392ca7 Merge pull request #10898 from tbg/dep
scripts: fail explicitly in updatedep.sh when gopath.proto exists
2019-07-17 16:47:51 -07:00
7d2e57216a Merge pull request #10900 from yuzeming/master
integration: add WaitGroup to TestV3WatchCurrentPutOverlap
2019-07-17 16:46:25 -07:00
yzm
3737979532 move wg.Wait() after loop 2019-07-17 16:31:48 -07:00
7ce934cbec raft: return active config in Status
This is useful for debug purposes, and more so once we support joint
quorums.
2019-07-17 14:29:45 +02:00
26a1e60eab raft: return non-nil Inflights in raft status
Recent refactoring to the String() method of `Progress` hit an NPE
because we return nil Inflights as part of the Raft status. Just
fix this at the source and properly populate the Raft status instead
of teaching String() to ignore nil. A real Progress always has a
non-nil Inflights.
2019-07-17 12:53:28 +02:00
yzm
d87bd2c87c integration: add WaitGroup to prevent calling t.Fatalf after TestV3WatchCurrentPutOverlap function return
It could cause a panic when it happens

Fixes #10886
2019-07-16 10:25:35 -07:00
9fba06ba3b Merge pull request #10889 from tbg/joint-conf-change-logic
raft: internally support joint consensus
2019-07-16 16:02:16 +02:00
aa158f36b9 raft: internally support joint consensus
This commit introduces machinery to safely apply joint consensus
configuration changes to Raft.

The main contribution is the new package, `confchange`, which offers
the primitives `Simple`, `EnterJoint`, and `LeaveJoint`.

The first two take a list of configuration changes. `Simple` only
declares success if these configuration changes (applied atomically)
change the set of voters by at most one (i.e. it's fine to add or
remove any number of learners, but change only one voter). `EnterJoint`
makes the configuration joint and then applies the changes to it, in
preparation of the caller returning later and transitioning out of the
joint config into the final desired configuration via `LeaveJoint()`.

This commit streamlines the conversion between voters and learners, which
is now generally allowed whenever the above conditions are upheld (i.e.
it's not possible to demote a voter and add a new voter in the context
of a Simple configuration change, but it is possible via EnterJoint).
Previously, we had the artificial restriction that a voter could not be
demoted to a learner, but had to be removed first.
Even though demoting a learner is generally less useful than promoting
a learner (the latter is used to catch up future voters), demotions
could see use in improved handling of temporary node unavailability,
where it is desired to remove voting power from a down node, but to
preserve its data should it return.

An additional change that was made in this commit is to prevent the use
of empty commit quorums, which was previously possible but for no good
reason; this:

Closes #10884.

The work left to do in a future PR is to actually expose joint
configurations to the applications using Raft. This will entail mostly
API design and the addition of suitable testing, which to be carried
out ergonomically is likely to motivate a larger refactor.

Touches #7625.
2019-07-16 15:36:04 +02:00
14625b847c scripts: have genproto.sh clean up after itself
We don't want it to leave gopath.proto around for reasons detailed in
the previous commit (messing up vgo).
2019-07-16 14:01:04 +02:00
f63984bb33 scripts: fail explicitly in updatedep.sh when gopath.proto exists
I had been dealing with these intermittent failures for a while and
finally figured out why. The real solution is making genproto.sh less
ugly but that won't happen for a while.
2019-07-16 13:54:09 +02:00
5a734e79f5 Merge pull request #10891 from changkun/raft
raft/rafttest: simulate async send in node test
2019-07-15 11:49:06 -07:00
856097181b raft/rafttest: simulate async send in node test
In order to cover message can well be received when a node is paused, this commit sends message async using goroutine and random sleep. This change makes recvms is possible to cache message during node.pause is triggered.
2019-07-13 16:22:33 +02:00
e56e8471ec Merge pull request #10888 from tbg/test-ski
test: allow failures in linux-amd64-integration-4-cpu
2019-07-11 09:24:06 -07:00
b7327b1cd8 test: allow failures in linux-amd64-integration-4-cpu
This run *should* certainly pass, but it's consistently the one that
fails with a regularity that essentially blocks the CI pipeline.

Someone needs to take a look at #10700, but in the meantime, the show
must go on.
2019-07-11 16:40:54 +02:00
b2274efee0 Merge pull request #10864 from tbg/learner-snap
raft: allow voter to become learner through snapshot
2019-07-11 15:48:09 +02:00
95f3138b5f tests: Use more deterministic error message in TestEtcdPeerNameAuth 2019-07-10 14:24:20 +09:00
c6686734b1 tests: Use 'localhost' to match SAN of integration/fixtures/server.crt 2019-07-10 13:33:14 +09:00
91472797ff pkg: Remove stray printfs 2019-07-10 13:33:14 +09:00
5824421f8b etcdman, pkg: Rename new flags to 'hostname' 2019-07-10 09:30:02 +09:00
9a53601a18 etcdmain, pkg: Support peer and client TLS auth based on SAN fields.
Etcd currently supports validating peers based on their TLS certificate's
CN field. The current best practice for creation and validation of TLS
certs is to use the Subject Alternative Name (SAN) fields instead, so that
a certificate might be issued with a unique CN and its logical
identities in the SANs.

This commit extends the peer validation logic to use Go's
`(*"crypto/x509".Certificate).ValidateHostname` function for name
validation, which allows SANs to be used for peer access control.

In addition, it allows name validation to be enabled on clients as well.
This is used when running Etcd behind an authenticating proxy, or as
an internal component in a larger system (like a Kubernetes master).
2019-07-10 09:30:02 +09:00
eb7dd97135 Merge pull request #10882 from tbg/pr-string
raft: optimize string representation of Progress
2019-07-09 16:27:35 +02:00
95024fa3cc raft: optimize string representation of Progress
Make it less verbose by omitting the values for the steady state.
Also rearrange the order so that information that is typically more
relevant is printed first.
2019-07-09 11:22:37 +02:00
0af16979f8 Merge pull request #10879 from lzhfromustc/master
etcdserver: modify a read operation to avoid potential race
2019-07-08 14:48:43 -07:00
d35f6647bc Use newbe instead of s.be to avoid potential race
`s.cluster.SetBackend(s.be)` is not in critical section. Using `newbe` instead of `s.be` can avoid potential data race.
2019-07-08 14:24:52 -07:00
6f009d211f raft: allow voter to become learner through snapshot
At the time of writing, we don't allow configuration changes to change
voters to learners directly, but note that a snapshot may compress
multiple changes to the configuration into one: the voter could have
been removed, then readded as a learner and the snapshot reflects both
changes. In that case, a voter receives a snapshot telling it that it is
now a learner. In fact, the node has to accept that snapshot, or it is
permanently cut off from the Raft log.

I think this just wasn't realized in the original work, but this is just
my guess since there generally is very little rationale on the various
decisions made. I also generally haven't been able to figure out whether
the decision to prevent voters from becoming learners without first
having been removed was motivated by some particular concern, or if it
just wasn't deemed necessary. I suspect it is the latter because
demoting a voter seems perfectly safe.

See https://github.com/etcd-io/etcd/pull/8751#issuecomment-342028091.
2019-07-08 09:32:24 +02:00
48f5bb6d28 Merge pull request #10865 from tbg/multi-conf-change
raft: centralize configuration change application
2019-07-03 21:57:57 +02:00
6697adfff8 raft/tracker: pull Voters and Learners into Config struct
This is helpful to quickly print the configuration log messages without
having to specify Voters and Learners separately.

It will also come in handy for joint quorums because it allows holding
on to voters and learners as a unit, which is useful for unit testing.
2019-07-03 21:26:42 +02:00
b171e1c78b raft: centralize configuration change application
Put all the logic related to applying a configuration change in one
place in preparation for adding joint consensus.

This inspired various TODOs.

I had to rewrite TestSnapshotSucceedViaAppResp since it was relying
on a snapshot applied to the leader, which is now prevented.
2019-07-03 21:26:42 +02:00
4f7d83a249 raft: update log info and annotation 2019-07-02 23:43:56 -04:00
1f40b6642f Merge pull request #10850 from Koprvhdix/role-remove-document-fix
Documentation: change `etcdctl role remove` to `etcdctl role delete`
2019-07-01 15:34:55 -07:00
d506962fec Merge pull request #10848 from spzala/raftthesis10831
raftdoc: fix raft thesis link
2019-06-28 12:43:32 -07:00
ecba4492f2 Merge pull request #10866 from lzhfromustc/master
clientv3: Fixed a missing block bug
2019-06-28 11:54:50 -07:00
8194aa3f03 Fixed a missing block bug
Description: w.mu is locked at line 385 and unlocked at line 396. Among 5 return statements in this function, 4 are below line 396 but there is 1 return at line 387. 
Fix: Add w.mu.Unlock() before that return at line 387.
2019-06-28 11:27:13 -07:00
c34de2aef4 Documentation: change etcdctl role remove to etcdctl role delete
This is a document error. With running `etcdctl role --help`, we can find that it should be delete, not remove.

Fixes #10849
2019-06-26 09:03:08 +08:00
655ab0ac6a raftdoc: fix raft thesis link
The current link does not work and not valid anymore per stanford support.
Replace all current refs with a link that is used by the
https://raft.github.io/

Fixes # https://github.com/etcd-io/etcd/issues/10831
2019-06-24 19:01:00 -04:00
948e276ca7 Merge pull request #10807 from tbg/extract-prs
raft: extract 'tracker' package
2019-06-21 22:50:06 +02:00
f9c2d00fb3 raft: extract 'tracker' package
Mechanically extract `progressTracker`, `Progress`, and `inflights`
to their own package named `tracker`. Add lots of comments in the
progress, and take the opportunity to rename and clarify various
fields.
2019-06-21 22:15:00 +02:00
6953ccc135 Merge pull request #10837 from tbg/ci-20m
test: s/20m/30m/g
2019-06-21 08:54:26 +08:00
362dfb4d08 test: s/20m/30m/g
Every other test build times out due to the 20 minute test timeout. I
doesn't seem like tests are actually hanging, it's more that 20 minutes
just isn't enough to run the tests any more.
2019-06-20 23:44:25 +02:00
5d30dccdaa Merge pull request #10838 from tbg/unbreak
quorum: fix vet failure
2019-06-20 23:44:09 +02:00
e262542d6d quorum: fix vet failure
This slipped in during a rename and I didn't see it in CI because of
CI flakiness and a general intransparency about which failures are
important.
2019-06-20 23:40:08 +02:00
755aab6990 Merge pull request #10779 from tbg/jointq-pr
raft: use half-populated joint quorum
2019-06-20 22:57:46 +02:00
e039629907 raft: use half-populated joint quorum
To ease a future transition into joint quorums, this commit removes the
previous "ad-hoc" majority-based quorum and vote computations with that
introduced in the `raft/quorum` package.

More specifically, the progressTracker now uses a quorum.JointConfig for
which the "second" majority quorum is always empty; in this case the
quorum behaves like the one quorum.MajorityConfig that is actually
present. Or, more briefly, this change is a no-op, but it will take the
busywork out of actually starting to make use of joint quorums in the
future.

On a side node, I suspect that this might've fixed a bug regarding the
read index though I haven't been able to explicitly come up with a
counter-example. The problem was that the acks collected for the read
index weren't taking into account membership changes, so they'd run the
danger of using acks from nodes since removed to claim that a quorum of
acks had been received. There's a chance that there isn't a
counter-example (the only guarantee extracted from the "quorum" is that
there isn't another leader, but even if there's another leader all that
matters is that that leader doesn't have a divergent history from the
stale leader in the hypothetical counter-example), but either way there
is morally a bug here that is now fixed because VoteCommitted doesn't
care about votes from members that are not voters known to the currently
active configuration.
2019-06-19 14:19:35 +02:00
0384c587eb raft: rename makeP{RS,rogressTracker} 2019-06-19 14:19:35 +02:00
3def2364e4 raft: use membership sets in progress tracking
Instead of having disjoint mappings of ID to *Progress for voters and
learners, use a map[id]struct{} for each and share a map of *Progress
among them.

This is easier to handle when joint quorums are introduced, at which
point a node may be a voting member of two quorums.
2019-06-19 14:19:35 +02:00
76c8ca5a55 quorum: introduce library for majority and joint quorums
The quorum package contains logic to reason about committed indexes as
well as vote outcomes for both majority and joint quorums. The package
is oblivious to the existence of learner replicas.

The plan is to hook this up to etcd/raft in subsequent commits.
2019-06-19 14:19:35 +02:00
9ff7628577 Merge pull request #10801 from roe85/master
DOC: Fix referencing the wrong version number.
2019-06-18 13:24:28 -07:00
53891cbf97 Merge pull request #10822 from tbg/airplane/learner-no-campaign
raft: prevent learners from becoming leader
2019-06-17 10:58:24 -07:00
e5876c6ce2 Merge pull request #10826 from yznima/pr-race
Raft HTTP: fix pause/resume race condition
2019-06-17 09:58:18 -07:00
b1812a410f Raft HTTP: fix pause/resume race condition 2019-06-17 11:45:25 -04:00
c844526002 raft: prevent learners from becoming leader
We were already taking some precautions against learners campaigning,
but there was no safeguard against an explicit call to `Campaign()`.
The newly added test also verifies that leadership transfers to
learners are ignored.
2019-06-17 09:20:45 +02:00
c27e1108f4 Doc: Fix referencing the wrong version number. 2019-06-14 14:35:34 +02:00
2c5162af5c Merge pull request #10523 from jingyih/fully_concurrent_reads
mvcc: fully concurrent read
2019-06-14 12:25:17 +08:00
55066ebdc0 mvcc: address comments 2019-06-13 18:05:50 -07:00
0de9b8abf5 Merge pull request #10815 from jingyih/fix_RLock
mvcc/backend: use RLock in test
2019-06-11 23:10:12 -07:00
2a9320e944 mvcc: add TestConcurrentReadTxAndWrite
Add TestConcurrentReadTxAndWrite which creates random reads and writes,
and ensures reads always see latest writes.
2019-06-11 17:05:41 -07:00
b873fbd127 mvcc/backend: correct RLock in test
Should use RLock instead of Lock.
2019-06-11 16:24:44 -07:00
693afd8e5e mvcc/backend: add unit test for ConcurrentReadTx
Add TestConcurrentReadTx to ensure concurrentReadTx can see all the
prior writes which are stored on the read buffer.
2019-06-10 18:30:21 -07:00
ad80752715 mvcc: add metrics dbOpenReadTxn
Expose the number of currently open read transactions in backend to
metrics endpoint.
2019-06-10 17:20:04 -07:00
d6280f9ea5 Merge pull request #10809 from jingyih/update_changelog
CHANGELOG-3.4: update from #10808
2019-06-09 20:59:43 -07:00
6906d07d1f CHANGELOG: update from PR10808 2019-06-09 20:16:13 -07:00
833620b864 Merge pull request #10808 from WIZARD-CXY/updateboltdb2
vendor: update boltdb
2019-06-09 20:08:56 -07:00
a2a077790b vendor: update boltdb 2019-06-10 10:25:59 +08:00
48d144a3de Merge pull request #10731 from WIZARD-CXY/learner_metric
etcdserver: add learner metrics
2019-06-08 22:43:03 -07:00
ea70731f53 Merge pull request #10762 from FrozenAndrey/fix#10747
etcdmain: fix ignoring of ETCD_CONFIG_FILE env variable
2019-06-07 21:32:35 -07:00
f6a9ebe579 Merge pull request #10710 from j2gg0s/refactor-lease-bench-test
lease: refactor lease's benchmark.
2019-06-07 21:32:04 -07:00
372086cca1 Merge pull request #10803 from tbg/rna
raft: make relationship between node and RawNode explicit
2019-06-07 15:43:28 -07:00
b5c6904cea Merge pull request #10802 from jpbetz/jingyih-maintainer
Add @jingyih to MAINTAINERS
2019-06-07 14:59:39 -07:00
54dcb9cf34 Add @jingyih to MAINTAINERS 2019-06-07 14:58:50 -07:00
ea0be95387 Merge pull request #10792 from spzala/triagereflink
README: provide ref for issue and PR managenet doc
2019-06-07 14:09:47 -07:00
cbb7730c26 raft: make relationship between node and RawNode explicit
This will keep them from diverging to much. In fact we should remove
some of the obvious differences that have crept in over time so that
what remains is structural. This isn't done in this commit since
it amounts to a change in the public API; we should lump this in
when we break the public API the next time.
2019-06-07 23:07:42 +02:00
805b918715 Merge pull request #10800 from mitake/curl-test-nopassword
tests/e2e: initialize UserAddOptions{} field in testV3CurlAuth()
2019-06-06 17:39:50 -07:00
7bbc536e1c tests/e2e: initialize UserAddOptions{} field in testV3CurlAuth() 2019-06-06 23:07:41 +09:00
30ca4ae1e2 Merge pull request #10798 from WIZARD-CXY/learnerCLOG
CHANGELOG: add learner metrics
2019-06-06 01:49:49 -07:00
9a73013004 Merge pull request #10797 from jingyih/lease_checkpoint_enabled_by_experimental_flag
*: enable lease checkpoint via experimental flag
2019-06-05 22:56:54 -07:00
489675644a CHANGELOG: add learner metrics 2019-06-06 10:29:57 +08:00
5af3723e28 CHANGELOG: update changelog-3.4 2019-06-05 15:45:58 -07:00
e67b9829b6 *: enable lease checkpoint via experimental flag
Primary lessor persist lease remainingTTL only if experimental flag
"--experimental-enable-lease-checkpoint" is set.
2019-06-05 15:30:03 -07:00
aa016eebf8 Merge pull request #10631 from spzala/goruntimeupdate112
*: test update for Go 1.12.5 and related changes
2019-06-05 15:28:37 -07:00
1caaa9ed4a test: test update for Go 1.12.5 and related changes
Update to Go 1.12.5 testing. Remove deprecated unused and gosimple
pacakges, and mask staticcheck 1006. Also, fix unconvert errors related
to unnecessary type conversions and following staticcheck errors:
- remove redundant return statements
- use for range instead of for select
- use time.Since instead of time.Now().Sub
- omit comparison to bool constant
- replace T.Fatal and T.Fatalf in tests with T.Error and T.Fatalf respectively because the goroutine calls T.Fatal must be called in the same goroutine as the test
- fix error strings that should not be capitalized
- use sort.Strings(...) instead of sort.Sort(sort.StringSlice(...))
- use he status code of Canceled instead of grpc.ErrClientConnClosing which is deprecated
- use use status.Errorf instead of grpc.Errorf which is deprecated

Related #10528 #10438
2019-06-05 17:02:05 -04:00
25412f9690 Merge pull request #10789 from jingyih/update_changelog_from_9540
CHANGELOG: update from cherry picks of #9540
2019-06-05 08:18:29 -07:00
336c01b8d4 README: provide ref for issue and PR managenet doc
related: https://github.com/etcd-io/etcd/pull/10668

Provide a ref to the issue and PR management doc from the README,
similar to other references we have provided in the README.
2019-06-05 10:44:04 -04:00
ea45cd61d0 Merge pull request #10788 from jingyih/add_missing_newline_EndpointHealth
ctlv3: add newline in EndpointHealth output
2019-06-05 02:19:54 -07:00
0b8727b3f3 etcdserver: add learner metrics 2019-06-05 10:51:21 +08:00
6a7ee7063c lease: refactor benchmark. 2019-06-05 10:01:01 +08:00
ceb963e008 CHANGELOG: update from cherry pick of #9540 2019-06-04 16:47:19 -07:00
17e10fe13f ctlv3: add missing newline in EndpointHealth
To make the output consistent with the output before #9540.
2019-06-04 15:52:29 -07:00
5042c2751b Merge pull request #10786 from rohitsardesai83/update_changelog3.3
CHANGELOG-3.3: add sigs.k8s.io yaml dependency
2019-06-04 09:52:53 -07:00
ee2b976254 CHANGELOG-3.3: add sigs.k8s.io yaml dependency 2019-06-04 14:13:57 +05:30
35a67024f6 Merge pull request #10781 from gyuho/vv
module: require 1.12, remove "v3" import paths
2019-06-03 11:18:07 -07:00
b40597ce46 module: require 1.12, remove "v3" import paths
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-06-03 11:15:19 -07:00
ea0f919cdc Merge pull request #10775 from jingyih/integration_member_promote_failed_cases
clientv3/integration: add member promote failure test cases
2019-06-02 20:39:00 -07:00
cdca488d8b Merge pull request #9817 from mitake/no-password
*: support creating a user without password
2019-05-31 22:41:29 -07:00
068864574a Merge pull request #10734 from spzala/securityissues
README: update handling of security vulnerabilities
2019-05-31 17:12:34 -07:00
d8e2e47de5 Merge pull request #10693 from nolouch/fix-lease
lease/lessor: recheck if exprired lease is revoked
2019-05-31 12:13:36 -07:00
ec17872c98 integration: add member promote failure test cases
Add TestMemberPromoteMemberNotLearner and
TestMemberPromoteMemberNotExist.
2019-05-31 10:52:54 -07:00
2f7121b420 Merge pull request #10772 from jingyih/revert_10526
mvcc: revert change made by #10526 and #10699
2019-05-30 15:18:31 -07:00
96a7ff0a62 CHANGELOG: describe about user with no password 2019-05-30 22:03:00 +09:00
54b09d4f87 auth: add a unit test for creating a user with no password 2019-05-30 21:59:30 +09:00
8257dfdb51 e2e: add test cases for a user without password 2019-05-30 21:59:30 +09:00
5a67dd788d *: support creating a user without password
This commit adds a feature for creating a user without password. The
purpose of the feature is reducing attack surface by configuring bad
passwords (CN based auth will be allowed for the user).

The feature can be used with `--no-password` of `etcdctl user add`
command.

Fix https://github.com/coreos/etcd/issues/9590
2019-05-30 21:59:30 +09:00
4345f74426 mvcc: revert change made by 10526
Revert #10526 and its followup #10699.
2019-05-29 17:41:33 -07:00
dc6885d73f Merge pull request #10771 from jingyih/clarify_ETCDCTL_API
doc: clarify etcdctl default API version
2019-05-29 15:32:45 -07:00
e1120a5e3e Merge pull request #10770 from xiang90/rm_a
*: Move Anthony to Emeritus Maintainers
2019-05-29 14:59:54 -07:00
a7568d63a7 doc: clarify etcdctl default API version 2019-05-29 14:48:46 -07:00
85fab97186 *: Move Anthony to Emeritus Maintainers 2019-05-29 12:45:23 -07:00
db5d1209d9 Merge pull request #10767 from jingyih/update_changelog_learner
CHANGELOG: update changelog-3.4 with learner
2019-05-29 10:45:22 -07:00
dc8a31eaf0 lease/lessor: recheck if exprired lease is revoked
Signed-off-by: nolouch <nolouch@gmail.com>
2019-05-29 14:27:19 +08:00
565e83e997 CHANGELOG: update changelog-3.4 with learner 2019-05-28 21:10:55 -07:00
23a89b0f09 Merge pull request #10755 from wrfly/patch-3
fix #10754
2019-05-28 20:50:52 -07:00
77e1c37787 Merge pull request #10730 from jingyih/learner_part3
*: support raft learner in etcd - part 3
2019-05-28 20:06:13 -07:00
3754767dbc clientv3: return getToken error when retryAuth 2019-05-29 10:15:22 +08:00
23511d21ec *: address comments 2019-05-28 18:50:13 -07:00
6bf609b96d integration: update TestMemberPromote test
Update TestMemberPromote to include both learner not-ready and learner
ready test cases.

Removed unit test TestPromoteMember, it requires underlying raft node to
be started and running. The member promote is covered by the integration
test.
2019-05-28 18:50:13 -07:00
3f94385fc6 etcdserver: update raftStatus 2019-05-28 18:50:13 -07:00
e994a4df01 etcdserver: check http StatusCode before unmarshal
Check http StatusCode. Only Unmarshal body if StatusCode is statusOK.
2019-05-28 18:50:13 -07:00
f8ad8ae4ad etcdserver: use etcdserver ErrLearnerNotReady
If learner is not ready to be promoted, use etcdserver.ErrLearnerNotReady
instead of using membership.ErrLearnerNotReady.
2019-05-28 18:50:13 -07:00
f5eaaaf440 etcdserver: forward member promote to leader 2019-05-28 18:50:10 -07:00
dfe296ac3c etcdserver: add mayPromote check 2019-05-28 18:47:03 -07:00
cca8b0d44f Doc: add learner in runtime-configuration.md 2019-05-28 18:47:03 -07:00
7a4d233bab clientv3/integration: better way to deflake test
Use ReadyNotify instead of time.Sleep to wait for server ready.
2019-05-28 18:47:03 -07:00
aa4cda2f5c etcdserver: allow 1 learner in cluster
Hard-coded the maximum number of learners to 1.
2019-05-28 18:47:03 -07:00
c438f6db27 etcdserver: check IsMemberExist before IsLearner
If member does not exist in cluster, IsLearner will panic.
2019-05-28 18:47:03 -07:00
d0c1b3fa38 etcdserver: learner return Unavailable for unsupported RPC
Make learner return code.Unavailable when the request is not supported
by learner. Client balancer will retry a different endpoint.
2019-05-28 18:47:03 -07:00
76a63f9f7d etcdserver: adjust StrictReconfigCheck
Adjust StrictReconfigCheck logic to accommodate learner members in the
cluster.
2019-05-28 18:47:03 -07:00
bdcecd1fc4 Merge pull request #10764 from jingyih/clarify_config_file_setting
*: more clarification on when server config file is provided
2019-05-28 16:23:19 -07:00
9c5426830b Merge pull request #10766 from gyuho/fix
*: reverting versioned import paths, use Go 1.12 for tests
2019-05-28 16:21:48 -07:00
9ecbf5d2d1 main_test: skip test when invoked via go test
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-05-28 16:19:11 -07:00
8ff5914404 tests: update semaphore upgrade tests
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-05-28 15:39:35 -07:00
34bd797e67 *: revert module import paths
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-05-28 15:39:35 -07:00
c8ffa36d9e scripts/genproto: bump up protoc 3.7.1
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-05-28 15:39:35 -07:00
05378f0d5d Makefile: upgrade default Go version
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-05-28 15:39:35 -07:00
75e440b105 build: fix import path
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-05-28 15:39:35 -07:00
986f16e032 CHANGELOG: remove import path change
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-05-28 15:39:35 -07:00
e3cdd3ae9c travis: fix GO111MODULE, import paths
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-05-28 15:39:30 -07:00
5e9c424f1f *: more clarification on server config file
Be more explicit in document and command line usage message that if a
config file is provided, other command line flags and environment
variables will be ignored.
2019-05-27 22:54:14 -07:00
a1ef44358d Merge pull request #10760 from jingyih/remove_you_word_from_doc
Doc: remove word you
2019-05-27 21:43:36 -07:00
11d3f74c33 Merge pull request #10744 from philips/drop-readthedocs
*: move to etcd.io for docs
2019-05-27 03:02:01 -07:00
e33c98f5ed Merge pull request #10763 from Inconnu08/master
clientv3: fix typo in test filename
2019-05-27 03:00:29 -07:00
2eaed14def clientv3: fix typo in test filename 2019-05-27 13:53:58 +06:00
14c5eaa7e1 etcdmain: improve readability
Improve readability of ETCD_CONFIG_FILE env variable parsing part
by adding comments and using flags.FlagToEnv function.

Signed-off-by: Andrey Abramov <st5pub@yandex.ru>
2019-05-26 09:54:26 +03:00
6955331901 etcdmain: fix ignoring of ETCD_CONFIG_FILE env variable
Fixes #10747

Signed-off-by: Andrey Abramov <st5pub@yandex.ru>
2019-05-25 23:54:19 +03:00
cf57fc837e Doc: remove word you
markdown_you test fails due to the appearance of word you in documents.
2019-05-24 16:06:10 -07:00
2ff2755528 Merge pull request #10750 from etcd-io/fanminshi-patch-1
readme: add etcd Emeritus section
2019-05-23 12:06:25 -07:00
a1a482a67d readme: add explanation 2019-05-22 20:58:17 -07:00
c38e965a65 Merge pull request #10683 from tbg/prs
raft: extract progress tracking into own component
2019-05-22 16:53:50 +02:00
4a42371447 readme: add etcd Emeritus section 2019-05-21 22:17:56 -07:00
416a5390c4 Merge pull request #10745 from etcd-io/fanminshi-patch-1
MAINTAINERS: remove fanmin shi
2019-05-21 22:12:06 -07:00
5dd45011d6 raft: rename prs to progressTracker 2019-05-21 16:03:36 +02:00
02b0d80234 raft: remove quorum() dependency from readOnly
This now delegates the quorum computation to r.prs, which will allow
it to generalize in a straightforward way when etcd-io/etcd#7625 is
addressed.
2019-05-21 16:03:36 +02:00
57a1b39fcd raft: avoid another call to quorum()
This particular caller just wanted to know whether it was in a single-voter
cluster configuration, which is now a question prs can answer.
2019-05-21 16:02:52 +02:00
bc828e939a raft: pull checkQuorumActive into prs
It's looking at each voter's Progress and needs to know how quorums
work, so this is the ideal new home for it.
2019-05-21 16:02:52 +02:00
a6f222e62d raft: establish an interface around vote counting
This cleans up the mechanical refactor in the last commit and will
help with etcd-io/etcd#7625 as well.
2019-05-21 16:02:52 +02:00
26eaadb1d1 raft: move votes into prs
This is purely mechanical. Cleanup deferred to the next commit.
2019-05-21 16:02:52 +02:00
a11563737c raft: use progress tracker APIs in more places
This doesn't completely eliminate access to prs.nodes, but that's not
really necessary. This commit uses the existing APIs in a few more
places where it's convenient, and also sprinkles some assertions.
2019-05-21 16:02:52 +02:00
ea82b2b758 raft: move more methods onto the progress tracker
Continues what was initiated in the last commit.
2019-05-21 16:02:52 +02:00
dbac67e7a8 raft: extract progress tracking into own component
The Progress maps contain both the active configuration and information
about the replication status. By pulling it into its own component, this
becomes easier to unit test and also clarifies the code, which will see
changes as etcd-io/etcd#7625 is addressed.

More functionality will move into `prs` in self-contained follow-up commits.
2019-05-21 16:02:52 +02:00
0cf6e1bcb8 MAINTAINERS: remove fanmin shi
I no longer have the time to maintain etcd as my career takes me to a different direction; Hence, I think it is appropriate to remove myself from the maintainer responsibility.

Working on etcd project was one of the most challenging and rewarding experiences I ever had. Thanks @xiang90 @gyuho @heyitsanthony @philips
2019-05-20 23:47:35 -07:00
c5e5240004 *: move to etcd.io for docs
Remove all readthedocs references for https://etcd.io to ensure the SEO
goes to the right place.
2019-05-20 14:32:08 -07:00
71881a423f Merge pull request #10724 from majolo/patch-1
Doc: Fix typo in revision.go
2019-05-16 11:06:52 -04:00
9a6f7d4361 README: update handling of security vulnerabilities
We may not want to suggest to contact CoreOS now. We could remove this
section but consiering the nature of the subject, discussion with the project
maintainers probably a good idea if someone doesn't find it comfortable
to report an issue right away.
2019-05-16 10:32:32 -04:00
9ab3572662 Doc: Fix typo in revision.go 2019-05-16 14:29:10 +01:00
d4cdbb1ea0 Merge pull request #10727 from jingyih/learner_part2
*: support raft learner in etcd - part 2
2019-05-15 16:41:08 -07:00
23f1d02391 *: address comments 2019-05-15 15:58:46 -07:00
90d28c0de7 clientv3/integration: deflake TestKVForLearner
Adding delay in the test for the newly started learner member to catch
up applying config change entries in raft log.
2019-05-15 13:58:28 -07:00
b23c8f3e8f clientv3/integration: fix cluster tests
Fixes TestMemberAddForLearner and TestMemberPromoteForLearner.
2019-05-15 13:58:26 -07:00
ac057951cc integration: remove unnecessary type conversion
Fixes go 'unconvert' test.
2019-05-15 13:48:54 -07:00
c836e37a83 etcdserver: remove unnecessary bool comparison
Fixes 'gosimple' test.
2019-05-15 13:48:54 -07:00
c55519b3a5 words: whitelist words to fix goword test. 2019-05-15 13:48:54 -07:00
a039f2efb8 clientv3, etcdctl: MemberPromote for learner 2019-05-15 13:48:52 -07:00
bd7f42855b integration: add TestTransferLeadershipWithLearner
Adding integration test TestTransferLeadershipWithLearner, which ensures
that TransferLeadership does not timeout due to learner is automatically
picked by leader as transferee.
2019-05-15 13:27:42 -07:00
e8dc4c5c25 integration: add TestMoveLeaderToLearnerError
Adding integration test TestMoveLeaderToLearnerError, which ensures that
leader transfer to learner member will fail.
2019-05-15 13:27:42 -07:00
44d935e90a etcdserver: exclude learner from leader transfer
1. Maintenance API MoveLeader() returns ErrBadLeaderTransferee if
transferee does not exist or is raft learner.

2. etcdserver TransferLeadership() only choose voting member as
transferee.
2019-05-15 13:27:42 -07:00
7f9479acc1 clientv3: add member promote 2019-05-15 13:27:42 -07:00
ba9fd620e8 etcdserver: support MemberPromote for learner 2019-05-15 13:27:42 -07:00
57a11eb1e1 integration: add TestKVForLearner
Adding TestKVForLearner. Also adding test utility functions for clientv3
integration tests.
2019-05-15 13:27:38 -07:00
43ed94f769 etcdserver: filter rpc request to learner
Hardcoded allowed rpc for learner node. Added filtering in grpc
interceptor to check if rpc is allowed for learner node.
2019-05-15 13:15:20 -07:00
355d0ab2a6 *: add learner field in endpoint status
Added learner field to endpoint status API.
2019-05-15 13:13:59 -07:00
42acdfcea7 Merge pull request #10668 from spzala/issuetriage
Doc: create issue and PR management guidelines
2019-05-15 10:30:36 -07:00
919b93b742 Merge pull request #10725 from jingyih/learner_part1
*: support raft learner in etcd - part 1
2019-05-14 20:35:48 -07:00
e1acf244c1 etcdserver: Add MemberAddAsLearner
Made changes to api/membership:

- Added MemberAddAsLearner
- Reverted changes to MemberAdd - removed input parameter isLearner
2019-05-14 18:18:10 -07:00
2b76200f70 *: add MemberAddAsLearner to clientv3 Cluster API
Made changes to Clientv3 Cluster API:

- Added MemberAddAsLearner.
- Reverted changes to MemberAdd - removed input parameter isLearner.
2019-05-14 16:56:44 -07:00
1e38de5b9d etcdctl: add learner field in member list output 2019-05-14 13:10:22 -07:00
e4296bbad9 tests/e2e: Add test for learner member add
Added an e2e test to exercise "etcdctl member add --learner".
2019-05-14 13:10:22 -07:00
a67d934410 etcdctl: support MemberAdd for learner
Added support for "etcdctl member add --learner".
2019-05-14 13:10:22 -07:00
fc14608cb7 clientv3: support MemberAdd for learner
Added IsLearner flag to clientv3 MemberAdd API.
2019-05-14 13:10:22 -07:00
604bc04f70 etcdserver: support MemberAdd for learner
Added IsLearner field to etcdserver internal Member type. Routed
learner MemberAdd request from server API to raft. Apply learner
MemberAdd result to server after the request is passed through Raft.
2019-05-14 13:10:22 -07:00
a0d3c4d641 *: fix compilation after API change
Fixed compilation erros after API change for learner.
2019-05-14 13:10:22 -07:00
7dc5451fae *: Change etcdserver API to support raft learner
- Added isLearner flag to MemberAddRequest in Cluster API.
- Added isLearner field to StatusResponse in Maintenance API.
- Added MemberPromote rpc to Cluster API.
2019-05-14 13:09:17 -07:00
a44a281ac3 CHANGELOG: remove mailing list reference
Recommendations for the production were bumped up recently. The related
ML email ref is old one so we should not provide the link.

Fixes #10669
2019-05-11 09:24:41 -04:00
d8c89021d7 Merge pull request #10689 from joshcc3/master
raft: cleanup wal directory if creation fails
2019-05-10 15:09:16 -07:00
a0c889d14b wal: add a test for wal cleanup, improve comments
To add test coverage of wal cleanup.
2019-05-10 22:36:26 +01:00
1411c585be etcdserver: fix typo in log message
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
2019-05-10 09:54:00 -04:00
a73fb85c0c mvcc: fully concurrent read 2019-05-08 19:11:23 -07:00
886d30d223 Documentation: provide better user experience with autorefreshing grafana dashboard 2019-05-08 06:58:28 -04:00
f7f7e9c762 wal: Improve cleanup for robustness and debuggability
Rename wal with '.suffix.<timestamp>' instead of delete it and call cleanup when perr in a 'defer'ed statement.
2019-05-07 21:38:40 +01:00
51035bfd84 wal: cleanup wal directory if creation fails
delete <data-dir>/member/wal if any operation after the rename in
wal.Create fails to avoid reading an inconsistent WAL on restart.

Fixes #10688
2019-05-04 01:58:57 +01:00
39bbc66b46 Doc: create issue and PR management guidelines
I would like to propose a formal guide for issue triage and PR management.
This should help us keep open issues and PRs under a desirable numbers.
For example, keep issues under 100. These guidelines should specially help
manage and close issues and PRs that are inactive in a timely manner.
2019-05-03 17:03:17 -04:00
caee28a88e Merge pull request #10666 from mkumatag/fix_tests
Fix tests for latest golang
2019-05-03 11:18:58 -07:00
4d6ebafa54 Merge pull request #10704 from wilbeibi/master
raft: update raft paper link (previous link deprecated)
2019-05-03 09:34:02 -07:00
d68f60e9a0 raft: update raft paper link (previous link deprecated) 2019-05-03 08:50:16 -07:00
616592d9ba CHANGELOG: update
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-05-02 10:21:37 -07:00
e9f310af28 Merge pull request #10687 from rohitsardesai83/replace_ghodss_yaml_with_sigsk8sio_yaml
etcd: Replace yaml dependency `github.com/ghodss/yaml` with `sigs.k8s.io/yaml`
2019-05-02 09:47:33 -07:00
42a7ea6d33 etcd: Replace ghodss/yaml with sigs.k8s.io/yaml
To remove the dependency on ghodss/yaml. Replaced this dependency with sigs.k8s.io/yaml.
This wil help to remove the ghodss/yaml dependency from main kubernetes repository.

xref: https://github.com/kubernetes/kubernetes/issues/77024
2019-05-02 12:34:36 +05:30
e899023f3f Merge pull request #10640 from shrajfr12/gomodulecompat
Fix module path to have the major version to comply with go modules specification.
2019-05-01 22:46:03 -07:00
8a86a60fbc Merge pull request #10699 from jingyih/protect_tree_clone_with_write_lock
mvcc: protect tree clone with write lock
2019-05-01 13:25:31 -07:00
88922b0d08 mvcc: protect tree clone with write lock 2019-05-01 12:34:09 -07:00
fc6936863a Merge pull request #10582 from johncming/empty_update
clientv3/naming: ignore empty update.
2019-04-30 14:21:56 -07:00
1bd02b2053 Merge pull request #10595 from johncming/locking
clientv3: modify lock type.
2019-04-30 14:19:02 -07:00
e3f37534e1 Merge pull request #10684 from nvanbenschoten/nvanbenschoten/appendAndCopy
raft: Avoid multiple allocs when merging stable and unstable log
2019-04-30 11:51:32 -07:00
0bc219a91e Merge pull request #10679 from nvanbenschoten/nvanbenschoten/commitAlloc
raft: Avoid allocation when boxing slice in maybeCommit
2019-04-30 10:55:16 -07:00
efcc1088f0 Merge pull request #10680 from nvanbenschoten/nvanbenschoten/appendAlloc
raft: avoid allocation of Raft entry due to logging
2019-04-27 18:14:20 -07:00
41a0d67b30 Documentation: add links to blog post on benchmarking disks with fio
The documentation mentions fio as a tool to benchmark disks to assess
whether they are fast enough for etcd. But doing that is far from trivial,
because fio is very flexible and complex to use, and the user must make sure
that the workload fio generates mirrors the I/O workload of its etcd cluster
closely enough. This commit adds links to a blog post with an example of how
to do that.
2019-04-27 13:13:11 -04:00
9150bf52d6 go modules: Fix module path version to include version number 2019-04-26 15:29:50 -07:00
b5593de806 raft: Avoid multiple allocs when merging stable and unstable log
Appending to an empty slice twice could (and often did) result in
multiple allocations. This was wasteful. We can avoid this by performing
a single allocation with the correct size and copying into it.
2019-04-26 14:57:51 -04:00
24f35a9861 raft: avoid allocation of Raft entry due to logging
`raftpb.Entry.String` takes a pointer receiver, so calling it
on a loop variable was causing the variable to escape. Removing
the `.String()` call was enough to avoid the allocation, but
this also avoids a memory copy and prevents similar bugs.

This was responsible for 11.63% of total allocations in an
experiment with https://github.com/nvanbenschoten/raft-toy.
2019-04-26 14:56:31 -04:00
208b8a349c raft: Avoid allocation when boxing slice in maybeCommit
By boxing a heap-allocated slice header instead of the slice
header on the stack, we can avoid an allocation when passing
through the sort.Interface interface.

This was responsible for 26.61% of total allocations in an
experiment with https://github.com/nvanbenschoten/raft-toy.
2019-04-26 00:10:45 -04:00
cca0d5c1be Merge pull request #10672 from nolouch/fix-probing-log
api/rafthttp: fix the probing status log print
2019-04-24 23:05:23 -07:00
8146e1ebdf CHANGELOG-3.4: add json-iterator/go change
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-04-23 15:00:59 -07:00
1697c06df9 Merge pull request #10667 from dims/replace-ugorji-with-json-iterator
Replace ugorji/codec with json-iterator/go
2019-04-23 14:52:41 -07:00
3655a4b228 vendor: Run scripts/updatedeps.sh to cleanup unused code 2019-04-23 16:54:44 -04:00
daee668b75 client: Switch to case sensitive unmarshalling to be compatible with ugorji
Using lessons learned from k8s changes:
https://github.com/kubernetes/kubernetes/pull/65034

Change-Id: Ia17a8f94ae6ed00c5af2595c2b48d3c9a0344427
2019-04-23 16:54:44 -04:00
290ac75869 *: update bill-of-materials
Change-Id: Ibfa24e28cacd58388f7606a945c8ac35e1c34580
2019-04-23 16:54:44 -04:00
6de29e08aa vendor: Add json-iterator and its dependencies
Change-Id: I1f3fc00f95efadd6da9b4c248156f8460ae0ff97
2019-04-23 16:54:44 -04:00
86e3481ba2 scripts: Remove generated code and script
Change-Id: Iac4601443bcad71920fd96b97bfe21c16116577a
2019-04-23 16:54:44 -04:00
90108a2e61 client: Replace ugorji/codec with json-iterator/go
We need to use the stdlib-compatible one that is case-sensitive, etc

Change-Id: Id0df573a70e09967ac7d8c0a63d99d6a49ce82f1
2019-04-23 16:54:44 -04:00
9dfde8a4fb Merge pull request #10664 from jingyih/update_changelog_3p4_from_pr10646
CHANGELOG: update CHANGELOG-3.4 from #10646
2019-04-23 11:35:58 -07:00
decc0d5f43 api/rafthttp: fix the probing status print
Signed-off-by: nolouch <nolouch@gmail.com>
2019-04-23 19:51:34 +08:00
867b45d865 client: Fix tests for latest golang 2019-04-22 08:14:10 -05:00
216808eab5 Merge pull request #10663 from gyuho/log
etcdserver: improve heartbeat send failures logging
2019-04-22 13:37:40 +08:00
b11223caf5 CHANGELOG: update CHANGELOG-3.4 from #10646 2019-04-19 21:23:49 -07:00
943d6887c4 Merge pull request #10646 from yingnanzhang666/metrics_db_compaction
fix issue that metric db_compaction_total_duration_milliseconds is always 0
2019-04-19 21:10:41 -07:00
877f11bed8 etcdserver: improve heartbeat send failures logging
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-04-19 10:58:17 -07:00
85594ae99c Merge pull request #10661 from jpbetz/backport-changelog
CHANGELOG: update changelogs for backport of PR #10646
2019-04-18 14:10:17 -07:00
93479fdecd CHANGELOG: update changelogs for backport of PR #10646 2019-04-18 09:39:22 -07:00
cd7ffbe227 Merge pull request #10654 from CydeWeys/patch-1
embed: Fix HTTPs -> HTTPS in error message
2019-04-17 15:14:21 -04:00
b3dd3d3856 embed: Fix HTTPs -> HTTPS in error message 2019-04-17 09:38:53 -04:00
c5cb5509ea mvcc: fix db_compaction_total_duration_milliseconds 2019-04-16 10:32:21 +08:00
f29b1ada19 Merge pull request #10635 from jingyih/add_learner_field_to_progress_stringer
raft: add learner field to progress stringer
2019-04-11 19:19:13 -07:00
30034e5ff5 raft: add learner field to progress stringer 2019-04-11 18:15:03 -07:00
c7c6894527 Merge pull request #10551 from johncming/lbname
clientv3/balancer: change balancer name to builder name.
2019-04-10 16:16:51 -07:00
d69090002a Merge pull request #10604 from shreyas-s-rao/fix/open-wal-return-with-logger
wal: include logger in WAL returned by openAtIndex
2019-04-10 16:15:13 -07:00
9d62477c79 CHANGELOG: add "Change gRPC proxy to expose etcd server endpoint /metrics" PR
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
2019-04-10 16:09:32 -04:00
9915d02022 *: Change gRPC proxy to expose etcd server endpoint /metrics
This PR resolves an issue where the `/metrics` endpoints exposed by the proxy were not returning metrics of the etcd members servers but of the proxy itself.

Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
2019-04-10 16:09:32 -04:00
f17c038fc4 etcdserver: api/v2v3: add initial tests
Add a bunch of tests on fundamental operation of Create/Set/Delete.

Context: I want to use this package to run the discovery service against
the v3 storage backend. The limited functionality already implemented
should be sufficient to do this.
https://github.com/coreos/discovery.etcd.io/issues/52
2019-04-10 19:17:25 +00:00
cc08c1bd2e clientv3/integration/leasing_test.go: Fix t.Fatalf error message
Signed-off-by: zhoulin xie <zhoulin.xie@daocloud.io>
2019-04-10 13:19:50 -04:00
914e5edb00 wal: include logger in WAL returned by openAtIndex
Signed-off-by: Shreyas Rao <shreyas.sriganesh.rao@sap.com>
2019-04-02 13:09:10 +05:30
a621d807f0 documentation: initial metadata additions for website generation (#10596)
Signed-off-by: lucperkins <lucperkins@gmail.com>
2019-04-01 13:57:24 -07:00
9b5c468dc6 clientv3: modify lock type. 2019-03-29 21:02:13 +08:00
be39aa5bb2 Documentation: add Python client for etcd v3 2019-03-29 06:09:38 -04:00
952b9e75c6 Merge pull request #10590 from jingyih/fix_readIndex_for_learner
raft: leader respond to learner read index message
2019-03-28 16:51:35 -07:00
5088d70d69 raft: leader response to learner MsgReadIndex
Leader should check message sender after receiving MsgReadIndex, even
when raft quorum is 1. The message could be sent from learner node, and
leader should respond.
2019-03-28 16:14:32 -07:00
a645e27486 Merge pull request #10591 from purpleidea/bug/fatal-corruption
etcdserver: Use panic instead of fatal on no space left error
2019-03-28 15:19:33 -07:00
d5e94b1c0d Merge pull request #10557 from johncming/add_test
contrib/raftexample: add test for httpKVAPI.
2019-03-28 11:39:45 -07:00
368f70a37c etcdserver: Use panic instead of fatal on no space left error
When using the embed package to embed etcd, sometimes the storage prefix
being used might be full. In this case, this code path triggers, causing
an: `etcdserver: create wal error: no space left on device` error, which
causes a fatal. A fatal differs from a panic in that it also calls
os.Exit(1). In this situation, the calling program that embeds the etcd
server will be abruptly killed, which prevents it from cleaning up
safely, and giving a proper error message. Depending on what the calling
program is, this can cause corruption and data loss.

This patch switches the fatal to a panic. Ideally this would be a
regular error which would get propagated upwards to the StartEtcd
command, but in the meantime at least this can be caught with recover().

This fixes the most common fatal that I've experienced, but there are
surely more that need looking into. If possible, the errors should be
threaded down into the code path so that embedding etcd can be more
robust.

Fixes: https://github.com/etcd-io/etcd/issues/10588
2019-03-27 15:24:33 -04:00
9c2b88d783 Merge pull request #10583 from johncming/correct_err
etcdmain: use same error.
2019-03-26 15:03:38 -04:00
56f1bce161 raft/doc: clarify the case of out of date term
Clarify the doc.

Fixes #10491
2019-03-26 14:00:24 -04:00
11272ed320 etcdmain: use same error. 2019-03-26 11:21:47 +08:00
cb39c97b22 clientv3/naming: ignore empty update. 2019-03-25 10:53:24 +08:00
7a5acb4a43 Merge pull request #10574 from johncming/rename_err
raft: more precise that rename res to err.
2019-03-22 11:35:51 -07:00
92d5d19ce9 raft: more precise that rename res to err. 2019-03-22 10:18:00 +08:00
41f7142ff9 doc: fix document example error 2019-03-21 08:21:03 -04:00
122744c660 Documentation: update force-new-cluster flag usage for v3
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
2019-03-20 18:06:42 -04:00
77d4b742cd Merge pull request #10562 from johncming/naked_return
contrib/raftexample: fix naked return.
2019-03-19 21:43:26 -07:00
affaa36190 bill-of-materials: fix test failure
Re-generated bill-of-materials.json.
2019-03-19 22:07:00 -04:00
4452d4be22 contrib/raftexample: fix naked return. 2019-03-20 09:52:12 +08:00
09d0844379 Merge pull request #10548 from jingyih/add_TestMemberAddWithExistingURLs
clientv3/integration: Add TestMemberAddWithExistingURLs
2019-03-19 15:23:15 -07:00
2d9b32dc3d Merge pull request #10542 from johncming/usecancel
integration: use cancel instead of close.
2019-03-19 14:19:32 -07:00
ec1cbce10e Merge pull request #10541 from johncming/embed-comment
embed: Modify the comments to be more precise.
2019-03-19 14:18:44 -07:00
6df40e1c70 Merge pull request #10550 from johncming/unused
clientv3: clean up unused code.
2019-03-19 14:17:41 -07:00
b1e8218072 Merge pull request #10553 from damnever/damnever-patch-1
doc: fix `member add` usage
2019-03-18 20:47:55 -07:00
51cdbb6d1a contrib/raftexample: add test for struct httpKVAPI. 2019-03-19 11:12:47 +08:00
9bd86a647f clientv3: Add TestMemberAddWithExistingURLs
TestMemberAddWithExistingURLs ensures adding a new member with URLs
already being used in the cluster will not succeed.
2019-03-18 12:48:44 -07:00
1d764511f6 doc: fix member add usage 2019-03-18 14:47:41 +08:00
ddff08ffad clientv3/balancer: change balancer name to builder name. 2019-03-18 11:05:22 +08:00
662fd55084 clientv3: clean up unused code. 2019-03-18 10:34:41 +08:00
97509833e2 integration: use cancel instead of close. 2019-03-14 11:14:43 +08:00
874532c2da embed: Modify the comments to be more precise. 2019-03-14 10:59:52 +08:00
e1ca3b4434 Merge pull request #10531 from JoeWrightss/patch-3
Fix some variable spelling errors
2019-03-12 12:09:09 -07:00
4478993fbc Merge pull request #10516 from shreyas-s-rao/wal-verify-func
wal: add Verify function to perform corruption check on wal contents
2019-03-12 12:06:36 -07:00
bb3eb8fea9 wal: Add test for Verify
Signed-off-by: Shreyas Rao <shreyas.sriganesh.rao@sap.com>
2019-03-12 22:25:25 +05:30
3d6862fe0d wal: add Verify function to perform corruption check on wal contents
Signed-off-by: Shreyas Rao <shreyas.sriganesh.rao@sap.com>
2019-03-12 22:25:25 +05:30
dc50416157 Merge pull request #10534 from johncming/close_reader
close http request body after read it.
2019-03-12 08:25:32 -07:00
e46af034df bugfix: adjust or add close request body.
affected modules:
- lease/leasehttp
- contrib/raftexample
2019-03-12 22:41:55 +08:00
b7ad8c6741 Merge pull request #10535 from johncming/fix_close_pos
etcdserver/api/rafthttp: fix the location of close http body.
2019-03-11 09:17:13 -07:00
bd41f74168 etcdserver/api/rafthttp: fix the location of close http body. 2019-03-11 22:20:38 +08:00
939b4f8599 clientv3/balancer/grpc1.7-health.go: Fix variable spelling error
Signed-off-by: zhoulin xie <zhoulin.xie@daocloud.io>
2019-03-10 01:11:02 +08:00
6da17cda18 Merge pull request #10515 from Prototik/fix-sd-notify
etcdmain: fix sd_notify for restricted environments
2019-03-08 15:34:47 -08:00
4dc9d8b058 Merge pull request #10503 from spzala/v3argorder10431
clientV3: fix behavior of WithPrefix and WithFromKey functions
2019-03-08 11:59:17 -08:00
e80d1745be Merge pull request #10420 from spzala/watch10340
clientV3watch: do not return ctx canceled when Close watch
2019-03-08 11:57:44 -08:00
81b71da66d Merge pull request #10527 from etcd-io/gyuho-patch-1
docs: update PyYAML to 4.2b1
2019-03-07 11:17:20 -08:00
5ed26c7c48 docs: update PyYAML to 4.2b1
https://github.com/etcd-io/etcd/network/alert/docs/requirements.txt/pyyaml/open
2019-03-07 11:14:10 -08:00
949bcbddbe Merge pull request #10526 from jingyih/improve_mvcc_index_concurrency
mvcc: release lock early when traversing index
2019-03-06 15:48:48 -08:00
93732df3ef mvcc: release lock early when traversing index
Make a copy-on-write clone of index tree when traversing. So that lock
can be released right after the clone to improve backend concurrency.
2019-03-06 14:26:17 -08:00
4b69cfc56b Merge pull request #10492 from nolouch/fix-lessor
lease: fix deadlock with Renew lease when the checkpointor is set
2019-03-06 10:23:57 -08:00
b08e6db0e8 Merge pull request #10506 from jingyih/improve_etcd_backend_readability
mvcc/backend: rename Lock() to RLock() in ReadTx interface
2019-03-05 14:54:04 -08:00
1c19f126cb mvcc/backend: rename ReadTx Lock() to RLock()
For better code readability, renaming Lock() to RLock() in ReadTx
interface.
2019-03-05 13:53:27 -08:00
fbf732d3dc etcdmain: fix sd_notify for restricted environments
Remove call to dumb IsRunningSystemd() as it doesn't check anything
2019-03-02 23:44:39 +07:00
2c69559819 Merge pull request #10513 from jutley/txn-newline-documentation
etcdctl: Update README to clarify newline syntax in TXN
2019-03-02 15:23:31 +08:00
a532b60c7e etcdctl: Update README to clarify newline syntax in TXN
Add documentation to clarify that when writing TXN commands, multi-line values should be written using "\n" and not a literal newline (as in other commands).

Fixes #10169
2019-03-01 14:04:48 -08:00
b25edb62cc clientV3watch: Watch Close should close successfully
Closing of watch by client will cancel the watch grpc stream and
can produce a context canceled error. However, since client
simply wanted to close the watcher the error can create confusion
that something went wrong instead of a successful close. Ensure
that Close do not return error.

Fixed #10340
2019-02-28 20:43:20 -05:00
a943ad0ee4 client/keys_bench_test.go: Fix some misspells
Signed-off-by: zhoulin xie <zhoulin.xie@daocloud.io>
2019-02-28 14:36:06 -05:00
5694f3e4f5 Merge pull request #10481 from hnlq715/master
client: upgrade github.com/ugorji/go to v1.1.2
2019-02-28 21:15:33 +08:00
8782bbae65 clientV3: fix behavior of WithPrefix and WithFromKey functions
The use of WithPrefix() and WithFromKey() together is not supported. The
client doesn't respect this behavior currently.

Fixes #10431
2019-02-27 09:23:01 -05:00
17de9bd526 Merge pull request #10501 from datuanmac/replacing_http_by_https
doc: Replacing 'HTTP' by 'HTTPS' for securing links
2019-02-27 14:08:24 +08:00
32389b1876 doc: Replacing 'HTTP' by 'HTTPS' for securing links
Currently, when we access the URL https://www.grpc.io, it is redirected to https://www.grpc.io automatically.
So this commit aims to replace **HTTP** to **HTTPs** for security.
2019-02-27 10:15:22 +07:00
918f0414dd Merge pull request #10495 from gyuho/zap-logger
*: define default zap log configuration
2019-02-26 14:18:24 -08:00
a7e3bd06b2 Merge pull request #10496 from trung/raft-example
raftexample: added build instruction  and minor refactoring
2019-02-26 20:45:24 +08:00
6543273666 client: generate new keys and remove yynn2 = 0 2019-02-25 12:07:40 +08:00
1adc288223 vendor: update ugorji to v1.1.2 2019-02-25 12:05:35 +08:00
5effa154b4 auth/simple_token.go: fix plog.Panicf error message
Signed-off-by: zhoulin xie <zhoulin.xie@daocloud.io>
2019-02-24 19:34:02 -05:00
e20b9d9e16 lease: fix deadlock with renew lease when the checkpointor is set
Signed-off-by: nolouch <nolouch@gmail.com>
2019-02-24 19:53:09 +08:00
5b4ff6c6d5 raftexample: update readme 2019-02-21 16:56:52 -05:00
74d6df2bd6 raftexample: added build instruction and minor refactoring 2019-02-21 15:00:38 -05:00
dca0dec382 integration: use default log configuration
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-02-21 11:00:01 -08:00
4f46b65748 clientv3: use default info level log configuration
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-02-21 10:57:38 -08:00
8d1a62e7ef *: use default log configuration for server
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-02-21 10:57:26 -08:00
52391e3be7 pkg/logutil: define default zap.Config
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-02-21 10:56:53 -08:00
8c228d692b Merge pull request #10473 from haroldHT/master
benchmark: fix install docs
2019-02-19 13:27:55 -08:00
e77069fd2e Merge pull request #10486 from gyuho/vendor
vendor: fix vendor go mod
2019-02-19 09:29:05 -08:00
a151edc8c2 vendor: fix vendor go mod
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-02-19 08:48:25 -08:00
bf9444b32d Merge pull request #10378 from johncming/net-partition
clientv3/integration: add timeout case.
2019-02-19 18:36:44 +08:00
a1fb18a9fc benchmark: fix install docs 2019-02-18 18:15:40 +08:00
94b782e7c9 clientv3/integration: add timeout case. 2019-02-18 09:38:49 +08:00
784daa0498 Merge pull request #10476 from gyuho/client-log
clientv3: clarify retry interceptor logging
2019-02-15 10:17:05 -08:00
5877763990 tests/e2e: fix "authLeaseTestLeaseRevoke"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-02-15 09:39:03 -08:00
6af8ce6c60 clientv3: clarify retry interceptor logging
Log only when it errors + some clarification

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-02-15 08:48:37 -08:00
4cd0bf8ea8 Merge pull request #10444 from WIZARD-CXY/nnboltdb
*: add flag to let etcd use the new boltdb freelistType feature
2019-02-14 13:16:56 +08:00
e6c6d8492e *: add flag to let etcd use the new boltdb freelistType feature 2019-02-14 11:07:08 +08:00
24fc2a983a Merge pull request #10465 from hpandeycodeit/docfix_10462
Fixed --strict-reconfig-check#10462
2019-02-12 08:16:53 +08:00
6757a568e0 Documentation: Fixed --strict-reconfig-check#10462 2019-02-11 14:39:11 -08:00
3546c4868c Merge pull request #10445 from spzala/fromkey9833
clientv3: fix WithFromKey
2019-02-07 14:50:13 -08:00
deff5588ff Merge pull request #10457 from mkumatag/limit_ciphersuite
pkg/transport: Limit InvalidCipherSuites to TLS12
2019-02-07 13:15:32 -08:00
0f58292ca5 CHANGELOG-3.3: fix typo in Go version
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-02-07 12:07:59 -08:00
68835bddd0 CHANGELOG-3.3: add v3.3.12
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-02-07 12:07:20 -08:00
30018dbf52 Merge pull request #10456 from jpbetz/changelog-10443
Add #10443 fix to changelogs
2019-02-07 10:41:15 -08:00
715510a5d2 Merge pull request #10446 from povilasv/etcd-mixin-fix-msg
etcd-mixin: Improve etcdHighNumberOfLeaderChanges,etcdHighNumberOfFailedProposals messages
2019-02-07 10:25:03 -08:00
0418488666 Merge pull request #10454 from mkumatag/fix_shadow
Add shadow tool
2019-02-07 10:23:50 -08:00
45d09f0508 pkg/transport: Limit InvalidCipherSuites to TLS12 2019-02-07 08:18:00 -06:00
474cea1cd6 test: Add shadow tool 2019-02-06 23:20:06 -06:00
faa7a49972 Merge pull request #10443 from Quasilyte/quasilyte/fix_args_order
etcdctl: fix strings.HasPrefix args order
2019-02-06 10:54:11 -08:00
eb8e94c4ed etcd-mixin: Improve etcdHighNumberOfLeaderChanges,etcdHighNumberOfFailedProposals message
Currently alert messages state that we detect issue
within the last 1 hour, although we check
for last 15min and wait for 15min for this alert to keep firing.
This fix changes the message to be 30minutes.
2019-02-04 09:28:23 +02:00
313ab0ba47 clientv3: fix WithFromKey
The WithFromKey func should not return error similar to etcdctl usage
of it when an empty key is provided.

Fixed #9833
2019-02-02 19:21:49 -05:00
1fe6f109c8 Merge pull request #10443 from Quasilyte/quasilyte/fix_args_order
etcdctl: fix strings.HasPrefix args order
2019-02-02 13:41:40 -08:00
be40b1d646 Merge pull request #10428 from cfc4n/master
clientv3/integration: Don't retry other endpoints when err == rpctypes.ErrAuthNotEnable
2019-02-02 13:37:56 -08:00
a033686acf clientv3/integration: return err if err == rpctypes.ErrAuthNotEnable 2019-02-02 14:06:54 +08:00
48a2442fd7 etcdctl: fix strings.HasPrefix args order
Signed-off-by: Iskander Sharipov <quasilyte@gmail.com>
2019-02-02 02:39:27 +03:00
3e0f0ba40e Merge pull request #10401 from markmc/doc-drop-etcdctl-v3-flag
Eliminate some ETCDCTL_API=3 usage
2019-02-01 11:25:55 -08:00
6070db22ed Merge pull request #10424 from hexfusion/fx_genproto
*: bump protoc to 3.6.1 and fix genproto.sh
2019-01-30 12:53:39 -05:00
46e23b233c vendor: update boltdb and grpc middleware version 2019-01-30 06:21:57 -05:00
329be66e8b Merge pull request #10343 from mitake/proxy-cn
*: let grpcproxy rise an error when its cert has non empty CN
2019-01-26 01:53:12 +09:00
a1f964afd3 tests: add a new e2e test case for the combination of non empty CN and grpc proxy 2019-01-25 00:43:57 +09:00
b1afe210e4 Documentation: describe the problem of CN based auth + grpcproxy 2019-01-25 00:43:57 +09:00
65887ae1b4 pkg, clientv3, etcdmain: let grpcproxy rise an error when its cert has non empty CN
Fix https://github.com/etcd-io/etcd/issues/9521
2019-01-25 00:43:57 +09:00
fa521f4e00 Merge pull request #10392 from mitake/cn-gateway
*: grpc gateway and CN based auth
2019-01-24 09:08:04 +09:00
de8e29e71c Merge pull request #10423 from markmc/prober-http-status
prober: check response http status code
2019-01-22 11:19:15 -08:00
69e2faec00 tests: update TestV3CurlAuthClientTLSCertAuth for using cert with empty CN 2019-01-23 03:26:34 +09:00
11fb62ecb4 embed: requests for grpc gateway must have empty CN if --client-cert-auth is passed
This commit lets grpc gateway return a correct error to clients.

Even if a client has a cert with non empty CN, current gateway returns
an error like below:
```
$ curl --cacert ./integration/fixtures/ca.crt --cert ./integration/fixtures/server.crt --key ./integration/fixtures/server.key.insecure https://localhost:2379/v3/kv/put -X POST -d '{"key": "fromcurl", "value": "test"}'
{"error":"etcdserver: user name is empty","code":3}
```
This is because etcd ignores CN from gateway connection.

The error will be like this:
```
$ curl --cacert ./integration/fixtures/ca.crt --cert ./integration/fixtures/server.crt --key ./integration/fixtures/server.key.insecure https://localhost:2379/v3/kv/put -X POST -d '{"key": "fromcurl", "value": "test"}'
CommonName of client sending a request against gateway will be ignored and not used as expected
```

The error will be returned if the server is enabling auth and gRPC
gateway.
2019-01-23 03:26:34 +09:00
72dd4a18c5 *: add a new option --enable-grpc-gateway for enabling/disabling grpc gateway 2019-01-23 03:26:34 +09:00
cbdb36295e Documentation: regenerate proto
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
2019-01-22 16:57:07 +00:00
a011b2c4c4 scripts: disable go mod and bump protoc to 3.6.1
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
2019-01-22 16:55:01 +00:00
627660e94e prober: check response http status code
Updated vendored probing module to 0.0.2.

Fixes #10404
2019-01-22 16:21:23 +00:00
ea0cf681c7 OWNERS: add hexfusion as approver and remove joelegasse
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
2019-01-21 10:52:34 -05:00
25068dfc1e Merge pull request #10244 from paskal/master
Sync prometheus alerting rules with prometheus-operator version
2019-01-20 21:07:32 -08:00
2a1f271f91 Merge pull request #10419 from WIZARD-CXY/fixdeadlock
bugfix:dead lock on store.mu when store.Compact in store.Restore happens
2019-01-20 19:29:22 -08:00
6e8913b004 bugfix:dead lock on store.mu when store.Compact in store.Restore happens 2019-01-21 10:46:58 +08:00
69ed707fab CONTRIBUTING: clarify commit message style
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
2019-01-18 13:00:24 -05:00
fcc29894c2 config: multiple logging fixes
First, don't panic with invalid --log-outputs. For example:

  $> ./bin/etcd --log-outputs foo
  2018-12-20 15:05:47.988652 C | embed: unknown log-output "foo" (only supports "default", "stderr", "stdout")
  panic: unknown log-output "foo" (only supports "default", "stderr", "stdout")

  goroutine 1 [running]:
  go.etcd.io/etcd/vendor/github.com/coreos/pkg/capnslog.(*PackageLogger).Panicf(0xc000294b00, 0x10fe067, 0x30, 0xc0001fa398, 0x4, 0x4)
        go.etcd.io/etcd/vendor/github.com/coreos/pkg/capnslog/pkg_logger.go:75 +0x161
  go.etcd.io/etcd/embed.(*Config).setupLogging(0xc000291400, 0xc0002a85b0, 0x1)
        go.etcd.io/etcd/embed/config_logging.go:120 +0x1939
  ...

Or:

 $> ./bin/etcd --log-outputs foo,default --logger zap
 panic: multi logoutput for "default" is not supported yet

 goroutine 1 [running]:
 go.etcd.io/etcd/embed.(*Config).setupLogging(0xc000314500, 0xc0001b2f70, 0x1)
        go.etcd.io/etcd/embed/config_logging.go:129 +0x2437
 go.etcd.io/etcd/embed.(*Config).Validate(0xc000314500, 0xc000268a98, 0x127e440)
        go.etcd.io/etcd/embed/config.go:543 +0x43

Second, don't exit in embed.setupLogging(). Before:

  $> ./bin/etcd --log-outputs foo,bar
  --logger=capnslog supports only 1 value in '--log-outputs', got ["bar" "foo"]

and after:

  $> ./bin/etcd --log-outputs foo,bar
  2018-12-20 15:10:24.317982 E | etcdmain: error verifying flags, --logger=capnslog supports only 1 value in '--log-outputs', got ["bar" "foo"]. See 'etcd --help'.

Third, remove duplicated unique strings code. UniqueStringsFromFlag()
is already available to return a sorted slice of values, so just use
that.

Lastly, fix a tiny logging typo in config.
2019-01-17 15:09:26 -05:00
cbfe0b4b79 Merge pull request #10409 from nolouch/add-logger
embed: add zap logger builder
2019-01-17 11:21:52 -08:00
a00bff7848 Merge pull request #10402 from markmc/interactive-watch-panic
etcdctl: fix interactive mode panic
2019-01-16 11:40:34 +08:00
ac090fe326 embed: add zap logger builder
Signed-off-by: nolouch <nolouch@gmail.com>
2019-01-15 23:22:04 +08:00
e53324db3b scripts/release: stop using ETCDCTL_API=3
Note: v3 has been the default since 25bc65794.
2019-01-14 14:46:16 +00:00
4d45a9ca43 build: stop using ETCDCTL_API=3
Note: v3 has been the default since 25bc65794.
2019-01-14 14:46:16 +00:00
0427f46f17 doc: don't set ETCDCTL_API=3 in local_cluster guide
These docs are incorrectly saying that v2 is the default.

Note: v3 has been the default since 25bc65794.
2019-01-14 14:46:16 +00:00
034312eac5 doc: fix note that says ETCDCTL_API=2 is the default
Note: v3 has been the default since 25bc65794.
2019-01-14 14:46:03 +00:00
36d7acf330 etcdctl: fix interactive mode panic
Don't panic if command is given in interactive mode, give a nice error
message instead.

Before:

 $ ./bin/etcdctl watch -i
 <hit return>
 panic: runtime error: index out of range

 goroutine 1 [running]:
 etcdctl/ctlv3/command.watchInteractiveFunc(...)
 	etcd/etcdctl/ctlv3/command/watch_command.go:104 ...

After:

 $ ./bin/etcdctl watch -i
 <hit return>
 Invalid command:  (watch and progress supported)
 foo
 Invalid command foo (only support watch)
2019-01-14 13:01:37 +00:00
071a0157e0 etcdctl: fix README to not suggest v2 is default
Note: v3 has been the default since 25bc65794.
2019-01-14 12:38:37 +00:00
39ef3901ef README: stop using ETCDCTL_API=3
Note: v3 has been the default since 25bc65794.
2019-01-14 12:38:37 +00:00
b398947cf9 doc: don't use ETCDCTL_API=3 in dl_build
In the spirit of keeping newb instructions simple, do not specify
ETCDCTL_API=3 since it is redundant.

Note: v3 has been the default since 25bc65794.
2019-01-14 12:38:24 +00:00
1eee465a43 CHANGELOG: revert discovery-srv-name feature from 3.3.11
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
2019-01-11 13:12:16 -05:00
a26fa9fe1f CHANGELOG: add "disable CommonName authentication for gRPC-gateway" PR
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
2019-01-11 13:00:14 -05:00
1eec48083b CHANGELOG: bump version and release date
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
2019-01-11 12:59:19 -05:00
fae6e92407 Merge pull request #10390 from johncming/missing-err
tests/e2e: add missing return error.
2019-01-09 14:41:48 -08:00
2063b358c8 Merge pull request #10218 from mailgun/maxim/develop
Remove infinite loop in doSerialize
2019-01-09 10:38:25 -08:00
fffb982f1a tests/e2e: add missing return error. 2019-01-09 13:47:09 +08:00
1e42503bea Merge pull request #10379 from johncming/app-resp
etcdserver: add a test to verify number of MsgAppResp sent is correct.
2019-01-08 18:55:30 -08:00
e8f46ce341 etcdserver: add a test to verify not to send duplicated append responses 2019-01-09 10:37:43 +08:00
577d7c0df2 e2e: update test to reflect (ST1005) update.
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
2019-01-08 21:04:20 -05:00
a82703b69e *: error strings should not end with punctuation or a newline (ST1005)
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
2019-01-08 21:04:20 -05:00
6511829d1f Merge pull request #10374 from johncming/deprecated
api/rafthttp: remove deprecated req.Cancel.
2019-01-08 14:33:25 -08:00
1e15c7434e vendor: cleanup and revendor deps
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
2019-01-08 16:49:51 -05:00
2001786f02 *: Use -n instead of ! -z. [SC2236]
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
2019-01-08 13:45:40 -05:00
442c863413 Merge pull request #10377 from johncming/cancel-pos
api/v2auth: remove defer in loop.
2019-01-08 09:43:06 -08:00
21e0d3e527 Merge pull request #10359 from rkday/install-instructions
docs: install etcdctl with `go get` as well
2019-01-08 09:42:11 -08:00
83c051b701 CHANGELOG: add "disable CommonName authentication for gRPC-gateway" PR
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
2019-01-08 12:31:20 -05:00
99704e2a97 e2e: add ClientTLSCertAuth coverage for curl v3 auth tests
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
2019-01-08 12:31:20 -05:00
a9a9466fb8 Documentation: document gRPC-gateway CN authentication support
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
2019-01-08 12:31:20 -05:00
bf9d0d8291 auth: disable CommonName auth for gRPC-gateway
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
2019-01-08 12:31:20 -05:00
9c6b407e7d Documentation: add missing ENV 2019-01-08 11:36:07 -05:00
b04633fd8e Merge pull request #10375 from johncming/redundant-parentheses
etcdserver: remove redundant parentheses.
2019-01-07 18:38:26 -08:00
e96dbfb973 api/v2auth: remove defer in loop. 2019-01-08 08:56:55 +08:00
8945fecf85 Merge pull request #10376 from johncming/snake-case
api/v2store:  use camel case instead of snake case.
2019-01-07 10:19:32 -08:00
5060560f92 api/v2store: use camel case instead of snake case. 2019-01-07 10:35:23 +08:00
802e2aaadd etcdserver: remove redundant parentheses. 2019-01-07 10:27:52 +08:00
4651f49a5c api/rafthttp: remove deprecated req.Cancel. 2019-01-07 10:12:47 +08:00
f0aeb705ce Merge pull request #10371 from johncming/no-assign
etcdserver: add missing lg assignment.
2019-01-04 19:04:57 -08:00
b2e0e760a0 etcdserver: add missing lg assignment. 2019-01-05 09:24:48 +08:00
fde617d2dc Merge pull request #10368 from johncming/blankline
pkg/testutil: add blankline between two functions
2019-01-03 20:58:07 -08:00
8f383852e2 pkg/testutil: add blankline between two functions 2019-01-04 09:44:57 +08:00
daec071813 Merge pull request #10367 from gyuho/remove-backoff-utils
clientv3: remove "JitterUp" imports
2019-01-03 14:44:18 -08:00
61218004c0 clientv3: remove "JitterUp" imports
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-01-03 11:00:45 -08:00
3a5868a7b9 Merge pull request #10363 from johncming/embed
embed: add test cases in TestAutoCompactionModeParse.
2019-01-03 10:49:51 -08:00
e7b5f2de26 embed: add test cases in TestAutoCompactionModeParse. 2019-01-02 17:08:15 +08:00
400b568fd6 Merge pull request #10360 from yaojingguo/ignore-file
gitignore: ignore build result and runtime files of raftexample
2019-01-01 09:31:38 -08:00
e86a12bad0 gitignore: ignore build result and runtime files 2019-01-01 19:14:48 +08:00
959d004bcc docs: install etcdctl with go get as well
The documentation recommends using `etcdctl` to verify that etcd has
been built correctly, but the `go get` command provided does not install
it. This changes it so that it does, and also clarifies terminology
('using `go get`', referring to the command used to install it, rather
than 'using `$GOPATH`').
2018-12-30 12:10:32 +00:00
cc8d446a6e Merge pull request #8334 from lishuai87/shawnsli/reset-leader-when-become-pre-candidate
raft: introduce/fix TestPreVoteWithCheckQuorum
2018-12-28 09:51:06 -08:00
23731bf9ba raft: set lead to none when becomePreCandidate 2018-12-28 19:57:26 +08:00
6937b77232 README: remove "you" in "Community Meeting"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-12-23 21:53:36 -08:00
deeb16c9e8 Merge pull request #10346 from lsytj0413/fix-golint
refactor(*): fix golint warning
2018-12-23 20:26:09 -08:00
792aad932f refactor(*): fix golint warning 2018-12-24 11:43:10 +08:00
9113019936 Update README.md with community meeting info 2018-12-21 15:53:59 -08:00
f3fbedc88f client: update generated ugorji codec, manual remove "yynn2=0"
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
2018-12-21 18:16:55 -05:00
a580ec4547 CHANGELOG: add patch release, gRPC proxy fix
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-12-17 21:22:37 -08:00
7c7141550d docs/README: highlight new documentation website 2018-12-17 18:15:26 -08:00
1bbe6bd7d3 Merge pull request #10332 from gyuho/update
*: update Go versions
2018-12-17 15:19:49 -08:00
c58f5cfeda test: disable "unparam" for now
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-12-17 11:30:28 -08:00
0929080834 doc: exclude 404 error because kubelet generating false positive 2018-12-17 11:57:12 +03:00
830d064903 doc: convert etcd to lower-case everywhere 2018-12-17 11:57:12 +03:00
358cc1a8fa doc: sync prometheus rules with prometheus-operator version
(and remove non-etcd specific FdExhaustionClose)
https://github.com/coreos/prometheus-operator/blob/master/helm/exporter-kube-etcd/templates/etcd3.rules.yaml
sync etcd alert rules with libsonnet

Signed-off-by: Dmitry Verkhoturov <paskal.07@gmail.com>
2018-12-17 11:57:12 +03:00
6f0ba5fa06 *: update Go versions
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-12-16 23:13:11 -08:00
abb57363ba Merge pull request #10327 from namreg/fix-grpcproxy-memory-leak
grpcproxy: fix memory leak
2018-12-16 17:32:27 -08:00
d88f686a91 grpcproxy: fix memory leak
use set instead of slice as interval value

fixes #10326
2018-12-15 17:00:51 +03:00
e57f4f420d docs/requirements: update to urllib3>=1.23 2018-12-12 08:57:45 -08:00
15b6a17be4 Merge pull request #10313 from lsytj0413/fix-getlogger
refactor(*): remove duplicate GetLogger
2018-12-10 06:48:02 -08:00
23862b5d64 refactor(*): remove duplicate GetLogger 2018-12-10 17:58:47 +08:00
1900a8e26f Merge pull request #10308 from tbg/fix/progress-after-snap
raft: enter ProgressStateReplica immediately after snapshot
2018-12-06 10:58:22 -08:00
8a9a2a1a5a Merge pull request #10309 from tbg/fix/raft-status-allocs
raft: add (*RawNode).WithProgress
2018-12-06 10:56:40 -08:00
bd332b318e raft: add (*RawNode).WithProgress
Calls to Status can be frequent and currently incur three heap
allocations, but often the caller has no intention to hold on to the
returned status.

Add StatusWithoutProgress and WithProgress to allow avoiding heap
allocations altogether. StatusWithoutProgress does what's on the
tin and additionally returns a value (instead of a pointer) to
avoid the associated heap allocation. By not returning a Progress
map, it avoids all other allocations that Status incurs.

To still introspect the Progress map, add WithProgress, which
uses a simple visitor pattern.

Add benchmarks to verify that this is indeed allocation free.

```
BenchmarkStatusProgress/members=1/Status-8                  5000000    353 ns/op        784 B/op    3 allocs/op
BenchmarkStatusProgress/members=1/Status-example-8          5000000    372 ns/op        784 B/op    3 allocs/op
BenchmarkStatusProgress/members=1/StatusWithoutProgress-8   100000000  17.6 ns/op         0 B/op    0 allocs/op
BenchmarkStatusProgress/members=1/WithProgress-8            30000000   48.6 ns/op         0 B/op    0 allocs/op
BenchmarkStatusProgress/members=1/WithProgress-example-8    30000000   42.9 ns/op         0 B/op    0 allocs/op
BenchmarkStatusProgress/members=3/Status-8                  5000000    395 ns/op        784 B/op    3 allocs/op
BenchmarkStatusProgress/members=3/Status-example-8          3000000    449 ns/op        784 B/op    3 allocs/op
BenchmarkStatusProgress/members=3/StatusWithoutProgress-8   100000000  18.7 ns/op         0 B/op    0 allocs/op
BenchmarkStatusProgress/members=3/WithProgress-8            20000000   78.1 ns/op         0 B/op    0 allocs/op
BenchmarkStatusProgress/members=3/WithProgress-example-8    20000000   70.7 ns/op         0 B/op    0 allocs/op
BenchmarkStatusProgress/members=5/Status-8                  3000000    470 ns/op        784 B/op    3 allocs/op
BenchmarkStatusProgress/members=5/Status-example-8          3000000    544 ns/op        784 B/op    3 allocs/op
BenchmarkStatusProgress/members=5/StatusWithoutProgress-8   100000000  19.7 ns/op         0 B/op    0 allocs/op
BenchmarkStatusProgress/members=5/WithProgress-8            20000000   105 ns/op          0 B/op    0 allocs/op
BenchmarkStatusProgress/members=5/WithProgress-example-8    20000000   94.0 ns/op         0 B/op    0 allocs/op
BenchmarkStatusProgress/members=100/Status-8                100000     11903 ns/op    22663 B/op   12 allocs/op
BenchmarkStatusProgress/members=100/Status-example-8        100000     13330 ns/op    22669 B/op   12 allocs/op
BenchmarkStatusProgress/members=100/StatusWithoutProgress-8 50000000   20.9 ns/op         0 B/op    0 allocs/op
BenchmarkStatusProgress/members=100/WithProgress-8          1000000    1731 ns/op         0 B/op    0 allocs/op
BenchmarkStatusProgress/members=100/WithProgress-example-8  1000000    1571 ns/op         0 B/op    0 allocs/op
```
2018-12-06 19:02:48 +01:00
bfa2c15c55 Merge pull request #10307 from gyuho/update-image
docs/img: clarify "network partition + membership reconfiguration"
2018-12-06 09:28:36 -08:00
bfaae1ba46 raft: enter ProgressStateReplica immediately after snapshot
When a follower requires a snapshot and the snapshot is sent at the
committed (and last) index in an otherwise idle Raft group, the follower
would previously remain in ProgressStateProbe even though it had been
caught up completely.

In a busy Raft group this wouldn't be an issue since the next round of
MsgApp would update the state, but in an idle group there's nothing
that rectifies the status (since there's nothing to append or update).

The reason this matters is that the state is exposed through
`RaftStatus()`. Concretely, in CockroachDB, we use the Raft status to
make sharding decisions (since it's dangerous to make rapid changes
to a fragile Raft group), and had to work around this problem[1].

[1]: 91b11dae41/pkg/storage/split_delay_helper.go (L138-L141)
2018-12-06 11:09:59 +01:00
0b5a3d8080 docs/img: clarify "network partition + membership reconfiguration"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-12-05 19:05:26 -08:00
510ae3d2a2 clientv3/concurrency: fix govet errors
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-12-05 18:28:13 -08:00
12b19ff5ea Merge pull request #10306 from johncming/zap_logger
embed: set log-outputs 'default' to 'stderr' config when zap mode
2018-12-05 18:25:43 -08:00
6744c57de3 embed: set log-outputs 'default' to 'stderr' config when zap mode 2018-12-06 09:33:51 +08:00
1124ccf4f9 Merge pull request #10305 from johncming/doc
Documentation/op-guide: fix typo.
2018-12-05 16:55:15 -08:00
e4ac8db4ae Documentation/op-guide: fix typo. 2018-12-06 08:48:30 +08:00
83696d95c9 Merge pull request #10297 from thrawn01/election-resume
concurrency: set keyPrefix when calling ResumeElection()
2018-12-05 13:25:39 -08:00
7d7266d3c9 concurrency: set keyPrefix when calling ResumeElection()
This change allows users to use Observe() after resuming an election as
Observe() requires a valid keyPrefix to function properly.
2018-12-05 14:50:56 -06:00
3f01426712 Merge pull request #10301 from jingyih/add_timeout_to_etcdctl_snapshot_save
etcdctl: add timeout to snapshot save command
2018-12-04 21:23:15 -08:00
ce3e127d0b Merge pull request #10302 from jingyih/update_changelog_3p4_from_pr10301
CHANGELOG-3.4: update from #10301
2018-12-04 21:19:50 -08:00
9db21117d1 CHANGELOG-3.4: update from #10301 2018-12-04 21:06:46 -08:00
5b6b03d081 etcdctl: add timeout to snapshot save command
snapshot save command by default has no timeout, but respects user
specified command timeout.
2018-12-04 20:36:48 -08:00
7f450bf696 Merge pull request #10296 from gyuho/learner
docs: rename to "learner" (from "non-voting member")
2018-12-03 11:17:26 -08:00
bfd9596352 docs: rename to "learner" (from "non-voting member")
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-12-03 10:38:40 -08:00
99c933b7bc Merge pull request #10295 from gyuho/non-voting-member-design
docs: add "Non-voting member" design doc
2018-12-03 10:27:24 -08:00
1f559736ef docs: add authors to client architecture doc
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-12-03 09:12:51 -08:00
285a3acda6 docs: add "Non-voting member" design doc
By gyuho and jpbetz.

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-12-03 09:00:08 -08:00
dedae6eb7c CHANGELOG-3.4: add backend batch limit/interval fields
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-11-28 14:03:05 -08:00
829c9b2129 Merge pull request #10283 from xiang90/more_flags
*: add flags to setup backend related config
2018-11-27 18:58:43 -08:00
3faed211e5 *: add flags to setup backend related config 2018-11-26 15:50:26 -08:00
6c649de36e Merge pull request #10281 from tbg/print-hint-reject-app-resp
raft: print RejectHint of zero on MsgAppResp
2018-11-24 11:48:16 +08:00
f28945ba8a Merge pull request #10279 from tbg/leader-progress-replicate
raft: ensure leader is in ProgressStateReplicate
2018-11-24 10:43:01 +08:00
5c209d66d2 raft: ensure leader is in ProgressStateReplicate
The leader perpetually kept itself in ProgressStateProbe even though of
course it has perfect knowledge of its log. This wasn't usually an issue
because it also doesn't care about its own Progress, but it's better to
keep this data correctly maintained, especially since this is part of
raft.Status and thus becomes visible to applications using the Raft
library.

(Concretely, in CockroachDB we use the Progress to inform log
truncations).
2018-11-23 17:57:36 +01:00
1569f4829d raft: print RejectHint of zero on MsgAppResp
A zero RejectHint on MsgAppResp is still used, and so should be
reflected in the message description.
2018-11-23 11:06:38 +01:00
02a9810a9e Merge pull request #10275 from hexfusion/maint
MAINTAINERS: add Sam Batschelet
2018-11-20 17:38:29 -05:00
b4d200174e Merge pull request #10278 from cwdsuzhou/master
Documentation: add ENV variable ETCD_CIPHER_SUITES description
2018-11-20 10:57:51 -05:00
a8293e5815 Documentation: add ENV variable ETCD_CIPHER_SUITES description
Fixes #10277
2018-11-20 22:40:24 +08:00
0e8981d2ff MAINTAINERS: add Sam Batschelet
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
2018-11-19 19:43:15 -05:00
bb25891960 Merge pull request #10268 from gyuho/dump-db
tools/etcd-dump-db: add "--timeout" flag
2018-11-15 23:16:24 -08:00
f8a513ce65 tools/etcd-dump-db: add "--timeout" flag
By default, wait up to 10 seconds to obtain flocks.

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-11-15 22:50:32 -08:00
af893d3549 CHANGELOG-3.4: add "etcd_cluster_version"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-11-15 08:17:57 -08:00
024f3dfc82 Merge pull request #10257 from gyuho/cluster-version
etcdserver/*: add "etcd_cluster_version" metric
2018-11-15 22:02:57 +08:00
322339bb54 Merge pull request #10262 from johncming/tcpproxy
tcpproxy: add a test.
2018-11-15 22:02:05 +08:00
c2d023ce74 Merge pull request #10263 from johncming/raftstorage
raft:  add a test case in TestStorageAppend
2018-11-15 22:01:06 +08:00
fa92397e18 Merge pull request #10258 from ajwerner/ajwerner/raft_committed_entries_size
raft: separate MaxCommittedSizePerReady config from MaxSizePerMsg
2018-11-15 22:00:00 +08:00
9668536124 raft: add a test case in TestStorageAppend 2018-11-15 16:41:36 +08:00
92cb9c3295 tcpproxy: add a test. 2018-11-15 14:28:30 +08:00
e4af2be5bb raft: separate MaxCommittedSizePerReady config from MaxSizePerMsg
Prior to this change, MaxSizePerMsg was used both to cap the total byte size of
entries in messages as well as the total byte size of entries passed through
CommittedEntries in the Ready struct. This change adds a new Config parameter
MaxCommittedSizePerReady which defaults to MaxSizePerMsg and contols the second
of above descibed settings.
2018-11-14 09:59:09 -05:00
0226481584 tests/e2e: test cluster version
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-11-13 21:49:33 -08:00
291768af0f etcdserver/*: add "etcd_cluster_version" metric
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-11-13 21:49:12 -08:00
ee9dcbca0d Merge pull request #10256 from philippgille/patch-1
Fix spelling in comment
2018-11-12 14:07:05 -08:00
0cfc01b873 clientv3: Fix spelling in comment 2018-11-12 22:33:48 +01:00
91e583cba6 etcdserver: Remove infinite loop in doSerialize
Once chk(ai) fails with auth.ErrAuthOldRevision it will always do,
regardless how many times you retry. So the error is better be returned
to fail the pending request and make the client re-authenticate.
2018-11-12 23:28:24 +03:00
ae25c5e132 Merge pull request #10253 from mas9612/improve-docs
*: fix some typo and repo name
2018-11-11 11:41:57 -08:00
9ee41f699c doc: fix typo in documentation 2018-11-11 23:27:04 +09:00
963d76fc4c CONTRIBUTING: fix repo name 2018-11-11 23:25:53 +09:00
e34423b6ff Merge pull request #10251 from ueokande/fix-github-links
Fix github links
2018-11-09 18:28:42 -08:00
aa4313a55a *: fix github links 2018-11-10 11:14:18 +09:00
9454c4cab0 *: add client support for discovery-srv-name
Add support for --discovery-srv-name flag to etcdctl, gRPC proxy, and etcd gateway.
2018-11-09 16:30:58 -05:00
e0f7807f1b CHANGELOG: highlight improved discovery-srv-name support
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
2018-11-09 14:51:39 -05:00
61c8d7a582 tests/docker-dns-srv: add tests for docker-dns-srv-name.
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
2018-11-09 13:51:04 -05:00
fa35126ef8 *: add client support for discovery-srv-name
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
2018-11-09 10:13:04 -05:00
83304cfc80 tools/etcd-dump-metrics: add missing godoc
https://godoc.org/github.com/etcd-io/etcd/tools/etcd-dump-metrics

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-10-31 16:12:32 -07:00
c0e04700cf Merge pull request #10230 from manishrjain/master
raft: Explain ReportSnapshot and Propose behavior
2018-11-01 06:48:45 +08:00
8e907e48f9 Merge pull request #10229 from gyuho/fix-flag-tests
pkg/flags: fix "TestSetFlagsFromEnvParsingError"
2018-10-31 15:42:32 -07:00
4aa72ca1d3 raft: Explain ReportSnapshot and Propose behavior
Update godocs for node interface, explaining the behavior of ReportSnapshot and Propose.
2018-10-31 15:37:55 -07:00
7b32c07899 pkg/flags: fix "TestSetFlagsFromEnvParsingError"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-10-31 10:44:38 -07:00
3f3eae7822 Merge pull request #10227 from imjoey/doc_fix_start_gateway_command
Documentation/op-guide: fix error command to start gateway
2018-10-30 20:02:41 -07:00
bece069329 doc: Fix starting etcd gateway command using DNS. 2018-10-31 10:28:35 +08:00
be7c8fe423 docs: update "requests>=2.20.0"
To resolve the security alert https://nvd.nist.gov/vuln/detail/CVE-2018-18074.

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-10-29 15:00:10 -07:00
252dc1f994 Merge pull request #10220 from ping40/pagewriter
pkg/ioutil: n is equal or greater than cw.writeBytes
2018-10-28 14:33:37 -07:00
5a94f97a4f pkg/ioutil: n is equal or greater than cw.writeBytes 2018-10-27 16:13:33 +08:00
583763261f Merge pull request #10216 from hexfusion/shellcheck
*: resolve shellcheck errors.
2018-10-26 06:15:44 -07:00
78d01140ff *: resolve shellcheck errors. 2018-10-25 19:41:11 -04:00
798955d4d6 Merge pull request #10209 from ping40/d1024
raft: Fix comment on TestLeaderBcastBeat
2018-10-25 14:42:16 -07:00
38da00be33 Merge pull request #10212 from gyuho/raft-typo
raft: fix godoc in tests
2018-10-25 09:51:35 -07:00
b7ed4165ea raft: fix godoc in tests
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-10-24 23:23:32 -07:00
965ba5ca8b Merge pull request #10203 from ping40/doc1022_2
raft: fix description in UT
2018-10-24 23:21:02 -07:00
5d8975d7ad Merge pull request #10207 from jpbetz/concurrent-new-client-fix
*: Fix concurrent clientv3 client creation in 3.4 by using proper UUIDs
2018-10-24 16:08:36 -07:00
ea68efb259 CHANGELOG: add "raft unbounded log growth prevention" PR
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-10-24 15:55:08 -07:00
10255cf196 raft: Fix comment on TestLeaderBcastBeat 2018-10-24 16:56:10 +08:00
86b933311d Merge pull request #10205 from gyuho/testing-prow
OWNERS: experiment
2018-10-22 16:07:27 -07:00
6a43db1eff clientv3: Fix concurrent clientv3 client creation in 3.4 by using proper UUIDs 2018-10-22 14:08:58 -07:00
2338f747bf vendor: Add dependency on google/uuid for safe UUID generation
etcd currently generates a few UUID style identifiers using approaches like `fmt.Sprintf("client-%s", strconv.FormatInt(time.Now().UnixNano(), 36))`.
But these can collide on machine architectures with larger timestamp steps (see https://github.com/etcd-io/etcd/issues/10035).
2018-10-22 14:06:24 -07:00
c561f8310e OWNERS: experiment
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-10-22 12:49:08 -07:00
b42b39446b Merge pull request #10199 from tschottdorf/fix-max-uncommitted-size
raft: fix bug in unbounded log growth prevention mechanism
2018-10-22 21:30:01 +02:00
a27a73e448 Merge pull request #10193 from johncming/master
mvcc/backend: code format optimization
2018-10-22 11:50:53 -07:00
ad49c8fd98 raft: fix bug in unbounded log growth prevention mechanism
The previous code was using the proto-generated `Size()` method to
track the size of an incoming proposal at the leader. This includes
the Index and Term, which were mutated after the call to `Size()`
when appending to the log. Additionally, it was not taking into
account that an ignored configuration change would ignore the
original proposal and append an empty entry instead.

As a result, a fully committed Raft group could end up with a non-
zero tracked uncommitted Raft log counter that would eventually hit
the ceiling and drop all future proposals indiscriminately. It would
also immediately imply that proposals exceeding the threshold alone
would get refused (as the "first uncommitted proposal" gets special
treatment and is always allowed in).

Track only the size of the payload actually appended to the Raft log
instead.

For context, see:
https://github.com/cockroachdb/cockroach/issues/31618#issuecomment-431374938
2018-10-22 11:28:39 +02:00
de470991e1 raft: fix description in UT 2018-10-22 13:59:50 +08:00
8c80efb886 CHANGELOG: highlight minimum recommended version, change github org URLs
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-10-18 16:39:01 -07:00
88e0830560 CHANGELOG-3.4: add "raft.Config.MaxUncommittedEntriesSize" change
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-10-18 11:47:50 -07:00
cf309757d6 mvcc/backend: code format optimization 2018-10-17 14:18:09 +08:00
7a759c18d2 Merge pull request #10178 from johncming/master
bugfix: use the backend create by snapshot instead of origin one in tests
2018-10-15 10:54:34 -07:00
1ded5aaf4d Merge pull request #10150 from cbeneke/fix/mixin-insufficent-member-alert
etcd-mixin: Fix EtcdInsufficientMembers alerting
2018-10-15 10:27:59 -07:00
c75ba98f81 Documentation/etcd-mixin: Fix EtcdInsufficientMembers alerting
Currently the EtcdInsufficientMembers alert fires, when more than (X/2)-1
instances are unavailable. This fixes it to fire at the correct limit of (X-1)/2
unavailable instances and $value now contains the number of available instances
instead of unavailable ones. Added unit test for EtcdInsufficientMembers alert.
2018-10-15 19:23:43 +02:00
bf49b9a145 mvcc/backend: fix to use the backend create by snapshot instead of origin one. 2018-10-15 09:35:20 +08:00
dac8c6fcc0 Merge pull request #10167 from nvanbenschoten/nvanbenschoten/limitUncommitted
raft: provide protection against unbounded Raft log growth
2018-10-13 23:52:28 -07:00
73c20cc1b7 raft: Fix comment on sendHeartbeat 2018-10-14 00:03:43 -04:00
7be7ac5a5d raft: Fix spelling in doc.go 2018-10-13 23:25:05 -04:00
f89b06dc6d raft: provide protection against unbounded Raft log growth
The suggested pattern for Raft proposals is that they be retried
periodically until they succeed. This turns out to be an issue
when a leader cannot commit entries because the leader will continue
to append re-proposed entries to its log without committing anything.
This can result in the uncommitted tail of a leader's log growing
without bound until it is able to commit entries.

This change add a safeguard to protect against this case where a
leader's log can grow without bound during loss of quorum scenarios.
It does so by introducing a new, optional ``MaxUncommittedEntriesSize
configuration. This config limits the max aggregate size of uncommitted
entries that may be appended to a leader's log. Once this limit
is exceeded, proposals will begin to return ErrProposalDropped
errors.

See cockroachdb/cockroach#27772
2018-10-13 23:25:05 -04:00
3c6c05be8a Merge pull request #10176 from jpbetz/keepalive-docs
clientv3: Clarify lessor KeepAlive docs
2018-10-12 09:38:51 -07:00
e205d09895 Merge pull request #10171 from paulf69487623/master
Documentation: Add the -N option to curl for the watch example to disable buffering
2018-10-12 07:09:14 -04:00
b3faeb5d86 Documentation: Add the -N option to curl for the watch example to disable buffering 2018-10-11 22:13:43 -05:00
1cab49ef78 Merge pull request #9718 from kchristidis/fix-snap-pub-error
raftexample: Fix publish snapshot error message
2018-10-11 16:45:55 -07:00
404f7d820c Merge pull request #10175 from wenjiaswe/fixTestMetricsHealth
integration: fix bug in TestMetricsHealth
2018-10-11 16:07:30 -07:00
49450aaa60 clientv3: Clarify lessor KeepAlive docs 2018-10-11 15:11:28 -07:00
69f53e1406 integration: fix bug in TestMetricsHealth 2018-10-11 14:55:39 -07:00
d5c93a7b0b Merge pull request #10165 from jpbetz/socket-docs
Document unix and unixs URL schemes
2018-10-10 15:21:55 -07:00
ef7e9d385b docs/operate.rst: link latest patch releases
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-10-10 15:03:51 -07:00
342d53d1b1 docs/metrics: add metrics outputs from patch releases
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-10-10 15:03:37 -07:00
f0736fe477 CHANGELOG: add Go release versions
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-10-10 11:07:10 -07:00
5b0960f664 docs/metrics: document missing metrics from master branch
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-10-09 18:37:41 -07:00
d4283b895c CHANGELOG-3.3: update release date for tomorrow
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-10-09 18:30:50 -07:00
0f0919c19c Merge pull request #10159 from gyuho/version-log
etcdserver: clear message in cluster version decision
2018-10-09 18:10:14 -07:00
3e37052c08 CHANGELOG: updates for v3.4 and patch releases
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-10-09 17:40:51 -07:00
1957d1cedf Documentation: Document unix and unixs URL schemes 2018-10-09 14:42:56 -07:00
d2a0f17b82 Merge pull request #10155 from gyuho/metrics-messages
rafthttp: probe all raft transports
2018-10-09 11:18:31 -07:00
ba606bf85e Merge pull request #10156 from gyuho/metrics-health
etcdserver: add "etcd_server_health_success/failures"
2018-10-09 00:10:57 -07:00
ac4754053d Merge pull request #10160 from etcd-io/jpbetz-patch-1
Update patch release list to reflect that 3.1 is maintained
2018-10-08 23:39:35 -07:00
0181609402 Merge pull request #10164 from jingyih/update_CHANGELOG
CHANGELOG: update from #10153
2018-10-08 18:47:54 -07:00
4a8693361a CHANGELOG: update from #10153 2018-10-08 17:15:59 -07:00
90c5968ee1 Merge pull request #10157 from gyuho/go
*: use Go 1.11.1 for testing
2018-10-08 16:35:09 -07:00
a3ae8df912 Merge pull request #10112 from gyuho/vendor
*: use Go 1.11 module for dependency management, replace "dep"
2018-10-08 16:34:51 -07:00
59dd78dde8 etcdserver: clear message in cluster version decision
Only leader can decide cluster version.
Clarify the logging that this local node is the leader.

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-10-08 16:05:10 -07:00
b046a37256 Merge pull request #10153 from funny-falcon/fix-client-mutex-lock-10111
clientv3/concurrency.Mutex.Lock() - preserve invariant
2018-10-08 15:13:52 -07:00
7a0647ceb7 Documentation: Update patch release list to reflect that 3.1 is maintained 2018-10-08 13:33:07 -07:00
7c33e3d77b docs/metrics/latest: sync with master
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-10-07 17:52:44 -07:00
d28724a530 travis.yml: update Go version to 1.11.1
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-10-07 17:39:49 -07:00
2a8dc72899 Makefile: update default Go version
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-10-07 17:39:19 -07:00
7524cc6f4c integration: add "TestMetricsHealth"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-10-07 17:25:14 -07:00
601d8b4677 etcdserver/api/etcdhttp: remove unused "HandleHealth" function
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-10-07 17:16:18 -07:00
004e04a1d1 etcdserver/api/etcdhttp: add "etcd_server_health_success/failures"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-10-07 17:15:12 -07:00
884a8bd36b etcdserver/api/rafthttp: configure "streamProber" in tests
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-10-07 03:32:05 -07:00
7b1ef37054 etcdserver/api/rafthttp: probe all Raft messages' RTT
This PR adds another probing routine to monitor the connection
for Raft message transports. Previously, we only monitored
snapshot transports.

In our production cluster, we found one TCP connection had >8-sec
latencies to a remote peer, but "etcd_network_peer_round_trip_time_seconds"
metrics shows <1-sec latency distribution, which means etcd server
was not sampling enough while such latency spikes happen
outside of snapshot pipeline connection.

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-10-07 03:28:54 -07:00
4a239070c8 etcdserver/api/rafthttp: display roundtripper name in warnings
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-10-07 03:14:42 -07:00
47cff4dfe5 etcdserver/api/rafthttp: rename to "pipelineProber"
Preliminary work to add prober to "streamRt"

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-10-07 03:13:10 -07:00
64e8b2e905 clientv3: concurrency.Mutex.Lock() - preserve invariant
Convenient invariant:
- if werr == nil then lock is supposed to be locked at the moment.

While we could not be confident in stronger invariant ('is exactly locked'),
it were inconvenient that previous code could return `werr == nil` after
Mutex.Unlock.

It could happen when ctx is canceled/timeouted exactly after waitDeletes
successfully returned werr == nil and before `<-ctx.Done()` checked.
While such situation is very rare, it is still possible.

fixes #10111
2018-10-05 14:17:32 +03:00
6976819792 Merge pull request #10148 from jingyih/add_unit_test_for_snapshot_file_integrity
clientv3: add test for snapshot status
2018-10-03 19:52:19 -07:00
87beb8336f clientv3: add test for snapshot status
Add unit test to check if we can correctly identify a corrupted snapshot
backup file.
2018-10-03 18:17:19 -07:00
2654de8a0e Merge pull request #10152 from jingyih/add_unfreed_to_goword_whitelist
words: whitelist unfreed
2018-10-03 18:16:43 -07:00
57c50b0d8c words: whitelist unfreed
whitelist keyword 'unfreed' for goword. It is from the bbolt error
message.
2018-10-03 18:12:10 -07:00
eca5f03cea Merge pull request #10149 from jingyih/fix_goword_checking_in_clientv3
clientv3: fix goword checking in config.go
2018-10-03 07:42:16 -07:00
7d57ee3427 clientv3: fix goword checking in config.go 2018-10-02 23:02:10 -07:00
bfdfaf5333 words: whitelist PermitWithoutStream
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-10-02 13:53:02 -07:00
1d1f509e98 Merge pull request #10146 from spzala/clientpermitwithoutstream
clientv3: let etcd client use all available keepalive ClientParams
2018-10-02 13:31:47 -07:00
1f5aea320a Merge pull request #10139 from DennisMao/patch-1
tools: fix building failures on Win
2018-10-02 13:30:49 -07:00
f6f375109e clientv3: let etcd client use all available keepalive ClientParams
We should allow etcd client use all of the available keepalive
client parameters as documented in this link,
https://godoc.org/google.golang.org/grpc/keepalive#ClientParameters
Currently in the etcd, by default PermitWithoutStream is set to
false, and user has no way to override it.
On the server side, we explicitely setting EnforcementPolicy
PermitWithoutStream to false and don't provide option to override it
to user but on the client side we should allow this option as
provided by the grpc.
2018-10-02 15:51:27 -04:00
b8969dea0b Merge pull request #10145 from ae6rt/issue/10142
benchmark: util.go
2018-10-02 10:45:15 -07:00
08e88c6693 Merge pull request #10063 from tschottdorf/fix-commit-pagination
raft: fix correctness bug in CommittedEntries pagination
2018-10-02 12:39:29 -04:00
95a282efb5 benchmark: util.go
allow client to setup TLS with cluster members, without the client having to offer TLS authentication itself

fixes #10142
2018-10-02 08:45:24 -07:00
051b119cd3 Merge pull request #10141 from essamhassan/9734_improve_auth_coverage
9734 improve auth coverage
2018-10-01 15:37:38 -07:00
ffbdb458a4 Auth: improve auth coverage
adds tests for uncovered auth funcs

Issue #9734
2018-10-01 10:25:38 +02:00
c74998267c *: change roadmap, future release dates
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-10-01 01:04:24 -07:00
f7dd524f6b CHANGELOG: add all missing changes from past months
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-10-01 01:02:50 -07:00
32a3a73755 tools: fix building failures on Windows
When building tools on Win,it shows `.\main.go:68:12: assignment mismatch: 2 variables but 1 values`.The reason is the return variables not match the calling from `main.go` and i try to fix it.
2018-09-29 11:17:49 +08:00
60fd69a06f Merge pull request #10138 from jingyih/update_changelog_3p3_from_pr9990
CHANGELOG-3.3: update from #9990
2018-09-28 18:08:15 -07:00
30fbcf5cc8 CHANGELOG-3.3: update from #9990 2018-09-28 17:36:08 -07:00
91fe8cbaa7 Merge pull request #10137 from jingyih/update_changelog_3p1_from_pr10109
CHANGELOG-3.1: update from #10109
2018-09-28 17:27:49 -07:00
31e2c08293 Merge pull request #10136 from jingyih/update_changelog_3p2_from_pr10109
CHANGELOG-3.2: update from #10109
2018-09-28 17:27:24 -07:00
4a3f7c6091 CHANGELOG-3.1: update from #10109 2018-09-28 17:24:41 -07:00
a249c19213 CHANGELOG-3.2: update from #10109 2018-09-28 17:19:48 -07:00
fa495d5605 Merge pull request #10134 from jingyih/update_changelog_3p4_from_pr10109
CHANGELOG-3.4: update from #10109
2018-09-28 17:16:58 -07:00
ab4703530e Merge pull request #10135 from jingyih/update_changelog_3p3_from_pr10109
CHANGELOG-3.3: update from #10109
2018-09-28 17:16:47 -07:00
fd816d071c CHANGELOG-3.3: update from #10109 2018-09-28 17:13:18 -07:00
11fc2cefc9 CHANGELOG-3.4: update from #10109 2018-09-28 16:51:29 -07:00
1a8c520979 ctlv3: fix gofmt
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-09-28 09:53:24 -07:00
a3e242d80a Merge pull request #10121 from dannysauer/etcdctl_message_fix
etcdctl: More helpful error handling in member add
2018-09-25 14:57:01 -07:00
36d227c9e5 etcdctl: Prettier error handling in member add
Maintain existing error message for not-enough-args
Add "too many args" if too many args
Add more helpful error message if v2 syntax was used

New output:
```
sauer@host:~/dev/etcd$ ./bin/etcdctl --endpoints http://localhost:5001 member add
Error: member name not provided.
sauer@host:~/dev/etcd$ ./bin/etcdctl --endpoints http://localhost:5001 member add node2 node2
Error: too many arguments
sauer@host:~/dev/etcd$ ./bin/etcdctl --endpoints http://localhost:5001 member add node2 http://localhost:6002
Error: too many arguments, did you mean "--peer-urls http://localhost:6002"
sauer@host:~/dev/etcd$ ./bin/etcdctl --endpoints http://localhost:5001 member add http://localhost:6002 node2
Error: too many arguments, did you mean "--peer-urls http://localhost:6002"
```
2018-09-25 16:50:57 -05:00
2cf4736621 Merge pull request #10117 from jingyih/improve_doc_on_etcdctl_lock
etcdctl: improve doc on etcdctl lock command
2018-09-24 15:22:13 -07:00
78d02f4229 etcdctl: improve doc on etcdctl lock command 2018-09-24 14:25:02 -07:00
fb674833c2 Merge pull request #10094 from nolouch/drop-read
server: drop read request if the leader is changed
2018-09-23 19:32:44 -07:00
12cfc5fce6 Merge pull request #10115 from hexfusion/fx_dvdoc
Documentation/dev-guide: add gRPC-gateway example of txn target VERSION syntax.
2018-09-22 23:34:31 -07:00
e935594d34 Documentation/dev-guide: add example of txn target VERSION syntax for gRPC-gateway. 2018-09-22 21:30:35 -04:00
d987caeb0d Merge pull request #10109 from jingyih/add_db_integrity_verification_to_snapshot_status
clientv3: add db integrity check in snapshot status
2018-09-21 10:42:24 -07:00
7d21cb24e9 bill-of-materials.json: regenerate
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-09-21 02:13:56 -07:00
d5967b40db scripts/updatedep: fix shellcheck errors
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-09-21 02:08:25 -07:00
67b0b0cd03 vendor: upgrade "go.uber.org/zap" to v1.9.1
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-09-21 01:51:59 -07:00
bea4f1337a go.mod: upgrade "go.uber.org/zap" to v1.9.1
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-09-21 01:51:53 -07:00
cd789fd8f6 vendor: revendor
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-09-21 01:48:10 -07:00
527ff8216d go.mod,sum: initial commit with Go 1.11 module
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-09-21 01:47:48 -07:00
ad2d18aeff scripts/updatedep: use Go 1.11 module for dependency management
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-09-21 01:47:24 -07:00
09d1426ac0 Gopkg: remove to use go module
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-09-21 01:47:04 -07:00
422f867f6b clientv3: add integrity check in snapshot status
Add snapshot file integrity check in snapshot status. If the file is
corrupted, return with error message.
2018-09-20 12:59:27 -07:00
1a3be73387 Merge pull request #10110 from zhongwencool/zhongwencool-patch-1
Documentation: add erlang client for etcd API v3
2018-09-20 12:41:33 -04:00
6a07f831d4 Documentation: add erlang client for etcd API v3 2018-09-20 23:49:48 +08:00
f32bc50765 Merge pull request #10105 from johncming/master
bugfix: use Rlock instead of Lock in raftexample.
2018-09-19 15:50:41 -07:00
b9b75f81e5 Merge pull request #10106 from petermattis/pmattis/ready-must-sync
raft: fix Ready.MustSync logic
2018-09-19 15:39:44 -07:00
66ee394527 raft: fix Ready.MustSync logic
The previous logic was erroneously setting Ready.MustSync to true when
the hard state had not changed because we were comparing an empty hard
state to the previous hard state. In combination with another misfeature
in CockroachDB (unnecessary writing of empty batches), this was causing
a steady stream of synchronous writes to disk.
2018-09-19 16:33:16 -04:00
dd6e579b84 raftexample: use Rlock instead of Lock in getsnapshot 2018-09-19 13:25:47 +08:00
ab544f2dde Merge pull request #10092 from ivuk/Documentation-fix-typo
Documentation/v2/metrics.md: Fix a typo
2018-09-18 10:32:42 -07:00
6ea54195a6 client/integration: try to fix tests 2018-09-18 01:44:57 +08:00
c15fb607f6 server: broadcast leader changed 2018-09-17 14:15:04 +08:00
c2845a3a9d Merge pull request #10097 from atlaskerr/documentation-annotate-logger
Documentation: Annotate --logger flag
2018-09-15 17:28:45 -07:00
952a4365ce Documentation: Annotate --logger flag
This commit annotates the `--logger` flag to let users know that it is
not available in versions 3.3.x or later.
2018-09-15 18:51:53 -05:00
fd5ef74b80 clientv3/integration: try to fix tests 2018-09-14 17:57:56 +08:00
f3f6427586 server: prevent blocking 2018-09-14 16:08:29 +08:00
4de27039cb server: drop read request if found leader changed 2018-09-14 15:58:35 +08:00
6ef7c5f462 Documentation/v2/metrics.md: Fix a typo
Typo fix: particlarly -> particularly
2018-09-13 21:05:32 +02:00
001bbb97cc Merge pull request #9999 from vimalk78/9377_document_election_api
clientv3/concurrency: Document Election API context parameter
2018-09-13 10:47:23 -07:00
90ecbabb7d Merge pull request #10086 from vimalk78/fix-Documentation-etcd-io
Documentation/*: change github url, import path from coreos to etcd-io
2018-09-13 10:15:53 -07:00
35fa6e13b9 clientv3/concurrency: Document Election API context parameter
fixes #9377
2018-09-13 12:15:01 +05:30
a7b1306ecf Merge pull request #10088 from ivuk/Documentation-fix-typo
Documentation/metrics.md: Fix a typo
2018-09-12 14:29:32 -07:00
09b7590c0b Documentation/metrics.md: Fix a typo
Typo fix: particlarly -> particularly
2018-09-12 23:19:21 +02:00
bda28c3ce2 Documentation/*: change github url, import path from coreos to etcd-io 2018-09-12 22:05:08 +05:30
ec5ff10436 Merge pull request #10019 from thrawn01/grpc-proxy-watch-errors
Improve watch error reporting when using grpc proxy
2018-09-10 12:54:33 -07:00
a18b467111 Merge pull request #10075 from gyuho/dash-etcd-io
Documentation/op-guide: remove "dash.etcd.io"
2018-09-06 18:11:47 -07:00
2fc06c8ec9 Documentation/op-guide: remove "dash.etcd.io"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-09-06 17:58:54 -07:00
2589353c1f Merge pull request #10074 from gyuho/raft-link
raft: fix link typo
2018-09-06 09:25:45 -07:00
c2b3c54370 raft: fix link typo
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-09-06 09:20:22 -07:00
1c80ce4b29 Merge pull request #10070 from philips/add-more-projects
Please read https://github.com/etcd-io/etcd/blob/master/CONTRIBUTING.md#contribution-flow.
2018-09-05 20:02:49 -07:00
085a5bd2f8 Documentation: add more projects 2018-09-05 19:55:31 -07:00
cf3f79a04d Merge pull request #10069 from philips/add-more-projects
Documentation: add new projects
2018-09-05 19:33:50 -07:00
16ad8b48bd Documentation: add new projects
A number of projects using etcd were missing. Add.
2018-09-05 19:30:08 -07:00
8b66718529 Merge pull request #10067 from hexfusion/fx_ddb_doc
tools/etcd-dump-db: fix iterate-bucket example.
2018-09-05 22:07:03 -04:00
d43f223e36 tools/etcd-dump-db: fix iterate-bucket example. 2018-09-05 20:41:42 -04:00
1df1ddff43 Merge pull request #10066 from mrIncompetent/use-testing-interface
Use testing.TB for integration test helpers to enable usage in benchmarks
2018-09-04 14:04:06 -07:00
2be5994f61 integration: Replace *testing.T with testing.TB
Use testing.TB for integration test helpers to enable usage in benchmarks
2018-09-04 22:34:40 +02:00
7a8ab37bfd raft: fix correctness bug in CommittedEntries pagination
In #9982, a mechanism to limit the size of `CommittedEntries` was
introduced. The way this mechanism worked was that it would load
applicable entries (passing the max size hint) and would emit a
`HardState` whose commit index was truncated to match the limitation
applied to the entries. Unfortunately, this was subtly incorrect
when the user-provided `Entries` implementation didn't exactly
match what Raft uses internally. Depending on whether a `Node` or
a `RawNode` was used, this would either lead to regressing the
HardState's commit index or outright forgetting to apply entries,
respectively.

Asking implementers to precisely match the Raft size limitation
semantics was considered but looks like a bad idea as it puts
correctness squarely in the hands of downstream users. Instead, this
PR removes the truncation of `HardState` when limiting is active
and tracks the applied index separately. This removes the old
paradigm (that the previous code tried to work around) that the
client will always apply all the way to the commit index, which
isn't true when commit entries are paginated.

See [1] for more on the discovery of this bug (CockroachDB's
implementation of `Entries` returns one more entry than Raft's when the
size limit hits).

[1]: https://github.com/cockroachdb/cockroach/issues/28918#issuecomment-418174448
2018-09-04 14:52:23 +02:00
6143c135bd Merge pull request #10060 from vimalk78/go.etcd.io-move-minor-changes
*: path changes for moving to github/etcd-io/etcd
2018-09-03 13:48:01 -07:00
bcde798fdd *: path changes for moving to github/etcd-io/etcd 2018-09-03 21:57:23 +05:30
ca7dc4ff26 Merge pull request #10058 from vimalk78/9882-contrib-queue-memleak
contrib/recipes/watch.go : cancel() the watch after desired watch event
2018-09-01 08:34:29 -07:00
9bad6fd442 contrib/recipes/watch.go : cancel() the watch after desired watch event
fixes #9882
2018-09-01 18:18:24 +05:30
206b012ed4 Merge pull request #10057 from jglick/patch-1
Use IPA notation for pronunciation of etcd
2018-08-31 07:10:53 -07:00
abd1b34ba6 docs: fix pronunciation notation 2018-08-31 07:09:46 -07:00
484f622034 Merge pull request #10054 from vcaesar/docs-pr
client,clientv3: update client docs to "go.etcd.io"
2018-08-30 16:44:16 -07:00
fc7ef659cc client,clientv3: update client docs to "go.etcd.io" 2018-08-30 19:26:12 -04:00
b6e6de54e9 Merge pull request #10053 from ueokande/fix-clientv3-doc
clientv3/doc: Fix code example
2018-08-30 15:28:33 -07:00
e9afd51f47 clientv3/doc: Fix code example 2018-08-30 22:10:58 +00:00
d627719881 Merge pull request #10050 from gyuho/bbolt
vendor: use "go.etcd.io/bbolt" v1.3.1-etcd.7
2018-08-30 10:20:53 -07:00
34fcabab55 CHANGELOG: add all recent changes
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-29 14:53:41 -07:00
572d486c5b *: update github links
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-29 14:28:36 -07:00
e235cd3302 Documentation: update github links
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-29 14:28:00 -07:00
474cc300c9 bill-of-materials: regenerate with "go.etcd.io/bbolt"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-29 13:33:05 -07:00
fa57f7fbc7 vendor: use "go.etcd.io/bbolt" v1.3.1-etcd.7
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-29 12:39:59 -07:00
790cc3cdd6 Gopkg.lock: use "go.etcd.io/bbolt" v1.3.1-etcd.7
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-29 12:34:22 -07:00
8db439d693 *: use "go.etcd.io/bbolt"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-29 12:31:28 -07:00
5adbc231f2 mvcc/backend: use "go.etcd.io/bbolt"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-29 12:31:04 -07:00
1a282a72be Merge pull request #10045 from gyuho/go-1.11
*: use Go 1.11 for tests
2018-08-28 23:02:43 -07:00
839f202195 clientv3/integration: fix race condition from closing channel
Go 1.11 now marks len(channel) over being-closed channel
as racey operation, fix tests by receiving from channel first
and then check the length of channel.

```
WARNING: DATA RACE
Write at 0x00c000e872c0 by goroutine 198:
  runtime.closechan()
      /usr/local/go/src/runtime/chan.go:327 +0x0
  go.etcd.io/etcd/clientv3.(*lessor).closeRequireLeader()
      /Users/leegyuho/go/src/go.etcd.io/etcd/clientv3/lease.go:379 +0x748
  go.etcd.io/etcd/clientv3.(*lessor).recvKeepAliveLoop()
      /Users/leegyuho/go/src/go.etcd.io/etcd/clientv3/lease.go:455 +0x3a5

Previous read at 0x00c000e872c0 by goroutine 27:
  go.etcd.io/etcd/clientv3/integration.TestLeaseWithRequireLeader()
      /Users/leegyuho/go/src/go.etcd.io/etcd/clientv3/integration/lease_test.go:828 +0x810
  testing.tRunner()
      /usr/local/go/src/testing/testing.go:827 +0x162
```

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 22:27:11 -07:00
07fcc26799 *: fix gofmt warnings with Go 1.11
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 21:45:24 -07:00
8560221091 etcdserver: fix gofmt warnings with Go 1.11
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 21:45:12 -07:00
d24acedb5e travis.yml: bump up to Go 1.11
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 21:29:01 -07:00
a0cc409352 Makefile: bump up to Go 1.11
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 21:28:41 -07:00
e52b8611ea docs: update links to "go.etcd.io"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 20:54:35 -07:00
02b94fcc0d test: fix "license-bill-of-materials" command
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 20:53:28 -07:00
e8b940f268 Merge pull request #10044 from gyuho/rename-import-paths
*: rename import paths to "go.etcd.io/etcd"
2018-08-28 19:44:27 -07:00
8f3900ffe1 bill-of-materials.json: regenerate
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 18:43:18 -07:00
c0f6597c02 contrib/systemd: remove v2 service files
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 18:35:01 -07:00
0ef9ef3c74 *: rerun "gofmt"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 18:25:39 -07:00
379a1869c5 tests/Dockerfile: update import path to "go.etcd.io/etcd"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 18:07:41 -07:00
2774bb3212 Revert "*: regenerate proto"
This reverts commit 299178ceb9.
2018-08-28 17:56:14 -07:00
f2f7fc23f7 *: update github.com links
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 17:47:56 -07:00
299178ceb9 *: regenerate proto
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 17:47:55 -07:00
f3af3d83c2 Makefile: update import paths to "go.etcd.io"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 17:47:55 -07:00
198a931a0b MAINTAINERS: update import path to "go.etcd.io"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 17:47:55 -07:00
a8a3efd27a scripts: update import paths in "go.etcd.io/etcd"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 17:47:55 -07:00
c69c044026 Documentation: update import paths in "dl_build.md"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 17:47:55 -07:00
7300bfdd1d build.ps1: update import paths to "go.etcd.io/etcd"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 17:47:55 -07:00
d37f1521b7 *: update import paths to "go.etcd.io/etcd"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 17:47:55 -07:00
2ac04381a2 clientv3: update Go import paths to "go.etcd.io"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 17:47:55 -07:00
fced933294 auth: update Go import paths to "go.etcd.io"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 17:47:55 -07:00
038fd844ac wal: update Go import paths to "go.etcd.io/etcd"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 17:47:55 -07:00
d537b328cb mvcc: update import paths "go.etcd.io/etcd"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 17:47:55 -07:00
1399bc69ce etcdserver: update import paths to "go.etcd.io/etcd"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 17:47:55 -07:00
bb60f8ab1d raft: change import paths to "go.etcd.io/etcd"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 17:47:52 -07:00
47c04b959d build: upgrade local GOPATH
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 17:13:56 -07:00
591fdac832 travis.yml: update "go_import_path" to "go.etcd.io"
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 16:59:45 -07:00
6c3a12f4c9 README: fix travis link
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-27 20:03:17 -07:00
548f715271 README: update repo URLs
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-27 19:19:36 -07:00
af85949b41 Merge pull request #10024 from gyuho/became-inactive
etcdserver/api/rafthttp: clarify "became inactive" warning
2018-08-24 22:12:16 -04:00
24ee22ab48 Merge pull request #10026 from gyuho/read-index
etcdserver: clarify read index wait timeout warnings
2018-08-24 22:11:58 -04:00
66c2665f66 Merge pull request #10037 from spzala/etcdctlrpc
etcdctl: fix small inconsistency with RPC ref
2018-08-24 18:51:55 -07:00
9ecc727dc8 Merge pull request #10036 from louis-paul/clientv3-error-handling-godoc
clientv3/doc: Update error handling godoc
2018-08-23 21:03:16 -04:00
a3c09ee8e9 clientv3/doc: Improve error handling comment 2018-08-23 19:47:27 +02:00
b4a670b571 etcdctl: fix small inconsistency with RPC
Several RPC references in README with memberlist only hyperlinked,
and since it's linked with line numbers it's not pointing to a
desired ref now. Remove the link to make it consistent and correct.
2018-08-23 10:48:32 -04:00
2ee4525cd2 clientv3/doc: Update error handling godoc
0c5bcd5d80 updated error handling for
`ErrEmptyKey` but missed the godoc.
2018-08-23 13:37:39 +02:00
a9fcc82e4d Merge pull request #10033 from zhenghc/master
Documentation: add Transwarp to production user
2018-08-23 07:17:06 -04:00
98d57b278a Documentation: add Transwarp to production user 2018-08-23 10:19:02 +08:00
bdc333359b Merge pull request #10031 from zhaohaidao/master
raft: fix typo in test
2018-08-22 12:39:14 -04:00
6ee880eb5b raft: fix typo in test 2018-08-22 23:48:47 +08:00
2921ab670f Merge pull request #10028 from spzala/geterror
etcdctl: fix get command error when no arg provided
2018-08-20 12:56:41 -07:00
7f001c1f00 etcdctl: fix get command error when no arg provided
The current error is incorrect. Providing a similar one to the del
command.
2018-08-19 19:54:18 -04:00
0a25f49d61 Merge pull request #10021 from jingyih/add_log_level_checking_in_logging_interceptor
etcdserver/api/v3rpc/interceptor: add log level checking
2018-08-17 18:08:01 -07:00
38711761a1 etcdserver: clarify read index wait timeout warnings
"read index" doesn't tell much about the root cause.
Most likely, the local follower node is having slow
network, thus timing out waiting to receive read
index response from leader.

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-17 17:59:41 -07:00
156ff6461d etcdserver/api/rafthttp: clarify "became inactive" warning
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-17 17:45:53 -07:00
8d85259b56 etcdserver/api/v3rpc/interceptor: add log level checking
Check log level before generating and writing log info.
2018-08-17 16:12:05 -07:00
eb9c8d3c2f clientv3: return reason to user when server cancels watch
This change allows Watch users to retrieve the cancel reason when a
watch is canceled by the server. Additionally WatchResponses with
closeErr set now have Canceled set true which is in line with the
documentation for the Canceled field.
2018-08-16 23:11:02 -05:00
f0e6c10aba grpcproxy: return error to client during watch create
Now returns errors from checkPermissionForWatch() via the CancelReason
field. This allows clients to understand why the watch was canceled.
Additionally, this change protects a watch from starting and that
otherwise might hang indefinitely.
2018-08-16 23:10:02 -05:00
6890a9e633 Merge pull request #10018 from ymmt2005/fix_sample_conf
sample: correct directive name
2018-08-16 07:23:56 -07:00
73a8bf1fb1 sample: correct directive name
Both "client-transport-security" and "peer-transport-security"
is mapped to Go struct embed.securityConfig.

Field for client certificate authentication is tagged as
"client-cert-auth", but it is misspelled in "peer-transport-security"
section.
2018-08-16 22:25:16 +09:00
2a6bc7d113 Merge pull request #9997 from gyuho/snap-metrics
*: add v3 snapshot metrics (fsync, network)
2018-08-15 14:16:29 -07:00
6f4c509ad8 etcdserver/api/rafthttp: add v3 snapshot send/receive metrics
Distribution would be:
0.1 second or more
...
25.6 seconds or more
51.2 seconds or more

etcd_network_snapshot_send_success
etcd_network_snapshot_send_failures
etcd_network_snapshot_send_total_duration_seconds
etcd_network_snapshot_receive_success
etcd_network_snapshot_receive_failures
etcd_network_snapshot_receive_total_duration_seconds

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-15 12:56:50 -07:00
c392cd20cf etcdserver/api/snap: add v3 snapshot fsync metrics
etcd_snap_db_fsync_duration_seconds_count
etcd_snap_db_save_total_duration_seconds_bucket

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-15 12:56:44 -07:00
e72730ab20 Merge pull request #10007 from ringtail/master
Document: add lucas to integrations.md
2018-08-15 00:01:14 -07:00
acf176ac95 Document: add lucas to integrations.md
add lucas to integrations.md
2018-08-15 14:58:06 +08:00
3c89938adf Merge pull request #9866 from spzala/checkhashkv
Tools: new benchmark for the hashkv performance
2018-08-13 19:20:42 -07:00
18f85684da tools/benchmark: clean up formatting
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-13 19:19:46 -07:00
f87b566248 Merge pull request #9998 from gyuho/member-id
etcdserver: add "etcd_server_id" metric
2018-08-13 00:39:48 -07:00
eb6738053b etcdserver: add "etcd_server_id" metric
```
etcd_server_id{server_id="8e9e05c52164694d"} 1
```

Useful for automating membership change operations,
no need to run "endpoint status" or "member list"
command to get member IDs.

Also, useful for "etcd_network" metrics with "To/From" labels.

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-13 00:39:18 -07:00
3a037744de Merge pull request #9990 from jingyih/dev_workload_analysis_tool
etcdserver: add grpc interceptor to log info on incoming request to etcdserver
2018-08-10 23:15:04 -07:00
11dd0b583b Merge pull request #9982 from bdarnell/pagination
raft: Introduce CommittedEntries pagination
2018-08-11 09:12:46 +08:00
368010d8a3 etcdserver: code clean up
Code clean up in interceptor.go
2018-08-10 16:29:42 -07:00
59e084d37b Merge pull request #9991 from dlipovetsky/snapshot-file-permission-release-note
CHANGELOG: Add 3.4 changelog entry for snapshot file permissions change
2018-08-10 14:07:57 -07:00
f52a990340 CHANGELOG: Add 3.4 changelog entries for snapshot file permissions change 2018-08-10 13:37:25 -07:00
30662940f4 vendor: add go-grpc-middleware
Rebased to master PR #9994.  Fixed a Go format issue in
v3rpc/interceptor.go.  Updated vendor to include go-grpc-middleware.
2018-08-10 13:15:35 -07:00
40b66d1f18 Etcdctl: benchmark for hashkv performance
The benchmark as a sub command of put when provided will fetch hashkv and checks
the time taken to get it.

Fixed # 8910

Provider a way to etcd user to check how long it takes to get
hashkv in user enviornment. The command ouput will provide time taken
to get hashkv along with db file size.
2018-08-10 15:53:41 -04:00
dc01734c6b etcdserver: add grpc interceptor to log info on incoming requests to
etcd server

To improve debuggability of etcd v3. Added a grpc interceptor to log
info on incoming requests to etcd server. The log output includes
remote client info, request content (with value field redacted), request
handling latency, response size, etc. Uses zap logger if available,
otherwise uses capnslog.

Also did some clean up on the chaining of grpc interceptors on server
side.
2018-08-10 11:01:07 -07:00
457a96d931 Merge pull request #9994 from gyuho/grpc
vendor: upgrade google.golang.org/grpc to v1.14.0
2018-08-10 06:36:33 -07:00
7e2e71ce7e words: whitelist "ErrConnClosing"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-08-09 20:01:35 -07:00
6c6bc3a200 vendor: upgrade google.golang.org/grpc to v1.14.0
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-08-09 19:36:35 -07:00
d726baf02c Gopkg.lock: regenerate with gRPC v1.14
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-08-09 19:36:18 -07:00
aeb418b815 clientv3/integration: remove "transport.ErrConnClosing" match
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-08-09 19:27:37 -07:00
4fa58fc062 Merge pull request #9993 from philips/dash-force-new-cluster
Documentation: v2: add -- for force new cluster
2018-08-09 10:47:01 -07:00
d05d522398 Documentation: v2: add -- for force new cluster
this doc is inconsistent between --force-new-cluster and
-force-new-cluster. Use the latter as it is the preferred option in
etcd.
2018-08-09 10:13:27 -07:00
d984482d1b README: warn about repository transfer
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-08-08 14:08:37 -07:00
2fe491851e Merge pull request #9977 from dlipovetsky/etcdctl-snapshot-permissions
clientv3: make saved snapshot readable by user only
2018-08-08 16:34:23 -04:00
ddde272fb0 clientv3: Make saved snapshot readable by user only
Fixes #9976
2018-08-08 12:46:17 -07:00
6002bf37ba Merge pull request #9985 from bdarnell/flow-control
raft: Make flow control more aggressive
2018-08-08 10:11:54 -07:00
a9e7c1e11f raft: Make flow control more aggressive
We allow multiple in-flight append messages, but prior to this change
the only way we'd ever send them is if there is a steady stream of new
proposals. Catching up a follower that is far behind would be
unnecessarily slow (this is exacerbated by a quirk of CockroachDB's
use of raft which limits our ability to catch up via snapshot in some
cases).

See cockroachdb/cockroach#27983
2018-08-08 11:10:54 -04:00
6c9a853f04 CHANGELOG: add links to "List of metrics"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-08-08 07:22:18 -07:00
fdab22c9c6 Merge pull request #9979 from gyuho/20180802-vendor-grpc
vendor: upgrade gRPC to v1.14.0
2018-08-07 14:35:28 -07:00
0a670b7c9b raft: Introduce CommittedEntries pagination
The MaxSizePerMsg setting is now used to limit the size of
Ready.CommittedEntries. This prevents out-of-memory errors if the raft
log has become very large and commits all at once.
2018-08-07 12:54:34 -04:00
9ad8f4c350 Merge pull request #9983 from gyuho/20180806-clientv3-docs
docs: update gRPC, add feature comparison
2018-08-07 04:28:07 -07:00
3599938cf0 Merge pull request #9984 from gyuho/20180806-metrics-all
docs,tools/etcd-dump-metrics: automate metrics documentation
2018-08-07 04:27:25 -07:00
b42a9ce20e MAINTAINERS: change gyuho's email to AWS
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-08-06 20:54:41 -07:00
bc14deecca raft: Add a test for MaxSizePerMsg feature
Ensure that this limit is respected when generating MsgApp messages.
2018-08-06 16:52:16 -04:00
902893f231 docs: add all v3.1 metrics
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-08-06 10:02:22 -07:00
2c1c191566 docs: add all v3.2 metrics
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-08-06 09:54:18 -07:00
e83d6c2234 docs: add all v3.3 metrics
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-08-06 09:31:53 -07:00
cf5dc560c8 tools/etcd-dump-metrics: automate metrics fetch from release binaries
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-08-06 09:30:52 -07:00
f457aafaf1 docs: move metrics files to sub-directory
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-08-06 09:29:52 -07:00
9d1114f0db docs: update monitoring index
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-08-06 09:28:59 -07:00
0d189c661a docs: add "Client Feature Matrix"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-08-06 09:21:47 -07:00
fd000ae7ec docs: update to "grpc1.14"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-08-06 09:21:33 -07:00
29590c9ab2 docs/img: update client architecture images
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-08-06 09:20:58 -07:00
981644af7d scripts/updatedep: remove "dep prune" command
"Pruning is now performed automatically by dep ensure."

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-08-02 08:06:27 -07:00
612266beaf vendor: upgrade gRPC to v1.14.0
https://github.com/grpc/grpc-go/releases/tag/v1.14.0

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-08-02 07:59:52 -07:00
93be31d43a Merge pull request #9968 from Quasilyte/quasilyte/fixCaseOrder
etcdctl/ctlv2/command: fix type switch case order
2018-07-29 11:38:31 -07:00
fa20b61c9f Merge pull request #9970 from Quasilyte/quasilyte/namedConst
contrib/recipes: use clientv3.NoLease instead of 0
2018-07-29 11:37:39 -07:00
d1f49d4a40 Merge pull request #9969 from Quasilyte/quasilyte/boolExprSimplify
etcdserver/api/v2discovery: simplify !(x == y) to x != y
2018-07-28 15:47:05 -07:00
1de9e1b00d contrib/recipes: use clientv3.NoLease instead of 0
If we have a named const, it's more readable to use that.

Found using https://go-critic.github.io/overview#namedConst-ref
2018-07-28 23:56:45 +03:00
d0f800c930 etcdserver/api/v2discovery: simplify !(x == y) to x != y
Found using https://go-critic.github.io/overview#boolExprSimplify-ref
2018-07-28 23:47:17 +03:00
3da90b6d3e etcdctl/ctlv2/command: fix type switch case order
Since syscall.Errno implements net.Error and all cases
are matched sequentially, it's a mistake to put syscall.Errno
case after net.Error since it will never be executed.

This change swaps syscall.Errno case with net.Error
to give that clause chance to execute.
2018-07-28 23:33:13 +03:00
90a2fbe50e Merge pull request #9966 from gyuho/maintainer
MAINTAINERS: add Joe Betz
2018-07-27 17:34:06 -07:00
df2190e382 MAINTAINERS: add Joe Betz
Joe has been helping fix lots of bugs and involved
in critical feature design/implementation,
plus leading patch release process for over a year.

Thanks for your excellent work.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-27 17:03:24 -07:00
f337e1b363 Merge pull request #9954 from spzala/etcdctlput
etcdctl: value should not be provided after \r
2018-07-27 13:50:49 -07:00
d16c8b3880 Merge pull request #8689 from nvanbenschoten/nvanbenschoten/commit
raft: don't allocate slice and sort on every commit
2018-07-27 13:50:04 -07:00
1c382a4868 Merge pull request #9945 from jpbetz/balancer-maintanance-api-fix
clientv3: Fix maintenance APIs to directly dial grpc endpoints directly
2018-07-27 10:15:25 -07:00
67bcf28c4e clientv3: Use passthrough resolver for direct endpoint dialing 2018-07-27 10:15:02 -07:00
9431532730 raftexample: Fix publish snapshot error message
The error message is different to the condition it checks for. This PR
modifies the error message accordingly.

Closes #9717.

Signed-off-by: Kostas Christidis <kostas@christidis.io>
2018-07-26 11:14:15 -04:00
0a415cf0d6 raft: dont allocate slice and sort on every commit 2018-07-25 23:42:16 -04:00
c5bef4f731 CHANGELOG-3.3: update date
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-24 11:12:21 -07:00
54d2b327f6 Merge pull request #9961 from jpbetz/changelog-checkpoints
CHANGELOG: Add 3.4 changelog entry for lease checkpointing feature
2018-07-24 11:11:36 -07:00
9661648869 Merge pull request #9960 from jpbetz/changelog-3.1.19-3.2.24
CHANGELOG: Record CHANGELOG release dates for 3.1.19 and 3.2.24
2018-07-24 11:11:15 -07:00
a2ecd6b676 clientv3: Simplify TestDialTLSNoConfig now that dial with grpc.WithBlock correctly results in a client timeout error 2018-07-24 10:45:03 -07:00
29ef8ec899 CHANGELOG: Add 3.4 changelog entry for lease checkpointing feature 2018-07-24 10:37:01 -07:00
703c1b9175 CHANGELOG: Record CHANGELOG release dates for 3.1.19 and 3.2.24 2018-07-24 10:31:06 -07:00
dd440690c5 Merge pull request #9950 from gyuho/doc-metrics
docs: automate metrics list documentation
2018-07-24 10:23:55 -07:00
69ae028039 Merge pull request #9948 from wenjiaswe/changelog47892
CHANGELOG-3.2: update from #7892
2018-07-24 09:56:01 -07:00
7b71022987 CHANGELOG-3.2: update from #7892 2018-07-24 09:42:42 -07:00
750b87d622 Merge pull request #9924 from jpbetz/persist-lease-deadline
lease: Persist remainingTTL to prevent indefinite auto-renewal of long lived leases
2018-07-24 09:39:57 -07:00
6e0c0d0b9a CHANGELOG: track clientv3 fix, etcd_server_go_version
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-23 16:30:33 -07:00
d1de41efe1 lease: Add unit and integration tests for lease checkpointing 2018-07-23 16:12:42 -07:00
2edb954bce lease: Checkpoint lease TTLs to prevent indefinite auto-renewal of long lived leases 2018-07-23 16:12:34 -07:00
3f725e190e Merge pull request #9957 from gyuho/go-version
etcdserver: add "etcd_server_go_version" metric
2018-07-23 12:50:20 -07:00
b3b06a862a clientv3: Fix maintenance APIs to directly dial grpc endpoints correctly. 2018-07-23 11:20:15 -07:00
b43fdbcfa4 ETCDCTL: value can not be provided after \r
Document that etcdctl do not support providing value after using \r and that multiple lines
or spaces requires to be double-quoted.

Fixed #9937
2018-07-23 14:11:40 -04:00
643d791a11 etcdserver: add "etcd_server_go_version" metric
Currently, one has to look at server logs manually,
to see what Go version was used to build etcd server.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-23 09:15:22 -07:00
0458c5d54b Merge pull request #9951 from gyuho/revive
*: integrate https://github.com/mgechev/revive with fmt tests
2018-07-23 06:39:33 -07:00
e4e347133e Merge pull request #9952 from gyuho/fix-keepalive
clientv3: fix keepalive send interval when response queue is full
2018-07-22 22:20:23 -07:00
e93fb56037 clientv3: clean up variables, add response dropping warning
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-22 17:59:38 -07:00
f3385418bb clientv3: fix keepalive send interval when response queue is full
client should update next keepalive send time
even when lease keepalive response queue becomes full.

Otherwise, client sends keepalive request every 500ms
regardless of TTL when the send is only expected to happen
with the interval of TTL / 3 at minimum.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-22 17:59:32 -07:00
752dd3a0bf docs: generate metrics-*
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-22 00:34:26 -07:00
ac936365bb tools/etcd-dump-metrics: initial commit
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-22 00:34:22 -07:00
bd6c6cf9e2 docs: clean up FAQs, add initial lists of metrics
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-22 00:15:53 -07:00
42bef8460c *: clean up code format
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-21 16:34:56 -07:00
6ab3cc0a2e mvcc: clean up code format
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-21 16:03:16 -07:00
51af6a062f etcdserver: clean up code format
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-21 16:03:16 -07:00
90a5da18cf clientv3: clean up code format
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-21 16:03:12 -07:00
15a81f2d5c pkg: clean up code format
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-21 15:49:58 -07:00
6fabe6d5ab wal: clean up code format
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-21 15:49:58 -07:00
1c04820026 tests: integrate "github.com/mgechev/revive" to fmt tests
https://github.com/mgechev/revive

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-21 15:49:53 -07:00
104b6a3424 docs: fix README
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-20 15:32:11 -07:00
e4faaf7e29 Merge pull request #9947 from gyuho/docs-docs
docs: add initial operate guide structure
2018-07-20 15:29:43 -07:00
88a42d91b8 Merge pull request #9946 from gyuho/log-log
etcdserver: support zap.Logger in FD monitoring routine
2018-07-20 15:29:28 -07:00
9f02c5836d docs: add initial operate guide structure
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-20 15:27:39 -07:00
40034c45ab docs/README: document how to build locally
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-20 15:16:52 -07:00
57ec2226cc etcdserver: support zap.Logger in FD monitoring routine
Keep replacing capnslog

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-20 14:59:03 -07:00
98f54ec3f5 Merge pull request #9943 from wenjiaswe/changelog49942
CHANGELOG-3.2: update from #9942
2018-07-20 14:33:09 -07:00
fa42a1f7fb CHANGELOG-3.2: update from #9942 2018-07-20 13:52:15 -07:00
938310760e Merge pull request #9941 from wenjiaswe/changelog4metrics
CHANGELOG-3.3: update from #9940
2018-07-20 09:36:04 -07:00
a47f0a0dba CHANGELOG-3.3: update from #9940 2018-07-20 09:31:03 -07:00
e9f710e742 Merge pull request #9934 from mbrannock/master
Eliminate direct use of the gRPC transport package
2018-07-19 13:48:40 -07:00
520bd5084e integration, functional: Eliminate direct use of gRPC transport pkg
gRPC has moved the transport package to an internal-only directory. This
eliminates direct use of the transport package in the stress test in
favor of the error code from gRPC that represents a connection problem.

https://godoc.org/google.golang.org/grpc/internal/transport is the new
location for the package, which says it's not intended to be imported
directly. Instead, the maintainers suggested to use the code Unavailable
to detect a connection problem.

This change slightly reorganizes the stresser test error handling.
2018-07-19 10:55:57 -07:00
f76cf959b2 Makefile: remove Go 1.9.7
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-19 10:23:44 -07:00
ac4d713506 CHANGELOG-3.3: add "Go 1.10.3" change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-19 10:23:30 -07:00
f830013615 Merge pull request #9936 from jyparketc/fix_typo_in_readme
Documentation/etcd-mixin: fix typo in README.md
2018-07-19 06:12:16 -07:00
bd74c10fdb Documentation/etcd-mixin: fix typo in README.md
Promethues -> Prometheus
2018-07-19 19:10:46 +09:00
eef61324ed Merge pull request #9929 from jolson490/remove-http-alerts_from-mixin
Removing http alerts (that were specific to etcd v2) from mixin.libsonnet
2018-07-18 17:36:16 -07:00
3826107af6 Documentation: removing alerts that were specific to etcd v2 2018-07-18 12:31:46 -04:00
bbe2d777b1 lease: Add LessorConfig and wire zap logger into Lessor 2018-07-17 13:10:34 -07:00
75ac18cd2d lease: Add and lease checkpoint protobuf types 2018-07-17 11:54:51 -07:00
688043a7c2 Merge pull request #9916 from gyuho/upgrade-doc-index
Documentation/upgrades: update upgrade doc indexes
2018-07-11 06:59:41 -07:00
d9cde03fe0 Documentation/upgrades: update upgrade doc indexes
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-10 15:30:29 -07:00
db102de675 Merge pull request #9914 from gyuho/protoc
*: require protoc 3.6.0
2018-07-10 10:30:50 -07:00
befc5cbb59 functional/scripts: use protoc 3.6.0
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-10 10:17:10 -07:00
453db62d84 scripts/genproto: use protoc 3.6.0
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-10 10:16:37 -07:00
8f84f72df0 Merge pull request #9913 from gyuho/log
*: combine all configuration print logs to embed.StartEtcd
2018-07-09 13:21:56 -07:00
3ac4d208ac embed: combine all info-print functions
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-09 12:32:47 -07:00
60c63fa34e etcdmain: remove version/system info print methods
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-09 11:26:53 -07:00
ddf45cb958 etcdserver: remove configuration print methods
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-09 11:26:23 -07:00
e23853a9ed Merge pull request #9910 from Cjen1/master
benchmark: Create README.md
2018-07-09 09:39:13 -07:00
9d96a24de1 benchmark: Create README.md
When trying to run the benchmark I found little documentation on how to
run the benchmark.
2018-07-09 10:37:53 +01:00
f7b3017752 Merge pull request #9467 from ouqiang/patch-1
Documentation/integrations: add PHP v3 client
2018-07-06 10:29:58 -07:00
dbccfe06fb clientv3/balancer: debugging balancer test failures
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-05 12:18:13 -07:00
3e7d49079c Merge pull request #9906 from gyuho/dockerfile
*: revert back to ubuntu test image, fix "unconvert" linter warnings
2018-07-05 11:58:30 -07:00
7e542078bc clientv3/balancer: skip "TestRoundRobinBalancedResolvableFailoverFromServerFail" for now
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-05 11:57:45 -07:00
6a16c7974a tests/e2e: handle cipher suite mismatch error in ubuntu
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-05 10:50:07 -07:00
e388a4a1a1 mvcc: simplify increment "rrev"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-05 10:28:10 -07:00
7aaaa0d82f raft: do not use underscore in var name
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-05 10:25:47 -07:00
9934034bb1 etcdserver: remove unnecessary if-statement
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-05 10:25:00 -07:00
0249c39cb3 raft: remove unnecessary type conversion
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-05 10:12:45 -07:00
b01d560be0 tests/e2e: remove unnessary type conversion
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-05 10:10:30 -07:00
bc18474029 mvcc: remove unnecessary type conversion
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-05 10:09:53 -07:00
e714dd01b3 etcdserver: remove unnecessary type conversion
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-05 10:08:56 -07:00
e1a978c3ce tests/Dockerfile: revert back to ubuntu
Fedora is too big (550 MB),
while Ubuntu image is only 350 MB.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-05 10:07:11 -07:00
0a31a2bac2 CHANGELOG: add Go versions, Watcher.RequestProgress
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-05 09:43:28 -07:00
1e5c381664 Merge pull request #9903 from brancz/remove-http-alerts
Documentation/op-guide: Remove HTTP alerts
2018-07-04 08:43:14 -07:00
67ecea9709 Documentation/op-guide: Remove HTTP alerts
The HTTP metrics have been deprecated and removed. In other places all
the HTTP related alerts have already been removed, this is just a clean
up of the remaining places these were left.
2018-07-04 09:04:47 +02:00
e4425ee79f CHANGELOG: add monitoring/metrics changes
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-03 14:59:44 -07:00
3e1d635dbe CHANGELOG-3.4: clarify "etcd_mvcc_db_total_size_in_bytes" rename change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-03 13:46:46 -07:00
4588f89c7a CHANGELOG: backport quota size limit metrics
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-03 13:31:52 -07:00
0aed7e0026 CHANGELOG: clarify debugging metrics, backend quota metrics
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-03 13:18:44 -07:00
1168a92491 CHANGELOG: update July patch releases
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-03 13:05:36 -07:00
dc93262332 CHANGELOG: add "etcd_server_slow_read_indexes_total"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-03 12:50:12 -07:00
495eb2f230 Merge pull request #9897 from gyuho/read-index
etcdserver: clarify read index warnings, add metrics
2018-07-03 11:31:02 -07:00
37000cc4b8 etcdserver: add "etcd_server_slow_read_indexes_total"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-02 12:58:35 -07:00
4733a1db5c etcdserver: clarify read index warnings
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-02 12:53:35 -07:00
308f59058c Merge pull request #9896 from xmudrii/grpc-changelog
Update CHANGELOG-3.2 to include changes from #9894
2018-07-02 11:07:35 -07:00
21d7f14e4c CHANGELOG: update CHANGELOG-3.2 to include TLS gRPC Proxy changes 2018-07-02 20:00:20 +02:00
9782ba91a8 Merge pull request #9891 from mitake/maintainers
MAINTAINERS: update @mitake's email address
2018-06-28 22:38:36 -07:00
c15b674d7a MAINTAINERS: update @mitake's email address 2018-06-29 14:25:29 +09:00
902541c038 docs/faq: remove "you"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-28 22:15:15 -07:00
4df18a7316 Merge pull request #9869 from jpbetz/progress
*: Add progress notify request watch request
2018-06-28 10:46:01 -07:00
4b51b6de49 *: Add progress notify request watch request 2018-06-27 16:46:13 -07:00
b56fc94829 Merge pull request #9889 from gyuho/doc-faq
docs: add "FAQs"
2018-06-27 10:58:21 -07:00
cd6100ca30 docs: add "FAQs"
Copied from https://github.com/coreos/etcd/blob/master/Documentation/faq.md.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-27 10:56:06 -07:00
54e2511b25 Merge pull request #9883 from joelegasse/jwt
auth: Support all JWT algorithms
2018-06-27 17:12:56 +09:00
eb0a10da8a Merge pull request #9887 from bdarnell/become-leader
raft: Really avoid scanning raft log in becomeLeader
2018-06-26 13:31:08 -07:00
67488a7c27 CHANGELOG-3.4: JWT signing methods 2018-06-26 16:31:01 -04:00
a6ddb51c8a auth: Support all JWT algorithms
This change adds support to etcd for all of the JWT algorithms included
in the underlying JWT library.
2018-06-26 16:31:01 -04:00
61354ff8ed Merge pull request #9886 from zultron/patch-1
clustering.md:  SRV records in DNS SAN for TLS
2018-06-26 13:02:45 -07:00
20422c5b4d raft: Really avoid scanning raft log in becomeLeader
I meant to do this in #9073, but sent the PR before it was finished.
The last log index is known directly; there is no need to fetch any
entries here.
2018-06-26 15:29:51 -04:00
b51d4a3d06 clustering.md: SRV records in DNS SAN for TLS
Using SRV discovery with TLS, the SRV record must be in the DNS SAN or clustering will fail.

This is a new requirement and may cause mysterious failures when upgrading from 3.1 to 3.2.  I was only able to fix this in our configuration after reading through #8445; and now I understand the problem it's clear the docs have a hole here.
2018-06-26 11:51:58 -05:00
8f6348a97d docs: use gRPC v1.13.0
TODO: update images

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-22 10:58:04 -07:00
66ce483bcb CHANGELOG-3.4: use gRPC v1.13.0
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-22 10:57:32 -07:00
5e1cd9d804 Merge pull request #9876 from gyuho/grpc
vendor: upgrade gRPC v1.13.0
2018-06-22 10:52:39 -07:00
c65fd7d7ef vendor: upgrade gRPC v1.13.0
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-21 13:46:40 -07:00
acf75ddc5b Merge pull request #9870 from raoofm/patch-14
docs: mirror_maker, rm readOnly, add uni-directional
2018-06-21 13:36:13 -07:00
053810b0b6 docs: mirror_maker, rm readOnly, add uni-directional
mirror_maker doc mentioned "Data under the destination cluster’s mirroring prefix should be treated as read only."

To avoid confusion, read only is being removed and a clear statement mentions that the updated values at destination wont be replicated from destination to origin.

wont -> won't
2018-06-21 16:34:30 -04:00
7648841bad Merge pull request #9872 from gyuho/watch-clientv3
clientv3: clarify "WithRequireLeader" for network partition
2018-06-20 10:46:23 -07:00
11ead62b9d clientv3: clarify "WithRequireLeader" for network partition
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-20 10:28:41 -07:00
82db651474 Merge pull request #9868 from wenjiaswe/minorchange
etcd-dump-logs: minor editting in README.md
2018-06-19 15:50:05 -07:00
7e0ae96c6a etcd-dump-logs: minor editting in README.md 2018-06-19 15:37:04 -07:00
897c055940 Merge pull request #9865 from gyuho/aaa
tests/e2e: do not run cipher suite tests for gRPC proxy
2018-06-19 13:00:33 -07:00
08474ed5bd tests/e2e: do not run cipher suite tests for gRPC proxy
```
../../bin/etcd-30074: 2018-06-19 11:49:12.052662 I | etcdmain: v2 proxy started listening on client requests on "https://localhost:20002"
../../bin/etcd-30083: Error: unknown flag: --cipher-suites
../../bin/etcd-30083: Usage:
../../bin/etcd-30083:   etcd grpc-proxy start [flags]
```

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-19 11:49:59 -07:00
55a05d9615 Merge pull request #9862 from gyuho/travis
tests: switch between Travis and Semaphore
2018-06-18 14:03:24 -07:00
6d15396bc7 clientv3: add link to architecture docs
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-18 13:51:20 -07:00
f3ec7d2aed tests: move "amd64-unit" to travis
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-18 13:37:52 -07:00
6931e9dd23 tests/semaphore: remove coverage, grpcproxy tests, add unit tests
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-18 13:24:20 -07:00
1eaba4195e travis: remove unit tests, run grpcproxy, coverage tests
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-18 13:23:59 -07:00
a205cfe858 Merge pull request #9861 from gyuho/race
etcdserver/api/v3rpc: remove duplicate gRPC logger set
2018-06-18 11:39:08 -07:00
d456c0beb4 integration: disable embed tests with gRPC proxy for now
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-18 11:30:52 -07:00
339cda03b3 etcdserver/api/v3rpc: remove duplicate gRPC logger set
Fix

=== RUN   TestEmbedEtcd
==================
WARNING: DATA RACE
Write at 0x000001df86d0 by goroutine 711:
  github.com/coreos/etcd/embed.(*Config).setupLogging.func1()
      /go/src/github.com/coreos/etcd/vendor/google.golang.org/grpc/grpclog/loggerv2.go:68 +0x16c
  sync.(*Once).Do()
      /usr/local/go/src/sync/once.go:44 +0xe1
  github.com/coreos/etcd/embed.(*Config).setupLogging()

in gRPC proxy tests.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-18 09:41:37 -07:00
b98f0c9190 CHANGELOG-3.4: fix --cipher-suites flag change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-18 09:25:34 -07:00
d866cf8a9e Merge pull request #9860 from gyuho/new-balancer-april-2018
clientv3: Upgrade to round robin balancer based on gRPC 1.12 balancer API
2018-06-15 18:13:41 -07:00
cb6e9d2a7e CHANGELOG: Add PR and issue links for new client balancer 2018-06-15 16:46:40 -07:00
8451a1715f clientv3: Enable balancer logging if ETCD_CLIENT_DEBUG environment variable is set 2018-06-15 16:28:36 -07:00
aa03eba788 Merge pull request #9859 from wenjiaswe/eddreamdme
etcd-dump-logs: minor change in README.md
2018-06-15 15:36:56 -07:00
854e9e1174 etcd-dump-logs: minor change in README.md 2018-06-15 15:30:11 -07:00
6309e4b4cf docs: Add client architecture doc 2018-06-15 14:47:11 -07:00
6572d605ad vendor: Bump to grpc v1.12.2 2018-06-15 14:47:11 -07:00
d922069713 grpcproxy: fix "grpc.ErrClientConnClosing" handling
Fix

```
go test -v -tags cluster_proxy -run TestWatchErrConnClosed
```

with gRPC >= v1.10

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-15 14:47:11 -07:00
6e521d2f3f clientv3: add "IsConnCanceled", deprecate "grpc.ErrClientConnClosing"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-15 14:47:08 -07:00
a76681073d clientv3: add "zap.Config" to replace global logger
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-15 13:41:28 -07:00
08da08bb19 clientv3: clarify retry function names, do not retry on dial error
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-15 13:41:28 -07:00
dd520cebd4 clientv3: put "defaultCallOpts" back to "Client" object
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-15 13:41:28 -07:00
a3032d3d0b *: fix fmt tests, reenable "testEmbedEtcdGracefulStop"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-15 13:41:28 -07:00
3b84117f54 clientv3/integration: Add err check to TestDialTLSNoConfig to prevent nil pointer dereference on c.Close() 2018-06-15 13:41:28 -07:00
05c57a0ea4 integration: Fix unit test failures from new grpc LB changes, fix bom 2018-06-15 13:41:28 -07:00
55ef9cc1d0 clientv3: Add auth retry to retry interceptor 2018-06-15 13:41:28 -07:00
3130e4da1c vendor: add "go-grpc-middleware/util/backoffutils"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-15 13:41:28 -07:00
a5b2fb5563 clientv3: Introduce custom retry interceptor based on go-grpc-middleware/retry 2018-06-15 13:41:28 -07:00
4065735845 clientv3: remove unused "dialerrc"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-15 13:41:28 -07:00
1f6548b751 clientv3: Stop expecting retry in integration tests with new grpc balancer 2018-06-15 13:41:28 -07:00
8569b9c782 clientv3: Fix endpoint resolver to create a new resolver for each grpc client connection 2018-06-15 13:41:28 -07:00
9304d1abd1 clientv3: Fix TLS test failures by returning DeadlineExceeded error from dial without any additional wrapping 2018-06-15 13:41:28 -07:00
ee2747eba8 clientv3: Fix dial calls to consistently use endpoint resolver, attempt to deflake alarm test 2018-06-15 13:41:28 -07:00
f84f554301 clientv3: Fix auth client to use endpoints instead of host when dialing, fix tests to block on dial when required. 2018-06-15 13:41:28 -07:00
66e65cd660 clientv3: Avoid timeouts in ordering test 2018-06-15 13:41:28 -07:00
bb032f3e5f clientv3: deprecate "grpc.WithTimeout" in favor of "grpc.DialContext"
"grpc.WithTimeout" dial option is being deprecated.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-15 13:41:28 -07:00
994a569f53 clientv3: pass "grpc.WithBlock" on "TestDialTimeout"
Otherwise, grpc.DialContext would just return before
connection is up.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-15 13:41:28 -07:00
037d7b4abe clientv3: dial with context when creating authenticator
Otherwise, "grpc.Dial" blocks when "grpc.WithTimeout" dial
option gets deprecated.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-15 13:41:28 -07:00
7ac2a2dd20 clientv3: Fix dialer for new balancer to correctly handle first are as endpoint, not hostname 2018-06-15 13:41:28 -07:00
309208dbef clientv3: Split out grpc balancer builder to ensure there is a balancer per ClientConn 2018-06-15 13:41:28 -07:00
12acfc057a vendor: upgrade grpc/grpc-go to v1.11.3 2018-06-15 13:41:28 -07:00
f20a1173d8 clientv3: Fix new load balancer integration issues 2018-06-15 13:41:28 -07:00
6080fa1270 clientv3: Integrate new grpc load balancer interface with etcd client 2018-06-15 13:41:28 -07:00
ed6bc2b554 clientv3: add load balancer unix socket test 2018-06-15 13:41:28 -07:00
4d2a25b056 clientv3/balancer: add endpoints resolver 2018-06-15 13:41:28 -07:00
9867210a54 clientv3/balancer: add "TestRoundRobinBalancedPassthrough" (WIP)
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-15 13:41:28 -07:00
370761de82 clientv3/balancer: add more failover tests with resolver
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-15 13:41:28 -07:00
7c92185fe3 clientv3/balancer: use new mock server in tests
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-15 13:41:28 -07:00
f1aa428a38 pkg/mock/mockserver: support restart
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-15 13:41:28 -07:00
657c2e15cc *: introduce mock server for testing load balancing and add a simple happy-path load balancer test
Author:    Joe Betz <jpbetz@google.com>
Date:      Wed Mar 28 15:51:33 2018 -0700
2018-06-15 13:41:28 -07:00
7fe4a08fdc clientv3/balancer: initial commit
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-15 13:41:28 -07:00
6e2bf40015 vendor: upgrade "grpc/grpc-go" to v1.11.1
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-15 13:41:28 -07:00
b241e383fd Merge pull request #9858 from gyuho/lll
etcdserver: clean up election tick timeout log output
2018-06-15 13:40:44 -07:00
bd8ab3df93 Merge pull request #9857 from gyuho/quota-log
etcdserver: log quota only once
2018-06-15 13:40:30 -07:00
52ffe9f79a etcdserver: clean up election tick timeout log output
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-15 13:35:25 -07:00
929d390520 etcdserver: log quota only once
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-15 13:13:44 -07:00
8990126c17 rafthttp: add "RaftDropHeartbeat" failpoint
To simulate network partition locally.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-15 13:10:58 -07:00
9a7205cac8 README: fix docs badge 2018-06-15 13:10:58 -07:00
c7ca32b143 README: add "https://etcd.readthedocs.io/en/latest" badge 2018-06-15 13:10:58 -07:00
1136ba0e0d raft: fix logger variadic parameter
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-15 13:10:58 -07:00
9054786553 Revert "raft: fix logger Panic variadic parameter"
This reverts commit 5a94aba33eeb504e7036a27268c67f6a1796445e.
2018-06-15 13:10:58 -07:00
e07d19e549 raft: fix logger Panic variadic parameter
"# github.com/coreos/etcd/raft
raft/logger.go:117: missing ... in args forwarded to print-like function"

New parameter check got added the golang to check the function parameter
c006036075 (diff-8fa5b0d6191706747ef5773f895781c9)
2018-06-15 13:10:58 -07:00
7ae862cba5 CHANGELOG-3.3: update date 2018-06-15 13:10:58 -07:00
7e42c66c34 words: whitelist "__lostleader" from watcher branch
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-14 16:14:01 -07:00
de950842c5 words: whitelist more from balancer branch
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-14 15:19:26 -07:00
7bc414897e words: add more from balancer branch
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-14 15:04:29 -07:00
5ba680d762 docs: initial commit for architecture docs
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-14 12:56:09 -07:00
13e7447a2d CHANGELOG-3.2: highlight watch client backport
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-14 10:53:37 -07:00
edab6486c4 CHANGELOG: highlight vendor updates, clientv3 change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-14 10:45:39 -07:00
410d28c976 Merge pull request #9840 from liggitt/client-hotloop
Backoff on reestablishing watches when Unavailable errors are encountered
2018-06-14 09:34:02 -07:00
03cec4acb9 Merge pull request #9849 from wenjiaswe/changelog49848
CHANGELOG-3.1: update from #9848
2018-06-13 16:48:53 -07:00
85fc165249 CHANGELOG-3.1: update from #9848 2018-06-13 16:43:53 -07:00
51a209c56f Makefile: grep "DATA RACE" for tests
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-13 16:24:08 -07:00
ecd769c11a Merge pull request #9846 from wenjiaswe/changelog49845
CHANGELOG: update from #9845
2018-06-13 16:10:32 -07:00
85cb97a171 CHANGELOG: update from #9845 2018-06-13 16:08:00 -07:00
271f8d6365 Merge pull request #9844 from gyuho/aaa
tests: run coverage tests in Semaphore
2018-06-13 14:36:17 -07:00
0d13176c99 tests/e2e: do not run cipher suite tests in coverage tests
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-13 14:32:27 -07:00
8b5cd847d0 tests/semaphore.test.bash: use "sudo" for docker, clean up
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-13 13:52:56 -07:00
bf34c6a13b tests: run coverage tests in Semaphore
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-13 13:21:08 -07:00
5277105e1c Merge pull request #9843 from gyuho/semaphore-proxy
tests: run proxy tests in Semaphore
2018-06-13 13:14:04 -07:00
1be4f7526c tests/semaphore.test.bash: match "DATA RACE"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-13 13:06:33 -07:00
8147e9260f tests: run proxy tests in Semaphore
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-13 12:57:39 -07:00
f44abd219a Merge pull request #9842 from gyuho/ttt
travis: combine all build tests
2018-06-13 12:42:23 -07:00
4f0c96b424 travis: combine all build tests
We only get 5 concurrent workers in Travis.
Save time by fetching test image only once
for all build tests.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-13 12:32:50 -07:00
587b264c79 Merge pull request #9841 from gyuho/vvv
vendor: upgrade dependencies except grpc-go
2018-06-13 11:59:20 -07:00
1bca5ae20a bill-of-materials: regenerate
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-13 10:49:38 -07:00
b60259dce2 vendor: upgrade "github.com/beorn7/perks"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-13 10:18:39 -07:00
f9084d5d69 vendor: upgrade "gopkg.in/cheggaaa/pb.v1"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-13 10:17:44 -07:00
7e5770fa40 vendor: upgrade "google.golang.org/genproto"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-13 10:17:14 -07:00
f9fa507a7a vendor: upgrade "golang.org/x/time"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-13 10:16:49 -07:00
d9bbcc8e27 vendor: update "golang.org/x/text"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-13 10:16:15 -07:00
42efd8a6f1 vendor: upgrade "golang.org/x/sys"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-13 10:15:44 -07:00
0ded506c6c vendor: upgrade "golang.org/x/net"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-13 10:14:57 -07:00
955e1c4467 vendor: upgrade "golang.org/x/crypto"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-13 10:14:36 -07:00
8cedb48570 vendor: upgrade "gopkg.in/yaml.v2"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-13 10:13:58 -07:00
0c147bd8e0 vendor: upgrade "go.uber.org/atomic"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-13 10:12:53 -07:00
d5db59ffb6 vendor: upgrade "spf13/cobra,pflag"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-13 10:10:59 -07:00
31c7d0139c vendor: upgrade "sirupsen/logrus"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-13 10:10:09 -07:00
853bb8d0e5 vendor: upgrade "github.com/prometheus/procfs"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-13 10:08:50 -07:00
3e282713b8 vendor: upgrade "github.com/prometheus/common"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-13 10:08:08 -07:00
acf9dce89a vendor: upgrade "github.com/prometheus/client_golang"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-13 10:06:44 -07:00
0a61466253 vendor: upgrade "github.com/grpc-ecosystem/go-grpc-prometheus"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-13 10:04:47 -07:00
35f421780a vendor: upgrade "dgrijalva/jwt-go"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-13 10:04:07 -07:00
d1579c95a2 clientv3: backoff on reestablishing watches when Unavailable errors are encountered 2018-06-13 02:05:04 -04:00
88acced1cd Documentation/upgrades: highlight "latest" tag change in v3.4
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-12 13:00:24 -07:00
a133e9fc8c etcdserver: remove TODO from "warnOfExpensiveGenericRequest"
Metric is already added.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-12 09:37:00 -07:00
0bf6b87d5e Merge pull request #9835 from jpbetz/fix-txn-warning-cmp-val
etcdserver: Fix txn request 'took too long' warnings to use loggable request stringer
2018-06-11 17:45:12 -07:00
a6fad51603 etcdserver: Fix txn request 'took too long' warnings to use loggable request stringer 2018-06-11 16:58:48 -07:00
59aec1fa31 Merge pull request #9834 from xiang90/m_m
backend: more metrics for bboltdb transaction
2018-06-11 14:34:07 -07:00
63c482e430 CHANGELOG: highlight new backend metrics 2018-06-11 14:05:29 -07:00
2f1730fcae backend: more metrics for bboltdb transcation 2018-06-11 14:05:04 -07:00
322c0df785 Merge pull request #9832 from gyuho/functional
functional/tester: fix trigger snapshot retry
2018-06-11 13:14:34 -07:00
19de2b2177 functional/tester: fix trigger snapshot retry
Fix negative commit entry diff:

> {"level":"info","ts":1528740474.775448,"caller":"tester/case.go:299","msg":"trigger snapshot PROGRESS","retries":53,"committed-entries":-238470,"etcd-snapshot-count":10000,"start-revision":238470,"last-revision":0,"took":77.302668629,"error":"context deadline exceeded"}

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-11 12:49:18 -07:00
f985e5172a CHANGELOG: highlight response size information in slow request
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-11 12:23:10 -07:00
849d3f2ac9 Merge pull request #9826 from jpbetz/response_sizes
etcdserver: Add response byte size and range response count to took too long warning
2018-06-11 11:13:24 -07:00
b47e148d5d etcdserver: Add response byte size and range response count to took too long warning 2018-06-11 10:02:30 -07:00
bb744f6d2b words: whitelist more for balancer branch
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-08 14:35:39 -07:00
cbcf84464c words: whitelist more from new balancer branch
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-08 14:13:14 -07:00
79086ba425 Merge pull request #9828 from gyuho/aaa
integration: block dial for timeout errors
2018-06-08 14:00:24 -07:00
cbb6dea367 integration: block dial for timeout errors
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-08 13:49:17 -07:00
61ef343166 Merge pull request #9827 from gyuho/go
*: use Go 1.10.3 for CI tests
2018-06-08 11:36:22 -07:00
9034e1c144 Makefile: use Go 1.9.7
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-08 10:54:56 -07:00
f4ea05803e semaphore: use latest v3.3 patch release for release test
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-08 10:53:47 -07:00
082c3ef0bc *: use Go 1.10.3 for CI tests
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-08 10:50:12 -07:00
c6e18c712c CHANGELOG: highlight slow request warning log
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-08 09:57:13 -07:00
e22ab78ccb Merge pull request #9822 from jpbetz/value_size_stringer
etcdserver: Replace value contents with value_size in request took too long warning
2018-06-08 09:39:56 -07:00
225b0bf80a etcdserver: Replace value contents with value_size in request took too long warning 2018-06-07 16:41:48 -07:00
d6ff23e669 Merge pull request #9820 from gyuho/quota-size
*: add "etcd_server_quota_backend_bytes" metric
2018-06-07 12:06:34 -07:00
a9aafc8d6b CHANGELOG: highlight metrics change, clean up
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-07 12:06:09 -07:00
84fafff329 Merge pull request #9819 from gyuho/mmm
*: promote db size metric to "'etcd" namespace
2018-06-07 11:43:48 -07:00
184372cd1b integration: add "TestMetricQuotaBackendBytes"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-07 10:48:16 -07:00
7dd7018835 etcdserver: add "etcd_server_quota_backend_bytes"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-07 10:44:51 -07:00
a8d7d5ad72 Documentation/upgrades: highlight db metrics change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-07 10:33:02 -07:00
009d05ae4f Documentation/op-guide: highlight db size metrics change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-07 10:26:45 -07:00
f2db05a869 mvcc: server db size with "etcd_debugging" namespace for backward compatibility
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-07 10:23:12 -07:00
21130d5fb6 mvcc: promote db size metrics to "etcd"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-07 10:20:45 -07:00
cf196fc4d8 Documentation/op-guide: promote db size metric in grafana.json
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-07 10:20:45 -07:00
196625b917 integration: promote db size metrics to "etcd"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-07 10:20:41 -07:00
25f4d80980 Merge pull request #9815 from jpbetz/changelog-3.1.17-3.2.22
CHANGELOG: Add dates for 3.1.17 and 3.2.22 releases
2018-06-06 10:54:33 -07:00
004d640ff5 Merge pull request #9814 from jpbetz/script-build-fix
scripts: Fix release script to always build etcd binary before checking version
2018-06-06 10:54:17 -07:00
0d4063681d CHANGELOG: Add dates for 3.1.17 and 3.2.22 releases 2018-06-06 10:50:27 -07:00
a8990e2e18 scripts: Fix release script to always build etcd binary before checking version 2018-06-06 10:48:45 -07:00
beae09e807 CHANGELOG: clarify snapshot fix, clean up
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-06 09:47:31 -07:00
5d461a9e1b Merge pull request #9813 from mgates/move_lease_sorting_outside_lock
leases: Move lease sorting outside of lock
2018-06-06 09:39:46 -07:00
aa02ceb2e5 leases: Move lease sorting outside of lock
Because the leases were sorted inside UnsafeLeases() the lessor mutex
ended up being locked while the whole map was sorted. This pulls the
soring outside of the lock, per feedback on
https://github.com/coreos/etcd/pull/9699
2018-06-06 15:05:23 +00:00
ab19dee5ce CHANGELOG: highlight June patch release
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-05 16:08:51 -07:00
52ae578922 Merge pull request #9807 from gyuho/move-leader
ctlv3: support TLS endpoints for move-leader command
2018-06-05 15:46:49 -07:00
54ed4de6d1 Merge pull request #9801 from gyuho/cipher-suites
*: support TLS cipher suite whitelist
2018-06-05 15:46:09 -07:00
65192fddfa ctlv3: support TLS endpoints for move-leader command
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-05 13:48:09 -07:00
6d9cb7ac9a tests/e2e: test move-leader command with TLS
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-05 13:45:14 -07:00
1a47c28504 Documentation/op-guide: document "--cipher-suites"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-05 13:25:57 -07:00
96e8cff286 CHANGELOG: highlight custom cipher suite feature
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-05 13:23:55 -07:00
94f2e450dd Merge pull request #9806 from spzala/master
Check: correct the memory limit
2018-06-05 13:19:46 -07:00
d82f726da8 tests/e2e: test client-side cipher suites with curl
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-05 12:59:29 -07:00
abffe0d29a etcdmain: add "--cipher-suites" flag
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-05 12:54:34 -07:00
3125c0c3e8 embed: support custom cipher suites
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-05 12:50:29 -07:00
917d40cd4c integration: test client-side TLS cipher suites
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-05 12:34:56 -07:00
3fb9cc84c6 pkg/transport: add "TLSInfo.CipherSuites" field
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-05 12:27:05 -07:00
67313ff06f pkg/tlsutil: add "GetCipherSuite"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-05 12:26:48 -07:00
eff8166a45 Check: correct the memory limit
We should be doing 3M not 30 as it's said in the doc comment.
2018-06-05 09:46:56 -04:00
438e6750ee Merge pull request #9799 from shubhamranjan/master
Documentation: Add v3 grpc C# client to libraries
2018-06-04 08:07:12 -04:00
537a1a66e6 Documentation: Add v3 grpc C# client to libraries 2018-06-04 16:16:56 +05:30
83abce0677 Merge pull request #9796 from gyuho/watcher-benchmark
mvcc: separate synced/unsynced benchmarks
2018-06-01 10:06:57 -07:00
e239cc276a mvcc: separate synced/unsynced benchmarks
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-01 10:00:18 -07:00
e6de5d8091 Merge pull request #9792 from gyuho/cov
etcdctl/ctlv3: remove ETCDCTL_API warning, fix e2e coverage tests
2018-05-31 15:46:28 -07:00
5858f1ac15 Merge pull request #9793 from ercliou/fix-ebnf
Documentation: Fix etcdctl tx eBNF
2018-05-31 14:43:47 -07:00
cc50a70495 Merge pull request #9790 from wenjiaswe/decoder-support
etcd-dump-logs: add decoder support
2018-05-31 14:30:25 -07:00
29121a8cee etcd-dump-logs: add decoder support 2018-05-31 14:29:46 -07:00
b153be2acb tests/e2e: fix "testCtlV2Backup"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-31 14:25:24 -07:00
85e3c5ec37 etcdctl/ctlv3: remove ETCDCTL_API warning
To make coverage stats happy 25bc65794f.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-31 14:23:55 -07:00
6d773ffe96 Merge pull request #9794 from jpbetz/release-scripts-june
scripts/release: Fix docker push for 3.1 releases, remove inaccurate warning at the end of release script
2018-05-31 14:02:34 -07:00
9ce31018e8 Merge pull request #9795 from jpbetz/changelog-3.1.16_3.2.21
CHANGELOG: Updates dates for 3.1.16 and 3.2.21 releases
2018-05-31 14:01:44 -07:00
273d138ca7 CHANGELOG: Updates dates for 3.1.16 and 3.2.21 releases 2018-05-31 13:58:55 -07:00
e2821a16ff scripts/release: Fix docker push for 3.1 releases, remove inaccurate warning at the end of release script 2018-05-31 13:56:07 -07:00
8b16c234af Documentation: Fix etcdctl tx eBNF
`create` also expects operand, or this error is printed:
Error:  malformed comparison: create("mykey") "0"; got create("mykey") "0" ""
2018-05-31 16:40:47 -03:00
0db7ea7337 scripts/release: disable minor version docker push
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-31 12:08:01 -07:00
aaa71e5b6f CHANGELOG-3.3: update patch release date
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-31 11:13:53 -07:00
391433b69a Merge pull request #9775 from gyuho/fix-grpc-proxy-watch
mvcc: fix panic by allowing future revision watcher from restore operation
2018-05-31 11:06:45 -07:00
2b3aa7e1d4 Merge pull request #9777 from primeroz/master
Documentation: Add etcd version support notes for Using TLS common name in RBAC and notes about inter-peer CN filtering
2018-05-30 19:51:16 -04:00
d2d8c5716f Merge pull request #9789 from brancz/mixin-dashboard
Documentation: Add Grafana dashboard to etcd monitoring mixin
2018-05-30 09:50:20 -07:00
003e2f313c Merge pull request #9788 from hexfusion/fx_doc
Documentation: add min version for --listen-metric-urls flag.
2018-05-30 09:49:06 -07:00
3b53146b49 Documentation: Add support notes for Using TLS common name in RBAC and support for inter-peer CN filtering 2018-05-30 13:29:42 +01:00
778bfe1c82 Documentation: Add Grafana dashboard to etcd monitoring mixin 2018-05-30 13:42:36 +02:00
96ea63d44e Documentation: add min version for --listen-metric-urls flag. 2018-05-29 23:26:10 -04:00
e2a6489c1e Merge pull request #9787 from gyuho/fix
clientv3/integration: fix "TestMaintenanceSnapshotErrorInflight"
2018-05-29 13:33:22 -07:00
7284e5a0a9 clientv3/integration: fix "TestMaintenanceSnapshotErrorInflight"
Errors from gRPC should be typed *status.statusError

=== RUN   TestMaintenanceSnapshotErrorInflight
WARNING: 2018/05/29 11:43:21 grpc: addrConn.resetTransport failed to create client transport: connection error: desc = "transport: Error while dialing dial unix localhost:55815860381826373260: connect: no such file or directory"; Reconnecting to {localhost:55815860381826373260 0  <nil>}
--- FAIL: TestMaintenanceSnapshotErrorInflight (2.42s)
	maintenance_test.go:192: expected context deadline exceeded, got rpc error: code = DeadlineExceeded desc = context deadline exceeded

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-29 11:49:18 -07:00
1951ebab7e Merge pull request #9706 from metalmatze/etcd3-alerts
Documentation/op-guide: remove etcd_http_.* rules from examples
2018-05-29 11:35:51 -07:00
6e61eb2529 Documentation/op-guide: remove etcd_http_.* rules from examples 2018-05-29 11:35:02 -07:00
3f9cce7797 CHANGELOG-3.4: highlight ETCDCTL_API=3 change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-29 11:32:51 -07:00
356c4f17ca CHANGELOG: add "--password" flag
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-29 11:25:42 -07:00
dbb37f98fd Merge pull request #9730 from mitake/user-w-colon
etcdctl: add --password flag to the subcommand user add
2018-05-29 11:14:46 -07:00
eeb8bcc753 Documentation/upgrades: remove "./bin"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-29 11:06:31 -07:00
b11a6aa381 Documentation/upgrades: highlight ETCDCTL_API change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-29 11:05:24 -07:00
b7d556bde5 CHANGELOG: highlight ETCDCTL_API change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-29 11:01:34 -07:00
fb43f46c0a Merge pull request #9640 from grapeshot/monitoring-mixin
Prometheus Monitoring Mixin for etcd.
2018-05-29 09:54:35 -07:00
13d4e1509b Documentation: add Prometheus monitoring-mixin
Signed-off-by: Tom Wilkie <tom.wilkie@gmail.com>
2018-05-29 09:52:40 -07:00
0c858dc248 Merge pull request #9784 from vimalk78/9600_ETCDCTL_API_3_default
etcdctl/ctlv3: etcd v3.4 makes ETCDCTL_API=3 by default
2018-05-29 09:38:58 -07:00
25bc65794f etcdctl/ctlv3: etcd v3.4 makes ETCDCTL_API=3 by default 2018-05-29 06:27:20 +05:30
ce918cef63 Merge pull request #9780 from vimalk78/9583_ETCDCTL_ENDPOINT_confused_trim_space
etcdctl/ctlv3 : fixes 9583. trim spaces in ETCDCTL_ENDPOINTS env variable
2018-05-27 09:38:38 -07:00
357308bfcd Merge pull request #9679 from lorneli/lorneli-raft-dev
raft: describe the purpose of lockedRand
2018-05-26 22:03:18 -07:00
a083282482 raft: describe the purpose of lockedRand
Struct lockedRand wraps rand.Rand with mutex lock because it's
accessed by multiple raft groups.
2018-05-26 21:59:24 +08:00
807dfcea78 etcdctl: fixes 9583. trim spaces in ETCDCTL_ENDPOINTS 2018-05-26 04:58:06 +05:30
ba10640d0b Merge pull request #9778 from idiamond-stripe/idiamond-add-leases-metric
leases: Add metrics to etcd leases
2018-05-25 14:04:02 -07:00
0369298b21 leases: Add metrics to etcd leases
This patch adds four metrics to the `leases` package for easier
debugging.
2018-05-25 12:57:28 -07:00
0398ec7dcb mvcc: fix panic by allowing future revision watcher from restore operation
This also happens without gRPC proxy.

Fix panic when gRPC proxy leader watcher is restored:

```
go test -v -tags cluster_proxy -cpu 4 -race -run TestV3WatchRestoreSnapshotUnsync

=== RUN   TestV3WatchRestoreSnapshotUnsync
panic: watcher minimum revision 9223372036854775805 should not exceed current revision 16

goroutine 156 [running]:
github.com/coreos/etcd/mvcc.(*watcherGroup).chooseAll(0xc4202b8720, 0x10, 0xffffffffffffffff, 0x1)
	/home/gyuho/go/src/github.com/coreos/etcd/mvcc/watcher_group.go:242 +0x3b5
github.com/coreos/etcd/mvcc.(*watcherGroup).choose(0xc4202b8720, 0x200, 0x10, 0xffffffffffffffff, 0xc420253378, 0xc420253378)
	/home/gyuho/go/src/github.com/coreos/etcd/mvcc/watcher_group.go:225 +0x289
github.com/coreos/etcd/mvcc.(*watchableStore).syncWatchers(0xc4202b86e0, 0x0)
	/home/gyuho/go/src/github.com/coreos/etcd/mvcc/watchable_store.go:340 +0x237
github.com/coreos/etcd/mvcc.(*watchableStore).syncWatchersLoop(0xc4202b86e0)
	/home/gyuho/go/src/github.com/coreos/etcd/mvcc/watchable_store.go:214 +0x280
created by github.com/coreos/etcd/mvcc.newWatchableStore
	/home/gyuho/go/src/github.com/coreos/etcd/mvcc/watchable_store.go:90 +0x477
exit status 2
FAIL	github.com/coreos/etcd/integration	2.551s
```

gRPC proxy spawns a watcher with a key "proxy-namespace__lostleader"
and watch revision "int64(math.MaxInt64 - 2)" to detect leader loss.
But, when the partitioned node restores, this watcher triggers
panic with "watcher minimum revision ... should not exceed current ...".

This check was added a long time ago, by my PR, when there was no gRPC proxy:

https://github.com/coreos/etcd/pull/4043#discussion_r48457145

> we can remove this checking actually. it is impossible for a unsynced watching to have a future rev. or we should just panic here.

However, now it's possible that a unsynced watcher has a future
revision, when it was moved from a synced watcher group through
restore operation.

This PR adds "restore" flag to indicate that a watcher was moved
from the synced watcher group with restore operation. Otherwise,
the watcher with future revision in an unsynced watcher group
would still panic.

Example logs with future revision watcher from restore operation:

```
{"level":"info","ts":1527196358.9057755,"caller":"mvcc/watcher_group.go:261","msg":"choosing future revision watcher from restore operation","watch-key":"proxy-namespace__lostleader","watch-revision":9223372036854775805,"current-revision":16}
{"level":"info","ts":1527196358.910349,"caller":"mvcc/watcher_group.go:261","msg":"choosing future revision watcher from restore operation","watch-key":"proxy-namespace__lostleader","watch-revision":9223372036854775805,"current-revision":16}
```

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-25 12:40:02 -07:00
86d1d3e8dc integration: enable TestV3WatchRestoreSnapshotUnsync for gRPC proxy
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-25 12:30:42 -07:00
476c9cbeed CHANGELOG: clarify watch fix, add lease metrics changes
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-25 12:30:05 -07:00
0ad6e5269e CHANGELOG: patch release with watch fix
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-25 11:45:45 -07:00
1ebaeed5c1 embed: fix typo
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-25 11:15:47 -07:00
f5e52c995c Merge pull request #9773 from gyuho/auth-test
integration: test lease revoke routine with JWT token
2018-05-24 12:16:09 -07:00
a52f16d4a6 integration: test lease revoke routine with JWT token
https://github.com/coreos/etcd/pull/9698 wasn't really testing
the panic code path when leases are expiry.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-24 11:38:31 -07:00
20cf7f4d5b Merge pull request #9671 from lorneli/raft-test
raft: merge test cases of pre-candidate with the normal one
2018-05-24 08:27:07 -07:00
b4f84f046b Merge pull request #9765 from gyuho/watch-restore
mvcc: watcherGroup chooseAll panic (skip proxy tests for now)
2018-05-23 16:53:50 -07:00
a16576c763 CHANGELOG: update dates, upcoming patch releases
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-23 16:00:02 -07:00
210c842345 mvcc: improve watcherGroup panic message
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-23 15:38:40 -07:00
9cac286830 integration: move "TestV3WatchRestoreSnapshotUnsync"
When run with "-tags cluster_proxy", panic.
Need investigate more.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-23 15:35:59 -07:00
83fd1c3faa Merge pull request #9762 from gyuho/rrr
*: document all histogram metrics, add etcd_snap_fsync_duration_seconds
2018-05-23 14:42:39 -07:00
5f2c195ee7 CHANGELOG-3.4: add "etcd_network_active_peers" and disconnected_peers_total
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-23 14:32:19 -07:00
3821f3364d etcdserver/api/rafthttp: add "etcd_network_active_peers/disconnected_peers_total"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-23 14:23:45 -07:00
1a102fb3f5 proxy/httpproxy: document histogram
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-23 14:03:28 -07:00
b0b966c43c wal: document, clean up fsync histogram
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-23 14:03:28 -07:00
1d91698268 mvcc: document, clean up histogram variables
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-23 14:03:28 -07:00
e6a113cdcd mvcc/backend: clean up histogram variables
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-23 14:03:28 -07:00
afe78fbe69 etcdserver/api/v2http: document histogram
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-23 14:03:28 -07:00
973fe43b83 etcdserver/api/snap: document histograms, add "etcd_snap_fsync_duration_seconds"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-23 14:03:28 -07:00
640f5e64a9 etcdserver/api/rafthttp: document round-trip metrics, clean up
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-23 14:03:28 -07:00
5a9e48be30 etcdserver/api/rafthttp: increase bucket upperbound up-to 3-sec
From 0.8 sec to 3.2 sec for more detailed latency analysis

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-23 14:03:28 -07:00
2b01460b4d CHANGELOG-3.4: highlight new metrics, histogram upper bound changes
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-23 14:00:48 -07:00
c444c1f327 Merge pull request #9761 from gyuho/mmm
etcdserver,mvcc: add more storage layer metrics
2018-05-23 13:11:29 -07:00
a1aade8c1b etcdserver: rename to "heartbeat_send_failures_total"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-23 13:11:08 -07:00
bc59f7b42f mvcc: add "etcd_mvcc_hash_(rev)_duration_seconds"
etcd_mvcc_hash_duration_seconds
etcd_mvcc_hash_rev_duration_seconds

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-23 13:09:42 -07:00
966ee9323c mvcc/backend: fix defrag duration scale
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-23 13:09:42 -07:00
d326b2933c mvcc/backend: add "etcd_disk_backend_defrag_duration_seconds"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-23 13:09:42 -07:00
60a9ec8a15 mvcc/backend: document metrics ExponentialBuckets
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-23 13:09:42 -07:00
58e3ead219 mvcc/backend: clean up mutex, logging
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-23 13:09:42 -07:00
dd1baf6e96 etcdserver: add "etcd_server_slow_apply_total"
{"level":"warn","ts":1527101858.6985068,"caller":"etcdserver/util.go:115","msg":"apply request took too long","took":0.114101529,"expected-duration":0.1,"prefix":"","request":"header:<ID:1029181977902852337> put:<key:\"\\000\\000...

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-23 13:09:42 -07:00
896a5e4a2b etcdserver: add "etcd_server_heartbeat_failures_total"
{"level":"warn","ts":1527101858.4149103,"caller":"etcdserver/raft.go:370","msg":"failed to send out heartbeat; took too long, server is overloaded likely from slow disk","heartbeat-interval":0.1,"expected-duration":0.2,"exceeded-duration":0.025771662}
{"level":"warn","ts":1527101858.4149644,"caller":"etcdserver/raft.go:370","msg":"failed to send out heartbeat; took too long, server is overloaded likely from slow disk","heartbeat-interval":0.1,"expected-duration":0.2,"exceeded-duration":0.034015766}

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-23 13:09:42 -07:00
1c18f8dfb9 CHANGELOG-3.4: highlight new server, mvcc metrics
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-23 13:04:45 -07:00
bf45d6a76e Merge pull request #9760 from gyuho/stream
etcdserver/api/v3rpc: add "etcd_network_server_stream_failures_total"
2018-05-23 10:36:05 -07:00
539e2f2ff8 CHANGELOG-3.4: highlight "etcd_network_server_stream_failures_total"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-23 10:35:37 -07:00
a5b32ba941 etcdserver/api/v3rpc: add "etcd_network_server_stream_failures_total"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-23 08:05:43 -07:00
0e2dd3e4f1 Merge pull request #9757 from hexfusion/gg_latest
vendor: update "grpc-gateway" to v1.4.1
2018-05-23 07:25:41 -07:00
f31a02d4c1 vendor: update "grpc-gateway" to v1.4.1 2018-05-23 08:41:56 -04:00
fe15c3250e scripts/genproto: use latest "grpc-ecosystem/grpc-gateway" 2018-05-23 08:36:58 -04:00
7afa98fc8a CHANGELOG: upgrade "grpc-ecosystem/grpc-gateway" dependencies 2018-05-23 08:36:58 -04:00
20b1a98d20 Merge pull request #9756 from gyuho/grpc-gateway
vendor: update "grpc-gateway" to v1.4.0
2018-05-23 08:07:52 -04:00
c77223f166 vendor: update "grpc-gateway" to v1.4.0
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-23 01:34:06 -07:00
216e8e4417 Merge pull request #9755 from hexfusion/fx_grpc_gateway
vendor: use latest "grpc-ecosystem/grpc-gateway"
2018-05-22 15:39:29 -07:00
05554119c9 vendor: use latest "grpc-ecosystem/grpc-gateway" 2018-05-22 17:35:15 -04:00
b5ceaf7f89 Merge pull request #9754 from gyuho/vendor
vendor: use latest "{gogo,golang}/protobuf"
2018-05-22 14:08:37 -07:00
f13dd2ddfb vendor: use latest "{gogo,golang}/protobuf"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-22 13:42:52 -07:00
d29a0c7172 scripts/genproto: use latest "gogo/protobuf"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-22 13:42:43 -07:00
792b3fa920 CHANGELOG: upgrade "*/protobuf" dependencies
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-22 13:42:24 -07:00
3de040562d Merge pull request #9698 from hexfusion/fx_auth
auth: fix panic using WithRoot and improve JWT coverage
2018-05-22 15:47:47 -04:00
7c38ecc8d2 Merge pull request #9749 from gyuho/rename
*: move internal server packages under "etcdserver"
2018-05-22 12:22:30 -07:00
b30a1166e0 auth: fix panic using WithRoot and improve JWT coverage 2018-05-22 12:53:27 -04:00
7940113906 *: move internal "etcdserver/api/rafthttp"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-21 10:31:16 -07:00
2dd555c983 *: move "etcdserver/api/v3compactor"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-21 10:31:16 -07:00
871c218894 *: move "etcdserver/api/v3alarm"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-21 10:31:16 -07:00
9149565cb3 *: move to "etcdserver/api/membership"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-21 10:31:16 -07:00
017232a710 CHANGELOG-3.4: highlight internal package rename
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-21 10:31:16 -07:00
671f1c41a8 etcdserver/api/v2discovery: move internal "discovery" package
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-21 09:50:38 -07:00
346589edd1 Merge pull request #9748 from gyuho/rename
*: clean up logging, move internal "snap" package to "etcdserver"
2018-05-21 09:40:13 -07:00
37925583b8 words: add whitelists
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-21 07:46:25 -07:00
7dabd6c255 *: rename internal packages in tools/testing
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-21 07:45:34 -07:00
04df89bc11 contrib/raftexample: rename internal packages
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-21 07:45:34 -07:00
4d80753804 etcdctl: rename internal snapshot packages
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-21 07:45:34 -07:00
2d542d336a scripts/genproto.sh: rename
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-21 07:45:34 -07:00
d41bcb7ff6 CHANGELOG-3.4: rename "clientv3/snapshot"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-21 07:45:34 -07:00
143fbf4caa clientv3/snapshot: rename snapshot package
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-21 07:45:34 -07:00
1e4f56114e etcdserver: use new "snap" import paths
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-21 07:45:34 -07:00
a0b4ecbd4c rafthttp: use new "snap" import paths
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-21 07:45:34 -07:00
adb72e56f1 CHANGELOG-3.4: highlight "etcdserver/api/snap"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-21 07:45:34 -07:00
2bd689acea etcdserver/api/snap: rename internal package
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-21 07:45:34 -07:00
d05f675def raftsnap: clean up logs
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-21 07:45:34 -07:00
e385563009 README: fix typo
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-21 01:48:10 -07:00
8fcab98bf2 etcdctl: add flags for specifying password
This commit adds two flags to etcdctl:
1. `--password` flag to etcdctl as a global option. It can be used for
specifying password for authentication required for the command
execution.
2. `--new-user-password` flag to `etcdctl user add`. It can be used
for specifying password of newly created user by the command.

The main motivation of the flags is allowing user to have : in its
name.

Fix https://github.com/coreos/etcd/issues/9691
2018-05-21 16:18:01 +09:00
9a88815c18 CHANGELOG: use gRPC v1.12 for v3.4
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-18 16:53:44 -07:00
3095b8e530 CHANGELOG: add details on unsynced watch fix
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-18 16:51:14 -07:00
955fd99bc9 Merge pull request #9746 from gyuho/raft-logger
etcdserver: set default Raft logger with zap.Logger
2018-05-18 16:32:48 -07:00
1a399bd068 Merge pull request #9745 from gyuho/watch
*: test watch restore in network-partitioned node, clean up fields, logging
2018-05-18 16:32:29 -07:00
58ae15bd29 etcdserver: set default Raft logger with zap.Logger
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-18 15:38:39 -07:00
31094e5616 tests/e2e: rename to "snapshotCount"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-18 15:27:48 -07:00
2847232096 integration: test watch restore on slow follower
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-18 15:19:37 -07:00
aa99ed54b7 integration: rename "SnapshotCount"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-18 14:41:30 -07:00
5235fc2106 functional/rpcpb: rename "SnapshotCount"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-18 14:41:01 -07:00
4ce10157ff tests/e2e: rename "SnapshotCount"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-18 14:40:02 -07:00
4a0bf23d1f contrib/raftexample: rename "snapCount"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-18 14:39:47 -07:00
892f7e02e0 etcdmain: rename "SnapshotCount"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-18 14:39:31 -07:00
afe511945e embed: rename "SnapshotCount", add "SnapshotCatchUpEntries"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-18 14:38:39 -07:00
49d672ff9b etcdserver: rename "SnapshotCount", add "SnapshotCatchUpEntries"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-18 14:37:50 -07:00
374f4cef4d *: document "SnapshotCount" field change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-18 14:28:26 -07:00
1c904b1ad6 CHANGELOG-3.4: fix grammar, clarify WAL directory change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-18 12:43:03 -07:00
fc7b9b07bf Merge pull request #9744 from gyuho/cluster_proxy
clientv3/integration: do not run fragmentation tests with gRPC Proxy
2018-05-18 12:30:10 -07:00
41133eb3c6 Merge pull request #9743 from gyuho/wal
wal: allow non-WAL files in wal directory
2018-05-18 12:29:47 -07:00
19eb8a5132 clientv3/integration: do not run fragmentation tests with gRPC Proxy
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-18 10:45:03 -07:00
12a227509d CHANGELOG-3.4: add "non-WAL files in ETCD_WAL_DIR"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-18 10:34:14 -07:00
567b47fc3e wal: filter file names in WAL directory by ".wal"
WAL never writes nor needs files without ".wal" suffix.
Thus, safe to filter out only ".wal" files.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-18 10:29:48 -07:00
fa6d2e2d71 pkg/fileutil: add "ReadDirOption"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-18 10:28:27 -07:00
ad4e8e9490 Merge pull request #9738 from gyuho/systemd
vendor: upgrade "github.com/coreos/go-systemd" to v17
2018-05-17 15:43:39 -07:00
fc87b28d21 CHANGELOG-3.4: fix typo in "ugorji/go" link
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-17 14:36:28 -07:00
89697202b8 CHANGELOG: hilight "coreos/go-systemd" change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-17 14:34:29 -07:00
e0fc9386bc vendor: upgrade "github.com/coreos/go-systemd" to v17
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-17 14:33:52 -07:00
c2cacb3a50 Merge pull request #9737 from gyuho/test-rafthttp
*: move test rafthttp Transporter to etcdserver
2018-05-17 14:29:26 -07:00
c772599c0f Merge pull request #9736 from gyuho/snap
raftsnap: use zap logger
2018-05-17 14:26:11 -07:00
5bc28488b2 rafthttp: remove unused test Transporter
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-17 14:17:08 -07:00
366db18662 etcdserver: define test transporter
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-17 14:16:52 -07:00
f523b0b33f tools/etcd-dump-logs: pass zap logger to raftsnap
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-17 13:59:29 -07:00
b4565cc97b raftsnap: use zap logger
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-17 13:59:20 -07:00
63b6f432dc Merge pull request #9735 from gyuho/upgrade-guide
Documentation/upgrades: improve server checklists with zap logger
2018-05-17 13:15:35 -07:00
22c0f518f7 Documentation/upgrades: improve server checklists with zap logger
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-17 13:10:52 -07:00
7f497b81c8 Merge pull request #9733 from gyuho/wal
wal: add missing logs, improve pipeline test coverage
2018-05-17 11:50:41 -07:00
e15ce28168 wal: add missing logs, improve pipeline test coverage
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-17 11:01:31 -07:00
610dd0911d Merge pull request #9732 from gyuho/procfile
*: use "--logger=zap" for Procfile
2018-05-17 09:30:26 -07:00
6de62861b7 *: use "--logger=zap" for Procfile
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-17 02:22:34 -07:00
bd00d725f5 CHANGELOG: clean up logging changes
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-17 02:22:34 -07:00
d09c614177 Documentation/upgrades: clean up "--log*" flag changes
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-17 02:22:31 -07:00
1b9791c6bd etcd.conf.yml: use "stderr" for log-outputs
Fix "TestEtcdExampleConfig".

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-16 19:41:40 -07:00
0bbc6c203d CHANGELOG: update zap logger changes
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-16 17:11:37 -07:00
b9c2d5bc50 Merge pull request #9729 from gyuho/log
*: fix capnslog journal writer with zap logger
2018-05-16 15:18:44 -07:00
265a37f006 integration: remove unnecessary blank line
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-16 15:04:52 -07:00
258d7201eb CHANGELOG: discontinue "--log-outputs=default" support for zap logger
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-16 15:03:18 -07:00
15fcd6d599 embed: do not support "--log-outputs=default" for zap logger
systemd/journal should be configured manually.
Interpreting PPID 1 as systemd unit is wrong,
especially when embedded etcd runs under Docker
container. For such case, every single log write
will error and fall back to stderr, which is
inefficient.

Instead, add "systemd/journal" log output option
and returns error if systemd/journal socket cannot
be found.

"--logger=zap --log-outputs=default" will only error
for v3.4, since zap logger is still experimental.

v3.5 deprecates capnslog and changes "--log-outputs"
default value to "--log-outputs=stderr".

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-16 14:47:43 -07:00
3a80499da4 *: rename to "journal"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-16 14:38:27 -07:00
5a61dc8008 embed: error when it cannot find journal socket
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-16 14:35:11 -07:00
1e953bd187 pkg/logutil: error when it can't find journal socket
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-16 14:34:49 -07:00
65b29b0bd2 Merge pull request #9728 from gyuho/journald
pkg/logutil: do not print error message on journaldWriter
2018-05-16 12:33:26 -07:00
a338816cb4 pkg/logutil: do not print error message on journaldWriter
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-16 11:34:33 -07:00
4a4be9275c Merge pull request #9681 from gyuho/config-log
doc: deprecate '/config/local/log' in v3.5
2018-05-15 11:07:07 -07:00
53373fecdd Merge pull request #9291 from gyuho/fragment-watch
*: fragment watch response by server request limit
2018-05-14 15:09:11 -07:00
4cbfcfeede test: fix test "etcdserver/api/v2store"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-14 14:33:49 -07:00
2a5107242c CHANGELOG-3.4: add watch fragmentation
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-14 13:51:30 -07:00
56ec416eba clientv3/integration: test watch response fragmentation
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-14 13:34:54 -07:00
d2c8408216 clientv3: support watch events fragmentation
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-14 13:34:50 -07:00
63dc4429f0 clientv3: add "WithFragment" OpOption
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-14 13:02:27 -07:00
1eed8493c8 clientv3: add godoc on op.go
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-14 12:53:54 -07:00
7a92bbfed2 etcdserver/*: move internal v2 packages
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-14 12:49:49 -07:00
294b5745d6 etcdserver/api/v3rpc: support watch fragmentation with max request bytes
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-14 12:35:50 -07:00
7088d2bf52 etcdserver/api/v3rpc: clean up, read lock on "prevKV"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-14 12:35:50 -07:00
e1df2156c7 etcdserver/api/v3rpc: clean up godoc
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-14 12:35:50 -07:00
bd43d174ae *: regenerate proto
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-14 12:35:50 -07:00
5be21c74e4 etcdserver/etcdserverpb: add "fragment" field to "WatchRequest/Response"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-14 12:35:50 -07:00
0a8dd44dc8 Merge pull request #9724 from ericchiang/security-disclosure
README.md: add security disclosure link
2018-05-14 11:19:39 -07:00
0f170ef4b3 README.md: add security disclosure link 2018-05-14 10:34:22 -07:00
67b1ff6724 Merge pull request #9712 from gyuho/unparam
*: test with "unparam", fix "v2v3" store stored get
2018-05-09 17:21:18 -07:00
e7adfb0ebf raft: use different parameters for tests
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-09 15:42:45 -07:00
df87dba218 tests/e2e: use different parameters
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-09 15:42:45 -07:00
c862712c73 pkg/transport: remove unused parameter from "wrapTLS"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-09 15:42:45 -07:00
1a83c6ad80 mvcc: remove unused parameters
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-09 15:42:45 -07:00
b7443ad849 integration: remove unused parameters
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-09 15:42:45 -07:00
42a1d4c3b6 functional: remove unused parameters
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-09 15:42:45 -07:00
ba7cc04bac etcdserver/api/v2v3: fix "getDir" with "sorted"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-09 15:42:45 -07:00
26e46702a2 etcdserver/v2store: remove unused testing.T parameter
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-09 15:42:42 -07:00
7c5cf7013f etcdserver/v2auth: remove unused parameters
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-09 15:39:44 -07:00
8235982f6e etcdserver/api/v2http: remove unused parameters
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-09 15:39:44 -07:00
d7c4c226fe functional/tester: remove shadowed error variable
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-09 15:39:44 -07:00
f091641e46 etcdmain: remove shadowed error variable
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-09 15:39:44 -07:00
167c711467 etcdctl/ctlv3: fix fmt test warnings
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-09 15:39:44 -07:00
775e9d5ba6 test: add "unused_pass"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-09 15:39:44 -07:00
054cdcd127 tests/Dockerfile: add "mvdan.cc/unparam"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-09 15:39:44 -07:00
e0b74d4656 Merge pull request #9707 from spzala/master
etcdctl/check: create progress bar for datascale
2018-05-09 15:37:43 -07:00
fc9ca59ced Merge pull request #9710 from gyuho/mvcc-delete
mvcc: use latest revision to tombstone
2018-05-09 11:07:21 -07:00
a519464f3e Merge pull request #9711 from jpbetz/release-script-fixes-2
scripts: Fix remote tag check, gcloud login and umask in release script
2018-05-09 10:46:46 -07:00
4319a8a2ba scripts: Fix remote tag check, gcloud login and umask in release script 2018-05-09 10:37:24 -07:00
4e24a0f34b CHANGELOG-3.3: update date
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-09 09:25:01 -07:00
5165344981 mvcc: use latest revision to tombstone
We replace/insert into in-memory B-tree, which means
we only keep a single node per key thus do not support
delete by revision on B-tree. So, (*keyIndex).tombstone
has always been marked with latest revision.

tombstone with key's modified revision panics:

panic: store.keyindex: put with unexpected smaller revision [{2 0} / {2 0}]

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-09 09:07:39 -07:00
ef23564ebf Merge pull request #9708 from gyuho/functional-test
functional: configure KV stresser weights
2018-05-08 16:50:09 -07:00
cb030e96fa functional.yaml: configure stresser weights
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-08 16:19:12 -07:00
b1832d2f3c functional/tester: configurable stresser weights
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-08 16:18:45 -07:00
5f762a3193 functional/rpcpb: add stresser weights
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-08 16:18:19 -07:00
8ba41d5191 etcdctl/check: create progress bar for datascale
Create a progress bar. The bar will show progress for a given workload.

Fixes #9328
2018-05-08 18:32:54 -04:00
b91ed542a6 Documentation/upgrades: clarify logger flag changes
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-07 11:43:43 -07:00
d6a2c4d9d9 doc: preview v3.5 changes in v3.4
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-04 21:30:23 -07:00
7301a4e2f8 CHANGELOG-3.5: deprecate '/config/local/log'
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-04 21:30:23 -07:00
bbe1106bf1 Documentation: deprecate '/config/local/log' in v3.5
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-04 21:30:23 -07:00
807770740a etcdserver/api: add TODO to deprecate '/config/local/log'
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-04 21:30:23 -07:00
f42d9a8451 Merge pull request #9702 from gyuho/fix-tests
tests/e2e: fix v2 proxy tests
2018-05-04 21:03:17 -07:00
12e2d4a15c etcdmain: fix log output
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-04 20:07:45 -07:00
03bf62f569 tests/e2e: update v2 proxy ready message
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-04 20:04:01 -07:00
f556b78e8c etcdmain: update v2 proxy ready message
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-04 20:03:56 -07:00
72cc355c13 Merge pull request #9697 from gyuho/log-log-log
*: add more structured logger
2018-05-04 14:03:50 -07:00
03ef9745a9 mvcc: add more structured logging
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-04 13:15:51 -07:00
a32db53765 etcdserver: add details to structured logger
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-04 12:31:35 -07:00
a5b682e40a raftsnap: clean up import paths
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-04 12:31:35 -07:00
e11f3d852f rafthttp: add more details to structured logger
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-04 12:31:35 -07:00
2712d31241 Merge pull request #9687 from jxuan/config-bcryptcost
*: make bcrypt-cost configurable
2018-05-04 12:26:01 -07:00
a890007b97 CHANGELOG-3.4: remove blank line
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-04 12:17:30 -07:00
12ce877c6d CHANGELOG: update
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-04 12:14:41 -07:00
056b03ee1a Merge pull request #9692 from hexfusion/grpc_auth
contrib: add gRPC gateway script for user/add with full chain TLS.
2018-05-04 13:35:37 -04:00
4c928813fb contrib: add gRPC gateway script for user/add with full chain TLS. 2018-05-04 10:03:26 -04:00
14a2d0d54d Merge pull request #9688 from gyuho/fix-watch
etcdctl/ctlv3: fix watch with exec commands, interactive mode flag parsing
2018-05-03 18:46:23 -07:00
38fcfb63b4 Makefile: add ".coverprofile" to "make clean"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-03 17:22:34 -07:00
11028331e6 gitignore: add "*.coverprofile"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-03 17:22:34 -07:00
acf671a94c tests/e2e: separate coverage tests for exec commands
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-03 17:22:34 -07:00
44cda79105 etcdctl/ctlv3: fix watch with exec commands
Following command was failing because the parser incorrectly
picks up the second "watch" string in exec command, thus
passing wrong exec commands.

```
ETCDCTL_API=3 ./bin/etcdctl watch aaa -- echo watch event received

panic: runtime error: slice bounds out of range

goroutine 1 [running]:
github.com/coreos/etcd/etcdctl/ctlv3/command.parseWatchArgs(0xc42002e080, 0x8, 0x8, 0xc420206a20, 0x5, 0x6, 0x0, 0x0, 0x0, 0x0, ...)
	/home/gyuho/go/src/github.com/coreos/etcd/etcdctl/ctlv3/command/watch_command.go:303 +0xbed
github.com/coreos/etcd/etcdctl/ctlv3/command.watchCommandFunc(0xc4202a7180, 0xc420206a20, 0x5, 0x6)
	/home/gyuho/go/src/github.com/coreos/etcd/etcdctl/ctlv3/command/watch_command.go:73 +0x11d
github.com/coreos/etcd/vendor/github.com/spf13/cobra.(*Command).execute(0xc4202a7180, 0xc420206960, 0x6, 0x6, 0xc4202a7180, 0xc420206960)
	/home/gyuho/go/src/github.com/coreos/etcd/vendor/github.com/spf13/cobra/command.go:766 +0x2c1
github.com/coreos/etcd/vendor/github.com/spf13/cobra.(*Command).ExecuteC(0x1363de0, 0xc420128638, 0xc420185e01, 0xc420185ee8)
	/home/gyuho/go/src/github.com/coreos/etcd/vendor/github.com/spf13/cobra/command.go:852 +0x30a
github.com/coreos/etcd/vendor/github.com/spf13/cobra.(*Command).Execute(0x1363de0, 0x0, 0x0)
	/home/gyuho/go/src/github.com/coreos/etcd/vendor/github.com/spf13/cobra/command.go:800 +0x2b
github.com/coreos/etcd/etcdctl/ctlv3.Start()
	/home/gyuho/go/src/github.com/coreos/etcd/etcdctl/ctlv3/ctl_nocov.go:25 +0x8e
main.main()
	/home/gyuho/go/src/github.com/coreos/etcd/etcdctl/main.go:40 +0x17b
```

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-03 17:22:34 -07:00
2ad0acdea8 CHANGELOG: add watch exec command fix
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-03 15:20:05 -07:00
cac6ed664c Merge pull request #9690 from gyuho/wal-error
wal,fileutil: add more logs, clarify error messages
2018-05-03 14:57:44 -07:00
f3d9a85697 wal: add warnings on fsync, flock fail paths
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-03 14:01:06 -07:00
2bb1a268b3 pkg/fileutil: clarify flock errors
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-03 14:00:42 -07:00
bf432648ae *: make bcrypt-cost configurable 2018-05-03 11:43:32 -07:00
62dfb89a89 Merge pull request #9683 from gyuho/sss
*: clarify missing snapshot file error message/warning
2018-05-02 14:45:32 -07:00
47ab4e22d2 etcdserver: clarify errors from "openSnapshotBackend"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-02 14:17:22 -07:00
e2af59e4d1 raftsnap: clarify "ErrNoDBSnapshot"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-02 14:17:00 -07:00
cc44c08d94 Merge pull request #9682 from gyuho/zzz
*: support structured logging in v2 auth/http
2018-05-02 13:29:15 -07:00
617e0aaafb CHANGELOG-3.4: move "Tooling" above
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-02 13:28:22 -07:00
5828efda38 *: use "zap.Field"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-02 13:26:39 -07:00
44385bc7b9 vendor: upgrade "go.uber.org/zap" to v1.8.0
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-02 13:25:31 -07:00
3ed6c967ce pkg/proxy: silence http server logs
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-02 12:59:29 -07:00
7da365bd45 etcdmain: silence http server logs
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-02 12:59:17 -07:00
e7e31e9529 functional: silence http server logs
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-02 12:59:08 -07:00
1d18f45caf integration: silence http server logs
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-02 12:58:56 -07:00
58b7ab97eb integration: use structured logging in peer handler
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-02 12:53:56 -07:00
154d7ca4f2 embed: use structured logging in peer handler
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-02 12:53:46 -07:00
c60054abea etcdserver/api/etcdhttp: use structured logging in peer handler
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-02 12:53:28 -07:00
4d863dac5a mvcc: support structured logging in compact restore
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-02 11:57:23 -07:00
d2e1484762 integration: support structured logging in "v2http"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-02 11:57:23 -07:00
26b0c84d29 embed: support structured logging in "v2http"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-02 11:57:23 -07:00
cccf77db9e etcdserver/api/v2http: support structured logging
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-02 11:57:23 -07:00
3b38cb305f etcdserver/api/etcdhttp: support structured logging
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-02 11:57:23 -07:00
98fcd67e9f etcdserver/v2auth: support structured logging
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-02 11:57:20 -07:00
859172e84f Merge pull request #9638 from hexfusion/df
Documentation: binding listeners must be IP.
2018-05-02 09:56:43 -07:00
53f51b2f0c Merge pull request #9676 from gyuho/logger
*: highlight "--log-package-levels" deprecation in v3.5
2018-05-02 09:39:18 -07:00
2afd827788 Documentation: binding listeners must be IP. 2018-05-02 06:56:44 -04:00
c94cd5eee8 Merge pull request #9678 from gyuho/integration-logger
integration: use "zap" in tests
2018-05-01 16:44:58 -07:00
6cf3dae93e etcdserver/api/v3rpc: fix race in stream error logging
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-01 16:19:55 -07:00
38326d002e etcdserver/v2store: use "zap" logger in v2v3 tests
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-01 16:15:09 -07:00
f6a14fb72c clientv3: use "zap" logger in integration tests
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-01 16:15:09 -07:00
21d75570ee integration: use "zap" logger
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-01 16:15:09 -07:00
9a2796ff9b CHANGELOG-3.4: highlight "CLUSTER_DEBUG" in "integration"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-01 16:14:58 -07:00
f85c3bfb3e Merge pull request #9677 from gyuho/lll
etcdserver: clarify server membership change logging
2018-05-01 15:31:32 -07:00
b3bd5887cd etcdserver: clarify server membership change logging
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-01 15:06:29 -07:00
24e2af4289 Merge pull request #9674 from gyuho/test-script
*: use Go 1.10.2 and Go 1.9.6
2018-05-01 11:50:39 -07:00
d80ef1fb51 etcd.conf.yml.sample: remove "--log-package-levels"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-01 11:48:39 -07:00
9e7a3e5e91 Documentation/upgrades: highlight "--log-package-levels"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-01 11:48:19 -07:00
21fdde59ad CHANGELOG-3.5: deprecate "--log-package-levels" in v3.5
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-01 11:48:02 -07:00
02ed51d300 Merge pull request #9657 from yaojingguo/remove-dead-code
contrib/raftexample: remove useless check
2018-05-01 10:19:35 -07:00
a6430644ad Merge pull request #9669 from yaojingguo/fix-typo
contrib/raftexample: fix typo
2018-05-01 10:18:42 -07:00
1c44634f6e CHANGELOG-3.4: use Go 1.10.2
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-01 10:11:09 -07:00
4a01c4e98a Makefile: use Go 1.10.2
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-01 10:11:05 -07:00
932ef6c4a3 tests: use Go 1.10.2 in Semaphore test
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-01 10:08:43 -07:00
79e9178181 travis: use Go 1.10.2
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-01 10:08:27 -07:00
18e1686bdf test: only print test targets in verbose mode
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-05-01 10:07:25 -07:00
200401248a Merge pull request #9665 from gyuho/unconvert
test: integrate github.com/mdempsky/unconvert
2018-05-01 09:52:44 -07:00
08d28d6e5a Merge pull request #9667 from gyuho/strings
*: remove "strings.Compare == 0"
2018-05-01 09:52:30 -07:00
0659ed6118 Merge pull request #9672 from joelegasse/listen-metrics-doc
docs: Update documentation around --listen-metrics-urls
2018-05-01 12:51:27 -04:00
7ea9059453 docs: Update documentation around --listen-metrics-urls
The `--listen-metrics-urls` also responds to the `/health` endpoint, but
that was not made clear in the documentation. These updates should help
explain how else that flag can be used.
2018-05-01 11:02:22 -04:00
3d12e36c7e raft: merge test cases of pre-candidate with the normal one
So result checking just compares the expected with output and
becomes more readable.
2018-05-01 17:08:37 +08:00
ad060a84ad Merge pull request #9661 from gyuho/dont-log-password
etcdserver: not print password in the warning message of expensive request
2018-05-01 09:21:50 +02:00
0303480b1a contrib/raftexample: fix typo 2018-05-01 11:22:36 +08:00
b44e43278a etcdctl/ctlv3: fix "unconvert" warnings
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-30 15:32:16 -07:00
1917e5c543 pkg/*: fix "unconvert" warnings
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-30 15:32:16 -07:00
1af2228fca test: add "unconvert" test
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-30 15:32:16 -07:00
78d0c8426e functional: fix "unconvert" warnings
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-30 15:32:16 -07:00
53ade5e872 rafthttp: fix "unconvert" warnings
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-30 15:32:16 -07:00
eae30a6c9b etcdserver: fix "unconvert" warnings
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-30 15:32:16 -07:00
8a28e73862 wal: fix "unconvert" warnings
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-30 15:32:16 -07:00
561fab1650 lease: fix "unconvert" warnings
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-30 15:32:16 -07:00
3df30b9c7f mvcc: fix "unconvert" warnings
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-30 15:32:16 -07:00
ae71076579 auth: fix "unconvert" warnings
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-30 15:32:16 -07:00
42147ae0a0 tests/Dockerfile: add "github.com/mdempsky/unconvert"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-30 15:32:16 -07:00
fd7e7a01ad tools/etcd-dump-logs: fix minor typo
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-30 15:30:20 -07:00
48f28b9d27 lease/leasehttp: remove "strings.Compare != 0"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-30 15:11:26 -07:00
86cee93d6b etcdctl/ctlv3: remove "strings.Compare == 0"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-30 15:11:11 -07:00
e9d5789dd4 auth: remove "strings.Compare == 0"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-30 15:10:56 -07:00
a9225c164a etcdserver: not print password in the warning message of expensive request
Fix https://github.com/coreos/etcd/issues/9635
2018-04-30 13:44:27 -07:00
b8e8d75677 Merge pull request #9663 from gyuho/test
test: fix "markdown_you_pass"
2018-04-30 12:46:52 -07:00
358640de46 test: fix "markdown_you_pass"
"find" command was matching "vendor" directory in
my local machine.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-30 11:42:35 -07:00
fcf4241fd3 Merge pull request #9662 from fanminshi/use_svg_logo
readme: use svg format for logo
2018-04-30 11:38:11 -07:00
86ce5bc1ee readme: use logo svg format 2018-04-30 11:27:15 -07:00
9718dd81d9 Merge pull request #9660 from gyuho/SA4004
auth: fix SA4004 - unconditionally terminated for-loop
2018-04-30 11:19:33 -07:00
d398d41ff0 auth: break TLS VerifiedChains for-loop early
Fix "auth/store.go:1147:4: the surrounding loop is unconditionally terminated (SA4004)"

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-30 10:34:59 -07:00
cdadc4638d test: enable static analysis "SA4004"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-30 10:04:44 -07:00
cfa1efc7eb contrib/raftexample: remove useless check
`err == raftsnap.ErrNoSnapshot` being false implies that
`err != raftsnap.ErrNoSnapshot` is true.
2018-04-29 11:34:44 +08:00
4bab1e1be2 Merge pull request #9654 from gyuho/auth
auth: support structured logging
2018-04-27 14:47:02 -07:00
5fd9270d6c test: disable SA4004 temporarily
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-27 14:21:17 -07:00
30dd8a7dde etcdserver: support structured logging for auth
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-27 14:19:51 -07:00
da4a982b1c auth: support structured logging
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-27 14:19:48 -07:00
e83cc218fc Merge pull request #9651 from gyuho/netutil
pkg/netutil: use structured logging for TCP resolve
2018-04-27 12:38:23 -07:00
b30a14d100 Merge pull request #9652 from gyuho/systemd
vendor: upgrade go-systemd to v16, clean unused vendor
2018-04-27 12:38:09 -07:00
9c4ab836de CHANGELOG-3.4: add "go-systemd" upgrade
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-27 11:49:51 -07:00
a3de1ea731 vendor: remove unused, upgrade "go-systemd"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-27 11:46:44 -07:00
4baaf322fa pkg/netutil: create doc.go
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-27 11:41:50 -07:00
0e565c8960 etcdserver: use structured logging in "advertiseMatchesCluster"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-27 11:40:30 -07:00
e8ba8feaed pkg/netutil: use structured logging for TCP resolve
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-27 11:40:13 -07:00
61ae9cbd85 Merge pull request #9645 from jaricftw/fix-comments
raft: fix a few comments
2018-04-27 11:25:46 -07:00
d14b705355 raft: fix a few comments 2018-04-27 11:25:06 -07:00
7582a28cc6 Merge pull request #9628 from wenjiaswe/new1
etcd-dump-logs: add entry-type flag to list entries of specific types…
2018-04-27 10:40:35 -07:00
4a09318243 Merge pull request #9650 from wenjiaswe/new1ChangeLog
CHANGELOG: update from #9628
2018-04-27 10:39:13 -07:00
001560829e CHANGELOG: update from #9628 2018-04-27 10:30:04 -07:00
5fca0ec7bd Merge pull request #9649 from cosgroveb/cleanup_lease_queue_todo
lease: Clean-up old TODO around lease map and priority queue
2018-04-27 09:24:59 -07:00
13ed9f3197 lease: Clean-up old TODO around lease map and priority queue
This TODO was addressed in #9418.
2018-04-27 10:08:15 -05:00
553325721a etcd-dump-logs: add entry-type flag to list entries of specific types and add test 2018-04-26 18:59:51 -07:00
02e2e3def7 tests/docker-dns-srv: revert Dockerfile change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-26 15:13:09 -07:00
c460a09225 tests: use zap logger in DNS tests
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-26 15:12:13 -07:00
8baa2401b1 Merge pull request #9644 from gyuho/log
*: add more structured logging supports
2018-04-26 15:02:55 -07:00
829c4479f3 etcdmain: support structured logging for discovery service
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-26 14:36:22 -07:00
c316e6773b embed: clean up structured logging calls
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-26 14:36:22 -07:00
f7f6fdeb52 etcdserver: support structured logger for discovery, compactor
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-26 14:36:22 -07:00
6a016cbd86 discovery: support structured logger
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-26 14:36:18 -07:00
f269c42aad compactor: support structured logger
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-26 14:21:15 -07:00
73efa9fded CHANGELOG-3.5: highlight "--log-outputs" change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-26 12:28:54 -07:00
a0f1ed3d6b Merge pull request #9643 from gyuho/doc
*: improve documentation around logger change
2018-04-26 11:54:40 -07:00
2271db7552 pkg/logutil: add godoc on zap encoder field names
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-26 11:54:00 -07:00
6d0f71e4c2 embed: improve "--log-outputs" error message, add godoc
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-26 11:54:00 -07:00
b0e4fc3974 CHANGELOG: update with latest logger change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-26 11:54:00 -07:00
fd227254ef Documentation/upgrades: update guides with latest logger change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-26 11:54:00 -07:00
dca3f5e3ad Merge pull request #9626 from yudai/fix_set_inexist_dir
etcdserver: Fix v2v3api set to create parent directly if not exists
2018-04-26 11:50:27 -07:00
624f421d21 Merge pull request #9642 from lorneli/idutil-dev
pkg/idutil: use count field as atomic variable
2018-04-26 11:48:23 -07:00
54827d47ee pkg/idutil: use count field as atomic variable
Use atomic.AddUint64 instead of mutex lock to inc count field.

Bench result:
benchmark           old ns/op     new ns/op     delta
BenchmarkNext-4     163           26.3          -83.87%
2018-04-27 00:44:45 +08:00
3c25465855 etcdserver: Fix v2v3api set to create parent directly if not exists
When a new file is created under an non existent directly,
the v2 API automatically create the parent directly.
This commit aligns the behaviour of v2v3 emulation to comply with the v2
API.
2018-04-25 17:36:59 -07:00
b6578c8f4d embed: error when different values are specified in "--log-output"
"--log-output default,a.log" should error out when etcd
runs as a systemd unit. We expect 'default' to be overridden
explicitly.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-25 17:09:22 -07:00
755b508a8e Merge pull request #9632 from ericchiang/grpc-logs-spam
etcdctl/ctlv3/command: don't print gRPC WARNING logs by default
2018-04-25 17:02:06 -07:00
55001977ed etcdctl/ctlv3/command: don't print gRPC WARNING logs by default
Despite holding important information, these are too noisy.

See https://github.com/coreos/etcd/pull/9623
2018-04-25 15:26:54 -07:00
62a385b1ca CHANGELOG-3.4: add v2v3 emulation fix
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-25 14:50:48 -07:00
ccf959c0d4 Merge pull request #9624 from gyuho/journald
*: support journald with structured logging zap, rename to "--log-outputs"
2018-04-25 14:22:03 -07:00
154e2ac38e embed: do not import journald dependencies on windows
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-25 13:52:53 -07:00
9cd9ae284f pkg/logutil: do not build journald logger on windows
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-25 13:52:30 -07:00
88c70d0ca9 embed,integration,snapshot: use "LogOutputs"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-25 13:27:31 -07:00
b748abca67 *: change typo in "auto-compaction-retention" field
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-25 13:20:26 -07:00
58a603448a *: rename to "--log-outputs" in docs
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-25 13:20:26 -07:00
a6c30eab96 functional: rename to "log-outputs"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-25 13:20:26 -07:00
af5bc439b3 embed,etcdmain: rename to "--log-outputs" flag
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-25 13:20:26 -07:00
1539fddb27 etcd.conf.yml.sample: rename to "log-outputs"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-25 13:20:26 -07:00
22609a65b5 Documentation/upgrades: highlight "--log-outputs"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-25 13:20:26 -07:00
0e4c94c052 CHANGELOG: highlight "--log-outputs" flag
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-25 13:20:22 -07:00
a113d6c160 functional/rpcpb: change to LogOutputs
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-25 11:05:09 -07:00
53c5cd55f7 Documentation/upgrades: highlight "embed.Config.LogOutputs" change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-25 10:49:37 -07:00
d4987f4633 CHANGELOG: track logger changes
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-25 10:47:58 -07:00
f99cb35d29 embed: rename "LogOutput" to "LogOutputs"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-25 10:28:13 -07:00
3ea7a5d0bd etcdserver: add "LoggerCore" field for Raft logger
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-25 10:16:54 -07:00
d33a74d380 embed: add "loggerCore" field for Raft logger
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-25 10:16:51 -07:00
a34dd272b0 pkg/logutil: change "NewRaftLogger" function signature
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-25 10:11:35 -07:00
69c51e2c4a embed: change "loggerConfig" to "*zap.Config"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-25 10:05:12 -07:00
6df3179c06 pkg/logutil: add "NewRaftLoggerFromZapCore"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-25 10:05:12 -07:00
48d5542a76 embed: set journald logging with zap
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-25 10:05:12 -07:00
1fa80bf520 pkg/logutil: add "NewGRPCLoggerV2FromZapCore"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-25 10:05:12 -07:00
fcbb30364a pkg/logutil: add "NewJournaldWriter"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-25 10:05:12 -07:00
e73f909fef Merge pull request #9623 from ericchiang/grpc-logs
etcdctl/ctlv3/command: enable gRPC WARNING logs by default
2018-04-25 09:44:49 -07:00
189d24e00f Merge pull request #9627 from shenlanse/update-k8s-deploy
kubernetes-deploy: set etcd pod restartPolicy=Always
2018-04-25 09:44:03 -07:00
b14ab95b38 Merge pull request #9625 from jpbetz/release-script-fixes
scripts: Fix a few etcd release script bugs and make it reenterant.
2018-04-25 09:43:25 -07:00
01996012bb kubernetes-deploy: set etcd pod restartPolicy=Always 2018-04-25 10:00:18 +08:00
bee6f34197 scripts: Fix a few etcd release script bugs and make it reenterant. 2018-04-24 17:03:14 -07:00
9ce295a812 etcdctl/ctlv3/command: enable gRPC WARNING logs by default 2018-04-24 16:19:02 -07:00
f1b3b32745 CHANGELOG: Set release data of 3.1.14 and 3.2.19 2018-04-24 14:37:24 -07:00
a0b4624f3b CHANGELOG-3.3: update v3.3.4 release date
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-24 13:45:16 -07:00
7cc92fc2af Merge pull request #9618 from coreos/help-allowed-cn
etcdmain: document peer-cert-allowed-cn flag
2018-04-24 13:42:20 -07:00
30ee30ffeb etcdmain: document peer-cert-allowed-cn flag 2018-04-24 13:31:54 -07:00
61404132a9 Merge pull request #9582 from jpbetz/release-script
[WIP] scripts: Add script that performs entire release workflow
2018-04-24 12:04:15 -07:00
3802866870 Merge pull request #9597 from gyuho/flag-doc
Documentation/op-guide: add missing flags, clarify "--initial*" flags
2018-04-24 11:29:35 -07:00
3da4c8a585 Merge pull request #9607 from jpbetz/changelog-3-1-14--3-2-19
CHANGELOG: Add 3.1.14 and 3.2.19 release notes
2018-04-23 16:54:34 -07:00
f0a214db2a CHANGELOG: Add 3.1.14 and 3.2.19 release notes 2018-04-23 16:36:20 -07:00
c8d08a8898 functional/tester: prevent embedded etcd running with failpoints
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-23 14:07:43 -07:00
4f45f5d9dd Merge pull request #9591 from gyuho/election
*: add --initial-election-tick-advance to configure election fast-forward on bootstrap
2018-04-23 10:17:49 -07:00
e81f9d850e Merge pull request #9601 from gyuho/doc-compact
*: improve compaction documentation
2018-04-23 10:14:22 -07:00
ea639fdb7f Documentation/integrations: add PHP v3 client 2018-04-22 10:12:26 +08:00
7459f017de Documentation/op-guide: add missing flags, clarify "--initial*" flags
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-20 15:57:53 -07:00
e23ee1a1a7 Documentation/upgrades: clean up snapshot change doc
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-20 15:08:23 -07:00
dab54fab3f Documentation/op-guide: improve compaction guide
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-20 15:08:21 -07:00
353f938b8d Merge pull request #9599 from gyuho/test-parallel
*: parallelize integration tests with CPU parameters
2018-04-20 14:40:22 -07:00
afef4a594a travis: parallelize integration with CPU parameters
To maximize our Travis 5-worker usage.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-20 14:10:33 -07:00
ad4b747ed4 test: configure go test -cpu flag
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-20 14:10:30 -07:00
83f7f174da etcdserver: print server configuration duration fields in string
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-20 13:11:11 -07:00
e5d160fceb Merge pull request #9598 from gyuho/compaction
*: highlight breaking change in compaction retention
2018-04-20 13:01:26 -07:00
6af44fa4fe Documentation/upgrades: highligh YAML auto-compaction-retention flag change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-20 12:58:32 -07:00
fafa672f87 CHANGELOG: clarify compaction YAML type
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-20 12:04:25 -07:00
5f8abdc227 etcdserver: log auto compaction on server start
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-20 11:58:36 -07:00
8b68a71cb5 etcd.conf.yml.sample: remove deprecated fields
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-20 11:51:34 -07:00
0411b89d69 pkg/proxy: fix fmt
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-20 11:26:38 -07:00
f205b22434 etcdserver: fix snapshot panic message
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-20 11:20:17 -07:00
01fc2901b6 etcdmain: sync logger on exit
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-20 10:58:33 -07:00
c76c696ed7 embed: sync logger on server close
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-20 10:54:37 -07:00
337a751180 Merge pull request #9595 from gyuho/ppp
pkg/proxy: strip host on local listener
2018-04-20 10:40:08 -07:00
8006d3305e pkg/proxy: strip host on local listener
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-20 10:35:01 -07:00
8058513d84 *: clarify gRPC gateway changelogs
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-20 10:33:03 -07:00
2d7cb9dac7 CHANGELOG: add latest changes
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-19 17:45:23 -07:00
21d2e2ab6e etcdserver: add more tick fast-forward logs
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-19 17:45:23 -07:00
85b7a59c56 etcdmain: add "--initial-election-tick-advance"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-19 17:45:23 -07:00
bffc532f9f embed: add "InitialElectionTickAdvance"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-19 17:45:23 -07:00
3fe9030d34 integration: set InitialElectionTickAdvance to true by default
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-19 17:45:23 -07:00
4bec0d7d67 etcdserver: add "InitialElectionTickAdvance"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-19 17:45:23 -07:00
b933603a43 functional: add TODO for network isolate tests
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-19 17:44:16 -07:00
f5b8e1eb95 functional/tester: log start revision
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-19 17:40:08 -07:00
25cc3bb71b Merge pull request #9588 from gyuho/aaa
rafthttp: add more debugging logs
2018-04-19 13:26:47 -07:00
87dfe53798 Procfile: use zap in Procfile
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-19 13:19:02 -07:00
8296ce0930 rafthttp: add/fix debugging lines
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-19 13:18:57 -07:00
8f8b32b253 Merge pull request #9587 from mborsz/is_leader
etcdserver: add is_leader prometheus metric that is 1 on the leader.
2018-04-19 10:04:34 -07:00
b0112086d6 Merge pull request #9354 from hexfusion/u_sock
embed: explicitly define unix proto
2018-04-19 08:16:38 -07:00
46bc966aa7 etcdserver: add is_leader prometheus metric that is 1 on the leader.
Before this change, we had now way to find a leader using /metrics
endpoint. This commit adds a metric to do that.
2018-04-19 11:47:40 +02:00
e5c9483cd8 Merge pull request #9511 from jcalvert/index_compaction_breakup
mvcc: Clone for batch index compaction and shorten lock
2018-04-18 15:24:21 -07:00
7750974760 scripts: Add scripts/release that performs 'etcd-release-runbook' (https://goo.gl/Gxwysq) style release workflow 2018-04-18 13:35:41 -07:00
f176427791 mvcc: Clone the key index for compaction and lock on each item
For compaction, clone the original Btree for traversal purposes, so as to
not hold the lock for the duration of compaction. This allows read/write
throughput by not blocking when the index tree is large (> 1M entries).

mvcc: add comment for index compaction lock
mvcc: explicitly unlock store to do index compaction synchronously
mvcc: formatting index bench
mvcc: add release note for index compaction changes
mvcc: add license header
2018-04-18 13:29:27 -07:00
d0847f4f25 *: clean up/fix server structured logs
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-18 12:54:43 -07:00
229a0c9da6 Merge pull request #9580 from gyuho/log
embed: clean up initial server start logs
2018-04-17 15:01:52 -07:00
9c0c3cd606 Merge pull request #9579 from gyuho/log-output-multiple-files
*: support output logs to multiple files
2018-04-17 14:39:28 -07:00
a47c18ff5b embed: clean up initial server start logs
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-17 14:24:08 -07:00
6fec93fe42 CHANGELOG-3.4: highlight YAML log-output change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-17 13:34:07 -07:00
bf8601676e Documentation/upgrades: highlight YAML change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-17 13:31:25 -07:00
7215e54755 etcd.conf.yml: change "log-output" type
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-17 13:29:23 -07:00
8ee87787dd functional: use strings for LogOutput
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-17 13:03:09 -07:00
671e4a50bc CHANGELOG-3.4: add "LogOutput" change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-17 12:47:06 -07:00
8049df15c4 CHANGELOG-3.4: highlight embed.Config.LogOutput field change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-17 12:47:06 -07:00
cd7bfe1ea5 integration: set strings for LogOutput
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-17 12:47:06 -07:00
3e99487372 snapshot: set string for LogOutput
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-17 12:47:06 -07:00
1974785511 etcdmain: accept multiple values in "--log-output"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-17 12:47:06 -07:00
bf937535f5 embed: change "Config.LogOutput" to []string
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-17 12:47:06 -07:00
954afc9156 CHANGELOG-3.4: highlight multi-log writer change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-17 12:47:06 -07:00
f6f1e0cb65 embed: support multiple log outputs for structured logging
Zap support multi-writer by default.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-17 12:47:06 -07:00
406f23ce17 README: update meeting notes link
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-17 12:05:14 -07:00
41b855a48e Merge pull request #9577 from gyuho/null
*: use /dev/null to discard server logs
2018-04-17 10:33:52 -07:00
674388f599 integration: use /dev/null to discard server logs
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-17 06:14:03 -07:00
7c10c12ce7 snapshot: use /dev/null to discard server logs
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-17 06:13:52 -07:00
a31c38f3b0 embed: use /dev/null to discard server logs
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-17 06:13:24 -07:00
0e4c8dcedc CHANGELOG-3.4: use "/dev/null" to ignore logs
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-17 06:13:10 -07:00
46e19d21a1 Merge pull request #9572 from gyuho/eee
functional: run tests with embedded etcd, add logger field
2018-04-16 19:09:45 -07:00
18b3e45e96 *: support --log-output=discard
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-16 19:09:09 -07:00
1c44293f7e tests/e2e: comment out TestEtcdCorruptHash debugging lines
No need

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-16 19:04:34 -07:00
a3b9d828ed tests/e2e: fix gateway tests
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-16 18:25:30 -07:00
92c32743c9 tests/e2e: fix TestIssue6361
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-16 18:01:12 -07:00
ae9ccd883d etcdctl/ctlv3: fix snapshot command e2e tests
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-16 17:36:00 -07:00
b7ce6b7265 Documentation/upgrades: highlight wal, embed changes
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-16 17:36:00 -07:00
c716bea43c CHANGELOG-3.4: highlight WAL changes
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-16 17:36:00 -07:00
f63b5c15c7 functional/agent: fix etcd exec path check
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-16 17:36:00 -07:00
2ee2a96055 functional/tester: use binary for tests for now
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-16 17:36:00 -07:00
d1c2ae86ce functional/tester: handle "raft.ErrProposalDropped"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-16 17:36:00 -07:00
35a80bc910 integration,embed: ignore embed log output
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-16 17:36:00 -07:00
cc778746fc embed: support "io-discard" for logging, fix racey logging setup
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-16 17:36:00 -07:00
38e32a1b54 snapshot: ignore server logs
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-16 17:36:00 -07:00
2bd88e378c pkg/transport: check nil logger
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-16 17:36:00 -07:00
f34c5dc902 functional/tester: run tests with embedded etcd
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-16 17:36:00 -07:00
677894b4fa functional/agent: support embedded etcd
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-16 17:36:00 -07:00
c712e08a42 embed,etcdmain: support structured logger
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-16 17:36:00 -07:00
a7fd274c11 integration: support structured logger
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-16 17:36:00 -07:00
9063805180 contrib/tools: support structured logger
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-16 17:36:00 -07:00
6dbce6b9a4 clientv3,etcdctl: support structured logger
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-16 17:36:00 -07:00
d1c7d40a5e snapshot: support structured logger
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-16 17:36:00 -07:00
f57fa6abaf auth: support structured logger
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-16 17:36:00 -07:00
ce8348e3e0 raftsnap: support structured logger
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-16 17:36:00 -07:00
c68f625353 rafthttp: support structured logger
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-16 17:36:00 -07:00
fdbedacc83 wal: support structured logger
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-16 17:36:00 -07:00
c00c6cb685 mvcc: support structured logger
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-16 17:36:00 -07:00
0dad8abb6f pkg: support structured logger
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-16 17:36:00 -07:00
bdbed26f64 etcdserver: support structured logging
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-16 17:36:00 -07:00
f879c1de33 integration: use default logger "capnslog"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-16 17:36:00 -07:00
d5d4025f9a CHANGELOG-3.4: highlight logger change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-16 17:36:00 -07:00
041b9069a2 *: configure server logger
- Add/Document "logger" to support structured logging.
  - This makes functional tests run easier, since zap logger
    provides built-in log redirect to files.
  - "etcd --logger-option=zap" to enable structured logging.
- Current "capnslog" will still be used as "default".
  - We may switch the default or deprecate "capnslog" in v3.5.
  - Either way, will clearly be documented.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-16 17:36:00 -07:00
82e84a09e1 pkg/logutil: add "NewGRPCLoggerV2FromZap", "NewRaftLogger"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-16 17:36:00 -07:00
33128104c0 functional/agent: handle "embed.Etcd", logger sync
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-16 17:36:00 -07:00
575cf94852 functional/rpcpb: add "*Etcd.EmbedConfig", and logger fields
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-16 17:36:00 -07:00
f3b7fa545e Merge pull request #9574 from gyuho/btree
vendor: upgrade "google/btree"
2018-04-16 17:35:46 -07:00
96142c2d00 vendor: upgrade "google/btree" 2018-04-16 16:54:44 -07:00
ff6ff9d6e6 Merge pull request #9570 from gyuho/tls
*: fix TLS reload when cert includes only IPs (no domain names in SAN field)
2018-04-16 08:02:18 -07:00
2e4f856389 embed: explicitly define unix network 2018-04-15 16:30:44 -04:00
00b529e810 pkg/proxy: fix typos in field names
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-14 12:00:41 -07:00
9886e2161d Merge pull request #9571 from gyuho/net
pkg/proxy: make/simplify interface more extensible
2018-04-14 11:57:01 -07:00
5db4df762b pkg/proxy: make/simplify interface more extensible
Extend proxy for more advanced corrupt and packet drop testing.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-14 07:32:26 -07:00
03cf9c45f8 etcdserver: fix typo in "adjustTicks"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-13 14:53:51 -07:00
0b0a943a5e CHANGELOG: highlight TLS reload fixes
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-13 14:19:37 -07:00
ca86daeb76 Documentation/op-guide: explain TLS reload fix
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-13 14:19:37 -07:00
3f8d1738de pkg/transport: document how TLS reload works with IP only certs
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-13 14:19:37 -07:00
68802b333b integration: re-overwrite "httptest.Server" TLS.Certificates
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-13 14:19:34 -07:00
88c078d4bd pkg/transport: don't set certificates on tls config 2018-04-13 13:17:27 -07:00
b705f6f8f2 Revert "integration: fix httptest TLS server start"
This reverts commit 3d3ba8b9cb.
2018-04-13 13:06:09 -07:00
6ab9776601 integration: add "TestTLSReloadCopyIPOnly"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-13 13:02:45 -07:00
233af4b4ec integration: add IP only TLSInfos
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-13 12:03:55 -07:00
72e23a2b1b integration/fixtures-expired: add IP only certs
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-13 12:01:35 -07:00
334affa272 integration/fixtures: add IP only certs
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-13 11:58:36 -07:00
3d3ba8b9cb integration: fix httptest TLS server start
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-13 11:16:54 -07:00
08641dd48b .github: simplify templates
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-13 11:11:01 -07:00
f61528768e .github: clean up TEMPLATES
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-13 11:05:54 -07:00
487ea49442 dockerignore: remove
We don't have "Dockerfile" in repo root anymore.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-13 11:02:12 -07:00
8e00d764be gitignore: remove outdated lists
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-13 11:01:19 -07:00
9824959923 godir: remove
Godep is not used anymore.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-13 10:58:53 -07:00
0a92ba66fa functional/tester: fix racey map writes
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-12 13:21:52 -07:00
d69b7d28a0 MAINTAINERS: remove deprecated CoreOS email, update other maintainers
With latest email addresses.

CoreOS emails are being deprecated in a few weeks.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-12 11:51:56 -07:00
73446a51f5 V2Procfile: remove unused Procfile
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-12 11:49:11 -07:00
dfd5f1826f CHANGELOG: add 3.5, highlight gRPC gateway breaking changes
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-12 11:46:43 -07:00
2fc7fc1707 CHANGELOG: highlight "snapshot" package and godoc link
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-12 11:27:02 -07:00
1ac5007b4d Merge pull request #9568 from gyuho/sss
snapshot: enforce single endpoint to "Save" method
2018-04-12 11:23:29 -07:00
5ba4e7d533 functional/tester: fix unit tests
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-12 10:49:48 -07:00
8ae2bbf3c4 functional/rpcpb: use new snapshot package interface
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-12 10:49:48 -07:00
90e5af76f3 etcdctl/ctlv3: use new snapshot package
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-12 10:49:48 -07:00
a2b1449431 snapshot: enforce single endpoint in client, change interface
To enforce single endpoint in client configuration.
And pass client object only to "Save" method.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-12 10:49:45 -07:00
70341b1614 Merge pull request #9565 from gyuho/quorum-disaster
functional: simulate quorum disaster
2018-04-11 21:47:37 -07:00
f72449c637 functional.yaml: skip recover test for now
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 21:13:27 -07:00
ce19e0b4b5 functional: increase dial timeout
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 20:18:17 -07:00
554dfaa4ba functional/tester: fix govet errors
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 19:53:54 -07:00
099f109850 CHANGELOG-3.4: add quorum loss failure case
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 19:52:23 -07:00
23ce3a1acc functional: rename to "listCases"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 19:52:23 -07:00
d275437c05 functional/tester: whitelist lease expire checker on snapshot restore
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 19:52:23 -07:00
f574a9aaed functional/tester: add "EtcdClientEndpoints" to "Checker"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 19:52:23 -07:00
e9c4bad2d1 functional/tester: add "Checker", remove compositeChecker
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 19:52:23 -07:00
2fc3eb0c56 functional/rpcpb: clean up Checker
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 19:52:23 -07:00
448e0fc481 functional: wait election timeout after member add
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 19:52:23 -07:00
bd235ab8f9 functional/tester: save SnapshotInfo from response
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 19:52:23 -07:00
f56d2c61b2 functional/rpcpb: fix os.Remove error in SnapshotPath
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 19:52:23 -07:00
888b55e91b functional/tester: implement fetchSnapshotCaseQuorum
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 19:52:23 -07:00
7213a9aabc functional/agent: handle "RESTART_FROM_SNAPSHOT"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 19:52:23 -07:00
606fa6fd96 functional/rpcpb: add "RESTART_FROM_SNAPSHOT"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 19:52:23 -07:00
f725bace31 functional/agent: implement "handle_RESTORE_SNAPSHOT_AND_RESTART_ETCD"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 19:52:23 -07:00
b2b37928e3 functional/rpcpb: implement "RestoreSnapshot"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 19:52:23 -07:00
a44a88ce79 functional/rpcpb: add "RESTORE_SNAPSHOT_AND_RESTART_ETCD"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 19:52:23 -07:00
3815d6edb7 functional: rename "FailureCase" to "Case"
Later to add benchmark marks

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 19:52:23 -07:00
251e783d3f functional/rpcpb: add "EtcdOnSnapshotRestore"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 19:52:23 -07:00
3c5147d906 functional/tester: implement "fetchSnapshotAndFailureQuorum"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 19:52:23 -07:00
6b128bfb3b functional/tester: rename files, adding LEADER_SNAPSHOT case
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 19:52:23 -07:00
e2bb03b39b functional/tester: add sendOpWithResp for SnapshotInfo
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 19:52:23 -07:00
e859883e78 functional: add "SnapshotInfo"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 19:52:23 -07:00
ca137afe8a functional: rename to "SIGQUIT_AND_REMOVE_QUORUM_AND_RESTORE_LEADER_SNAPSHOT_FROM_SCRATCH"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 19:52:23 -07:00
f9127dba9c functional/tester: implement "new_FailureCase_SIGQUIT_AND_REMOVE_QUORUM_AND_RESTORE_SNAPSHOT_FROM_SCRATCH"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 19:52:23 -07:00
67e398c86a functional/cluster: handle "SIGQUIT_AND_REMOVE_QUORUM_AND_RESTORE_SNAPSHOT_FROM_SCRATCH"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 19:52:23 -07:00
473a472607 functional/tester: fix "failureQuorum"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 19:52:23 -07:00
2942a8044d functional/agent: add "handle_FETCH_SNAPSHOT"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 19:52:23 -07:00
587dd4e732 functional/rpcpb: add "FETCH_SNAPSHOT" Operation
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 19:52:23 -07:00
2b249902da functional/rpcpb: implement FetchSnapshot
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 19:52:23 -07:00
77824c2ed6 functional: add "SIGQUIT_AND_REMOVE_QUORUM_AND_RESTORE_SNAPSHOT_FROM_SCRATCH" to functional.yaml
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 19:52:23 -07:00
f04902dbed functional: rename etcd log paths
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 19:52:23 -07:00
4e7705e9e5 functional: add snapshot path to configuration
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 19:52:23 -07:00
fdf4a12d3c test: rename etcd functional test data directories
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 19:52:23 -07:00
a0c0dc2f09 functional/rpcpb: add "Member.SnapshotPath", more description
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 19:52:23 -07:00
81f632f2a1 functional/rpcpb: add "SIGQUIT_AND_REMOVE_QUORUM_AND_RESTORE_SNAPSHOT_FROM_SCRATCH"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 19:52:23 -07:00
3f29d25cfa CHANGELOG: add v2 server stat fix
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 19:51:42 -07:00
836fffa22a Merge pull request #9562 from disksing/data-race
etcdserver/stats: fix stats data race.
2018-04-11 19:46:49 -07:00
10bf0283be etcdserver/stats: make all fields guarded by mutex. 2018-04-12 10:43:11 +08:00
2c1840c1b8 Documentation/dev-guide: make indentation consistent
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 11:32:16 -07:00
9df1964aeb Documentation/dev-guide: highlight gRPC gateway endpoint changes
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 10:40:59 -07:00
1fa2e93051 CHANGELOG-3.4: track functional tests with membership reconfiguration
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 10:26:30 -07:00
c77ffcc505 Merge pull request #9564 from gyuho/membership-reconfiguration-tests
functional: add membership reconfiguration tests
2018-04-11 10:25:39 -07:00
512445f089 functional: do not run "SIGQUIT_AND_REMOVE_LEADER" for now
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 10:24:42 -07:00
ba59bb2c2b etcdserver/stats: fix stats data race. 2018-04-11 21:37:09 +08:00
d7bf471199 functional/tester: add TODO for member remove fail
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 02:07:22 -07:00
15791d7f1f functional.yaml: add godoc link to FailureCase
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 01:52:34 -07:00
7ed4803fb0 test: remove "-a" GO_BUILD_FLAGS
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 01:45:06 -07:00
3c7ec0cdc8 functional/tester: update import path
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 01:42:33 -07:00
23b8c36ced functional/tester: add "SIGQUIT_AND_REMOVE_LEADER_UNTIL_TRIGGER_SNAPSHOT"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 01:37:13 -07:00
ee79799f61 functional/rpcpb: add "SIGQUIT_AND_REMOVE_LEADER_UNTIL_TRIGGER_SNAPSHOT"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 01:35:32 -07:00
17351e5fe7 functional/tester: add "SIGQUIT_AND_REMOVE_LEADER"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 01:32:07 -07:00
85da6427bb functional/rpcpb: add "SIGQUIT_AND_REMOVE_LEADER"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 01:30:05 -07:00
6a60a204ee functional/tester: add "SIGQUIT_AND_REMOVE_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 01:27:39 -07:00
17749d3a36 functional/rpcpb: add "SIGQUIT_AND_REMOVE_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 01:25:36 -07:00
724dea114c functional/tester: clean up snapshot failure cases
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 01:25:07 -07:00
9057253d8c functional: add "SIGQUIT_AND_REMOVE_ONE_FOLLOWER"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 01:21:09 -07:00
86deeab77a functional/agent: handle "SIGQUIT_ETCD_AND_REMOVE_DATA"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 01:19:33 -07:00
7e56c3e737 test: remove backup data from functional tests
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 01:18:15 -07:00
06bbd65a11 functional/build: remove "-a" flag
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 01:07:34 -07:00
e98a5c15e4 functional/rpcpb: add "SIGQUIT_AND_REMOVE_ONE_FOLLOWER"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-11 00:03:47 -07:00
f46368c6e9 Merge pull request #9560 from gyuho/ttt
*: parallelize tests, remove redundant tests, Phase 1
2018-04-10 19:17:06 -07:00
6cf9979cf0 test: remove wait commands
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-10 18:38:01 -07:00
67645ebc66 bill-of-materials.json: regenerate without "bitbucket.org/ww/goautoneg"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-10 18:38:01 -07:00
efe981e618 Revert "etcdserver: handle raft Propose error in v2 applier"
This reverts commit b38e138baf.
2018-04-10 18:38:01 -07:00
6da2e51627 tests/semaphore: only run e2e tests
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-10 18:37:54 -07:00
9585153615 travis.yml: add more concurrent jobs including functional tests
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-10 18:37:49 -07:00
eabb40f0ae test: combine "compile_pass" into "build_pass"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-10 17:07:42 -07:00
01678b3790 CHANGELOG: update with pending release items
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-10 17:05:33 -07:00
e9aa8fbcc3 Merge pull request #9558 from gyuho/propose
etcdserver: handle raft Propose error in v2 applier
2018-04-10 16:49:33 -07:00
b38e138baf etcdserver: handle raft Propose error in v2 applier
Handle "raft.ErrProposalDropped" as in v3 applier.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-10 16:01:14 -07:00
943962d419 Merge pull request #9557 from gyuho/lease-metrics
etcdserver: fix "lease_expired_total" metrics
2018-04-10 16:00:29 -07:00
cf0a138d83 bill-of-materials.json: regeneratea for "bitbucket.org/ww/goautoneg"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-10 15:58:20 -07:00
170c8bb3a7 Merge pull request #9555 from gyuho/aaa
clientv3/integration: log test failures from slow balancer as TODO
2018-04-10 15:26:45 -07:00
744c73e019 etcdserver: fix "lease_expired_total" metrics
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-10 13:57:17 -07:00
3a7b5c1b2b clientv3/integration: log test failures from slow balancer as TODO
Balancer tests have been flaky since last balancer rewrite.
Should be from slow balancer failover. Once we re-rewrite balancer
with roundrobin, there should be no more flaky tests as below:

TestBalancerUnderServerStopInflightLinearizableGetOnRestart (27.62s)
server_shutdown_test.go:343: context deadline exceeded

TestBalancerUnderServerShutdownDelete (3.22s)
util.go:32: context deadline exceeded

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-10 13:47:07 -07:00
e095ee48f4 CHANGELOG-3.4: clarify "ErrProposalDropped" on leadership transfer
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 15:26:06 -07:00
13b7d7126f Merge pull request #9551 from gyuho/vvv
vendor: upgrade "spf13/cobra" and "spf13/pflag"
2018-04-09 15:14:51 -07:00
fe26434a89 Merge pull request #9494 from gyuho/ugorji/go
client: regenerate with latest "ugorji/go/codec"
2018-04-09 15:14:37 -07:00
9cce7c71b8 tests/docker: fix indentation
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 15:13:09 -07:00
367b21c898 tests/Dockerfile: add "REPLACE_ME_GO_VERSION" back
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 15:10:48 -07:00
53e7621026 functional/tester: remove unnecessary health check log
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 14:57:13 -07:00
eceacac0fc Merge pull request #9549 from nolouch/handle-fail
etcdserver: handle proposal error when processing internal raft request
2018-04-09 14:56:17 -07:00
e75d06d932 CHANGELOG-3.4: highlight etcd server "raft.ErrProposalDropped" return
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 14:47:07 -07:00
3c52342b37 etcdserver: handle proposal error when processing internal raft request
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 14:44:57 -07:00
f4e01584fc CHANGELOG-3.4: update "ugorji/go"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 14:39:54 -07:00
ab89af6dd3 vendor: use "ugorji/go" v1.1.1
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 14:37:03 -07:00
91664ec5ac client: manually delete "yynn2 = 0"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 13:42:50 -07:00
13c440dea4 client: regenerate with f3cacc17c85ecb7f1b6a9e373ee85d1480919868
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 13:42:50 -07:00
55b0943f6d CHANGELOG-3.4: upgrade "ugorji/go" to f3cacc17c85ecb7f1b6a9e373ee85d1480919868
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 13:42:50 -07:00
b1c86d6baf vendor: upgrade "ugorji/go" to f3cacc17c85ecb7f1b6a9e373ee85d1480919868
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 13:42:50 -07:00
ebba9ed29e client: regenerate
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 13:42:50 -07:00
f8ed939e49 CHANGELOG-3.4: update "ugorji/go/codec" change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 13:42:50 -07:00
13d8784eee vendor: update "ugorji/go/codec"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 13:42:50 -07:00
471c6070f2 bill-of-materials.json: regenerate
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 13:42:24 -07:00
8103dc2fd4 CHANGELOG-3.4: highlight "spf13/cobra,pflag" changes
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 13:42:24 -07:00
07a5a09fc8 vendor: upgrade "spf13/cobra,pflag" to latest
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 13:42:24 -07:00
89c58b6f7a tests/e2e: fix "configJWT" path
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 13:41:46 -07:00
b6209db93e README: add links to "functional"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 13:33:47 -07:00
824982d1eb tests/e2e: fix TestEtcdExampleConfig
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 13:12:55 -07:00
422acc9018 tests/e2e: fix COVERDIR path
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 12:46:55 -07:00
dca14df161 functional: add links to "godoc"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 12:41:51 -07:00
f6cb732fff build: fix tools/build tests
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 11:55:10 -07:00
2d13894a16 integration: fix "fixtures-expired" path
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 11:49:42 -07:00
b756cb100c hack/benchmark: add back (for docs)
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 11:22:45 -07:00
a8a5176f1d tests/e2e: fix exec paths
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 11:12:42 -07:00
59666d7e03 Merge pull request #9550 from gyuho/ttt
*: reorganize internal test scripts
2018-04-09 11:02:43 -07:00
a60bb6104c *: regenerate "fixtures-expired"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 10:59:52 -07:00
774f6652df semaphore.sh: move to "tests/semaphore.test.bash"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 10:48:54 -07:00
0e7f1100e3 cover: move coverage test script to "tests"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 10:47:32 -07:00
0c327ea456 test: move "e2e" and "functional"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 10:47:25 -07:00
72211db7cf tests: move internal "e2e"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 10:37:28 -07:00
d636abc2d4 Dockerfile: remove
We don't have build triggers anymore.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 10:35:39 -07:00
784b6528d2 *: move "Dockerfile-functional"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 10:35:21 -07:00
20e1179fac Dockerfile-test: move to "tests"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 10:33:25 -07:00
140374e25d *: move "scripts/docker-*" to "tests"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 10:31:00 -07:00
b59e91d676 hack/benchmark: remove v2 benchmark
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 10:29:10 -07:00
6e3652f42c README: update "Community meetings"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 10:28:04 -07:00
10a51a3003 Merge pull request #9548 from gyuho/functional-tester
functional-tester: clean up, handle Operation_SIGQUIT_ETCD_AND_REMOVE_DATA
2018-04-09 10:20:00 -07:00
c16e411d51 functional/tester: fix shadowed "err" variable
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 10:19:31 -07:00
bc1fd92579 functional: rename to "SIGTERM/SIGQUIT*"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-08 23:17:53 -07:00
cd4580b4a9 functional: move "etcd-test-proxy"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-08 14:59:39 -07:00
b8bf42cc5a pkg/fileutil: test "Exist" on directory
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-08 14:26:30 -07:00
f53c153fa9 pkg/stringutil: add tests
For later "runner" cleanup

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-08 14:18:09 -07:00
d8a2d3a209 functional/tester: delay after injecting "kill" to trigger election
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 13:40:00 -07:00
68adc6e300 functional/rpcpb: document FailureCase
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 13:39:42 -07:00
ecadb0fdf7 functional/tester: improve logging
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 11:28:11 -07:00
7facfde6fd functional/tester: handle "process already finished"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 10:52:19 -07:00
2922116be5 functional/tester: clean up runner logging
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 10:40:27 -07:00
054721166f functional/tester: add "printReport"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 10:22:17 -07:00
0e609154c4 functional/tester: clean up "broadcastOperation"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 10:16:52 -07:00
cafa3b9217 functional/agent: handle static TLS certs
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 09:38:40 -07:00
ef594eb727 functional/tester: handle static certs
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-09 09:23:45 -07:00
c57a70caef CHANGELOG-3.4: update
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-07 10:00:06 -07:00
85e050a120 *: rename, clean up functional tests
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-07 10:00:00 -07:00
b7770cd9fe README: change Community Meeting to use BlueJeans
https://bluejeans.com/2732309610

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-06 13:48:49 -07:00
ff455e3567 Merge pull request #9540 from gyuho/hhh
ctlv3: support "write-out" for "endpoint health" command
2018-04-06 13:25:11 -07:00
c54636ac92 Merge pull request #9538 from gyuho/lll
snapshot: use structured logger
2018-04-06 13:17:28 -07:00
881fd20b17 CHANGELOG-3.4: add "endpoint health" fix
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-06 11:34:23 -07:00
d019d3141a ctlv3: support "write-out" for "endpoint health" command
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-06 11:31:00 -07:00
18b1d1ff65 ctlv3: update logger for snapshot command
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-06 11:05:58 -07:00
bf47197f35 snapshot: use structured logger
In the process of removing capnslog

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-06 10:59:48 -07:00
c91a61be00 Merge pull request #9534 from gyuho/test-tls
functional-tester: enable TLS, phase 1
2018-04-05 17:07:35 -07:00
a0b094ca89 functional-tester/agent: add TODO for proxy TLS
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-05 16:11:36 -07:00
62e512d4cc functional-tester/rpcpb: create client with "InsecureSkipVerify"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-05 16:11:36 -07:00
31a4b692ee functional-tester/agent: wait before loading TLS
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-05 16:11:36 -07:00
4998db4e64 functional-tester/tester: send TLS client requests, cleanup
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-05 16:11:28 -07:00
63755e49fc functional-tester/rpcpb: add "etcd-client-tls", "tester-data-dir"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-05 15:54:17 -07:00
8f71afd6e2 functional-tester/rpcpb: remove "EtcdClientTLS" field
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-05 15:54:17 -07:00
161f09ab69 functional-tester/agent: responds with server-side TLS assets to tester
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-05 15:54:17 -07:00
6ceb71efb1 functional-tester/rpcpb: include "Member" in "Response"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-05 15:54:17 -07:00
b70f9e1639 functional-tester/tester: add TLS flags
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-05 15:54:17 -07:00
f4f59750a8 functional-tester/agent: use "AdvertisePeerURLs"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-05 15:54:17 -07:00
09a4e059c5 functional-tester/rpcpb: rename "AdvertisePeerURLs", add more tests
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-05 15:54:17 -07:00
1580289ba3 functional-tester/rpcpb: add TLS flags
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-05 15:54:17 -07:00
13bf22ba51 functional-tester: update README
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-05 15:54:17 -07:00
bae97ebd55 CHANGELOG-3.4: update functional tester
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-05 15:54:14 -07:00
72ba5572a2 pkg/proxy: godoc package
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-05 12:57:44 -07:00
b0f6afc192 Merge pull request #9530 from gyuho/aaa
functional-tester: run network fault tests with snapshot trigger
2018-04-05 12:51:39 -07:00
ea4effce84 functional-tester/tester: add randomize delay
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-05 12:03:20 -07:00
3a93f1c803 functional-tester/rpcpb: fix duplicate field
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-05 11:34:59 -07:00
35d8bc2616 functional-tester: use updated latency for delay network case
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-05 11:33:14 -07:00
273dc355c1 functional-tester/tester: add random delay failure cases
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-05 11:22:38 -07:00
b9aa49be2d functional-tester/rpcpb: add random delay network failure cases
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-05 11:18:17 -07:00
e9d5c67b89 functional-tester/tester: reduce retries in slow network
Now configure slow network cases with latency greater than election timeout.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-05 11:07:46 -07:00
3f7f3ab614 CHANGELOG-3.4: update functional-tester
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-05 11:06:38 -07:00
4d1f60bb21 etcd-test-proxy: use "proxy.Server"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-05 11:06:38 -07:00
9d3809646a functional-tester/agent: use "proxy.Server"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-05 11:06:38 -07:00
7f812ca8e1 pkg/proxy: move from "pkg/transport"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-05 11:06:30 -07:00
a831d15751 functional-tester/tester: configure heartbeat interval, election timeout
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-05 10:39:07 -07:00
451395449a functional-tester/tester: add "heartbeat-interval", "election-timeout"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-05 10:37:16 -07:00
32c34b582a functional-tester/agent: clean up handler logs
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-05 10:29:31 -07:00
190119569a functional-tester/rpcpb: add "trigger snapshot" cases for network faults
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-05 10:29:31 -07:00
f4cd33b83c functional-tester/tester: add network fault test cases with snapshot trigger
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-05 10:29:28 -07:00
95119a769e Merge pull request #9529 from gyuho/fff
functional-tester: expect no client error in liveness mode
2018-04-04 18:18:07 -07:00
3ae47a8619 functional-tester/tester: expects no error in NO_FAIL_WITH_STRESS
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-04 17:30:12 -07:00
49d4fbdde9 Merge pull request #9528 from gyuho/no-op
functional-tester: add liveness mode
2018-04-04 15:47:53 -07:00
394189d399 functional-tester/tester: remove unused "nopStresser"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-04 14:13:38 -07:00
a7ec9f28e3 functional-tester/tester: fix "Desc" calls
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-04 13:53:43 -07:00
d7b468ec6f test: bump up test timeout to 20m
Recently, we've added bunch of tests...

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-04 13:45:12 -07:00
83739dc9cb functional-tester/tester: clean up stresser logic for liveness mode
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-04 13:42:30 -07:00
a43bd84631 functional-tester/tester: implement liveness mode failure case
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-04 13:29:24 -07:00
33753d4ae6 functional-tester/tester: add "failure-delay-ms" for configurable triggerElectionDur
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-04 13:15:50 -07:00
ca310c5918 functional-tester/rpcpb: add "FailureDelayMs"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-04 13:11:01 -07:00
0c20902d13 functional-tester/tester: add "newFailureNoFailWithNoStressForLiveness"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-04 13:07:45 -07:00
808966a7e9 functional-tester/tester: refactor cluster code to support liveness mode
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-04 13:04:21 -07:00
b3fea7ed53 functional-tester/tester: refactor "Failure" to support liveness mode
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-04 13:03:57 -07:00
3510e9b94c functional-tester/tester: pass "*rpcpb.Member" to stresser
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-04 13:03:06 -07:00
88a0f4c6b2 functional-tester/rpcpb: add liveness mode for failure case
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-04 12:37:51 -07:00
8219c7f273 Makefile: clean up "gopath.proto"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-04 10:52:01 -07:00
e37d6a2842 CHANGELOG-3.4: add recent Raft and logger changes
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-04 10:46:21 -07:00
949c6fef35 Merge pull request #9137 from absolute8511/raft-proposal-cancel
raft: Propose in raft node wait the proposal result so we can fail fast while dropping proposal
2018-04-04 09:23:17 -07:00
d8dc29e5d8 Merge pull request #9519 from gyuho/heap
lease: remove unnecessary O(log N) heap operation when nothing is expiry
2018-04-03 15:22:52 -07:00
d7cf2cc03f Merge pull request #9525 from gyuho/ft
functional-tester: use "clientv3" for stressers
2018-04-03 15:21:48 -07:00
75f562224a Merge pull request #9524 from gyuho/kv
etcdserverpb: document "Hash" and "HashKV" more clearly
2018-04-03 14:08:12 -07:00
6d69e16a0a functional-tester/tester: fix txn op, nil clientv3
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-03 13:44:39 -07:00
a80a1a6356 functional-tester/tester: use "*clientv3.Client" for lease stresser
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-03 13:33:35 -07:00
00ed41d175 functional-tester/tester: use "clientv3" for key stresser
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-03 13:23:04 -07:00
7cc0d689b8 functional-tester/tester: use clientv3.Client for consistency checks
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-03 12:57:26 -07:00
5423100def functional-tester: add "Member.Compact" method
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-03 12:45:19 -07:00
11818b5f40 etcdserverpb: document "Hash" and "HashKV" more clearly
Explain where the computation happens (e.g. "Hash" for all buckets
and "HashKV" for "key" bucket).

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-03 11:50:20 -07:00
a729b88463 functional-tester/rpcpb: support grpc.DialOption for "CreateEtcdClient"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-03 11:40:36 -07:00
358a89c7e9 functional-tester/tester: provide correct latency information to failure
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-03 11:21:19 -07:00
f25188d35b Merge pull request #9523 from gyuho/fff
functional-tester/tester: use "*rpcpb.Member" directly to dial
2018-04-03 11:12:37 -07:00
d45c3f172b functional-tester/tester: fix cluster_test
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-03 11:12:12 -07:00
629e5a0e7a functional-tester/tester: use "*rpcpb.Member" directly
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-03 11:02:00 -07:00
b55a5a9771 functional-tester/rpcpb: support extra dial options
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-03 10:55:47 -07:00
c2731cde54 functional-tester/agent: rename "logger" field
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-03 09:56:46 -07:00
eb0c66f912 functional-tester/tester: rename logger field
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-03 09:56:42 -07:00
c9161b1f5c functional-tester/agent: fix govet shadow in Go tip
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-03 06:36:08 -07:00
f0dffb4163 raft: Propose in raft node wait the proposal result so we can fail fast while dropping proposal. 2018-04-03 11:04:09 +08:00
9c62d7b2d1 leaes: remove unnecessary O(log N) operation when nothing is expiry
Since heap is already sorted, we can just check first element
to see if anything is expiry, rather than popping and pushing
it back. If nothing is expiry, pop operation is unnecessary.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-02 16:34:34 -07:00
a6984c53de lease: add "expireExists"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-02 16:34:34 -07:00
f9b7a012b5 lease: add "TestLeaseQueue"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-02 16:34:30 -07:00
51b8d68a7f lease: godoc "LeaseWithTime", change field name to "id"
No need to have "lease" in field name.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-02 14:58:34 -07:00
2aa3decc38 Merge pull request #9418 from mgates/use_heap_to_track_lease_expirations
lease: Add a heap to optimize lease expiration checks
2018-04-02 14:45:49 -07:00
e001ecb48d Merge pull request #9518 from gyuho/eee
pkg/transport: log cert file not found in server-side
2018-04-02 14:45:27 -07:00
021df6a827 etcdctl/ctlv3: set client-side logger
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-02 13:51:22 -07:00
faeffff5b5 CHANGELOG-3.4: highlight TLS error logging
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-02 13:46:25 -07:00
d5bcf66b6b etcdmain: pass logger to "transport.SelfCert"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-02 13:42:17 -07:00
a173e761bb embed: support logger for TLS
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-02 13:42:13 -07:00
322437f47d pkg/transport: log tlsutil.NewCert errors
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-02 13:42:09 -07:00
472f309411 lease: fix gofmt
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-02 13:00:33 -07:00
139202e7d8 CHANGELOG: update
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-02 11:56:27 -07:00
3f85ae70e0 lease: add lease benchmarks 2018-04-02 11:52:58 -07:00
6f271d8bf1 lease: Add a heap to optimize lease expiration checks
This adds a heap acting as a priority queue to keep track of lease
exiprations. Previously the whole lease map had to be iterated through
each time.

The queue allows us to check only those leases which might be expired.
When the expiration changes, we add an additional entry. If we check an
entry that isn't expired, it means that the lease got extended.
If we find a entry in the heap that doesn't have a corresponding entry in
the map, we know that the lease has already been expired or revoked.
2018-04-02 11:52:55 -07:00
42d157fea9 Merge pull request #9517 from gyuho/fff
functional-tester: differentiate follower/leader injection
2018-04-02 11:45:35 -07:00
173fdc37a3 test: run shellcheck only on bash scripts
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-02 11:45:04 -07:00
6f2adc8a3d scripts: add dev scripts
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-02 11:27:39 -07:00
828a0246a6 Makefile: update/move
This is being used for all docker tests.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-02 11:27:26 -07:00
64c9caa76b etcd-test-proxy: update README
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-02 11:03:08 -07:00
8f1d83cd89 functional-tester: update README
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-02 11:02:44 -07:00
5973e5b467 tester: clean up, differentiate follower/leader injection
Rather than injecting to random members.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-02 11:00:24 -07:00
ded355abd9 functional-tester/rpcpb: fix failure name enum
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-02 10:45:34 -07:00
a9a10089bf Merge pull request #9514 from ppggff/master
Explanation of configuration flag '--auto-compaction-mode' is rendered as table in coreos.com
2018-04-02 09:57:19 -07:00
007cdd00ed Merge pull request #9515 from gyuho/ftest
functional-tester: randomize failure injection sequence (by default)
2018-04-02 09:39:50 -07:00
94a96e59e0 functional-tester: improve logging, remove "round" parameter from
"Failure"

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-02 09:37:50 -07:00
3ced4443ba functional-tester/tester: add "failureStrings"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-02 09:31:31 -07:00
7791b06cdf functional-tester/tester: fix YAML field name
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-02 09:28:46 -07:00
38d315fecf functional-tester/rpcpb: update YAML field name to "etcd"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-02 09:28:22 -07:00
ee66a8087b functional-tester/agent: improve logging
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-01 02:57:47 -07:00
3fe077746f functional-tester/cmd/etcd-tester: add wait health logging
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-01 02:33:10 -07:00
e552607a04 functional-tester/tester: clean up logging
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-04-01 02:33:06 -07:00
6d8d8a6dcb functional-tester/tester: test shuffled cases are equal when sorted
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-31 18:43:24 -07:00
9e28331961 functional-tester/agent: remove invalid operation checks
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-31 18:38:29 -07:00
2b9c810fa4 functional-tester/tester: shuffle failure cases with coprime
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-31 18:35:06 -07:00
ffabe55a25 functional-tester/tester: clean up stress, fix stress closing
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-31 18:15:40 -07:00
8dbe491f1a functional-tester/rpcpb: add "failure-shuffle"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-31 17:49:26 -07:00
e9d151d76c functional-tester/tester: update import paths
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-31 17:47:47 -07:00
3f390622f7 functional-tester/agent: stop proxy on "fail archive"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-31 17:47:23 -07:00
045dab52ad Documentation/op-guide: explanation of configuration flag '--auto-compaction-mode' is rendered as table in coreos.com 2018-03-31 11:14:04 +08:00
bf052ef491 semaphore.sh: run release tests with latest 3.3
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-30 16:14:31 -07:00
93fec5ef54 Merge pull request #9513 from gyuho/functional-tester
functional-tester: refactor agent/tester
2018-03-30 16:06:11 -07:00
048a1b14d5 test: bump up default timeout for now
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-30 14:42:45 -07:00
bf3994d3f0 functional-tester/agent: fix shadowed err var
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-30 12:30:48 -07:00
9811451604 build: fix "compile_pass"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-30 12:27:17 -07:00
c483c050cf bill-of-materials.json: update
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-30 12:07:36 -07:00
194cdede89 functional-tester/cmd/etcd-tester: check error from "Bootstrap"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-30 12:01:27 -07:00
c1a8c73f9a functional-tester/tester: add missing "newNoChecker"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-30 11:54:32 -07:00
ae56cf014d functional-tester/rpcpb: simplify "return err"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-30 11:46:03 -07:00
d5a46abdb5 functional-tester/tester: fix goword errors
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-30 11:40:13 -07:00
0a0a7d007c Dockerfile-functional-tester: copy "local-test.yaml"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-30 11:25:37 -07:00
bb73145565 functional-tester: update local test scripts with docker
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-30 11:25:33 -07:00
07ca694947 functional-tester: update README
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-30 11:25:24 -07:00
617069dc99 hack/scripts-dev/Makefile: fix functional-tester build paths
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-30 11:25:24 -07:00
a77ae6df00 tools/etcd-test-proxy: fix logger
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-30 11:25:24 -07:00
5a5ac3a721 Dockerfile-functional-tester: update build paths
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-30 11:25:24 -07:00
28766fb002 test: run test script with new "functional-tester"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-30 11:25:23 -07:00
d44332daa9 proxy: clean up logging
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-30 11:25:23 -07:00
e170d40f90 functional-tester: move "etcd-runner" to "./cmd"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-30 11:25:23 -07:00
586a253943 functional-tester: update build paths
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-30 11:25:23 -07:00
0e7f48b375 functional-tester/etcd-tester: remove
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-30 11:25:23 -07:00
f7eab57b3c functional-tester/etcd-agent: remove
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-30 11:25:23 -07:00
3fba5ab403 vendor: add "go.uber.org/zap"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-30 11:25:23 -07:00
408a6c763b functional-tester/cmd/etcd-tester: initial commit
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-30 11:25:23 -07:00
cbfba6db76 functional-tester/cmd/etcd-agent: initial commit
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-30 11:25:23 -07:00
2bc666292e functional-tester/tester: initial commit
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-30 11:25:19 -07:00
ca54bc22c7 functional-tester/agent: initial commit
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-29 20:36:46 -07:00
1f77a6a9c0 functional-tester/rpcpb: initial commit
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-29 20:36:46 -07:00
3a8a150b0f functional-tester/scripts/genproto: initial commit
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-29 11:31:55 -07:00
8767e39bec Merge pull request #9510 from jpbetz/changelog-2018-03-29
CHANGELOG: add 3.1.13 and 3.2.18 release dates.
2018-03-29 11:14:16 -07:00
84be43855e CHANGELOG: add 3.1.13 and 3.2.18 release dates. 2018-03-29 10:59:34 -07:00
c35cd03a66 semaphore: update Go version, release test version
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-29 09:21:03 -07:00
7fd8db98d2 CHANGELOG-3.3: update 3.3.3 release date
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-29 09:08:24 -07:00
365faaf4d3 CHANGELOG: update Go version in v3.3.3
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-29 09:06:27 -07:00
3f1a551f6b hack/scripts-dev: update Makefile go version
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-29 09:00:58 -07:00
971ed2f5e2 travis: upgrade Go version to 1.10.1
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-29 09:00:20 -07:00
296c538a80 Merge pull request #9505 from kchristidis/fix-rafttest
raft: fix failing tests in rafttest
2018-03-28 12:41:55 -07:00
438163feb4 raft: fix failing tests in rafttest
Tests in `rafttest` would fail because they referred to field `Id` instead of
`ID`. This PR fixes that.

Closes #9504.

Signed-off-by: Kostas Christidis <kostas@christidis.io>
2018-03-28 15:12:29 -04:00
053bab06db Merge pull request #9497 from gyuho/cmux
vendor: upgrade "soheilhy/cmux" to "v0.1.4"
2018-03-28 09:09:36 -07:00
9377e5169b CHANGELOG-3.4: highlight "soheilhy/cmux" dependency upgrade
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-27 21:58:55 -07:00
f54ede4723 vendor: upgrade "soheilhy/cmux" to "v0.1.4"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-27 21:46:40 -07:00
f5c56401d7 scripts/update-clientv2: initial commit
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-27 10:33:27 -07:00
583fda7240 CHANGELOG-4.0: deprecate "etcdctl backup" command
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-27 09:53:51 -07:00
8036a818d5 CHANGELOG-4.0: deprecate v2 proxy
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-27 09:18:58 -07:00
473793be1f Merge pull request #9490 from gyuho/cors
*: support CORS for v3 HTTP requests
2018-03-27 09:04:26 -07:00
57f036d617 etcdmain: update "help" page
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-27 09:00:13 -07:00
feb88ec66b embed: update "HostWhitelist" godoc
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-27 06:25:44 -07:00
089e8ffecb pkg/flags: fix "Set"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-27 06:25:44 -07:00
3b1eaaee6e etcdmain: fix "validateClusteringFlags"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-27 06:25:44 -07:00
9c38c43796 CHANGELOG-3.4: add "CORS" change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-27 06:25:44 -07:00
a066b03c2c embed: clean up CORS, HostWhitelist logging
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-27 06:25:44 -07:00
27ed129f44 etcdmain: update "CORS", "HostWhitelist" flag parsing
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-27 06:25:44 -07:00
9ea8be0c2b embed: support "CORS" handler in v3 HTTP requests
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-27 06:25:44 -07:00
c7cecca575 embed: rename "Config.CorsInfo" to "Config.CORS"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-27 06:25:44 -07:00
c841de1f62 etcdserver: add "CORS" field to "ServerConfig"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-27 06:25:44 -07:00
29db853317 etcdserver: replace "hostWhitelist" with "AccessController"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-27 06:25:44 -07:00
35509bf69c etcdmain: default "--host-whitelist '*'"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-27 06:25:44 -07:00
7195bb7ced pkg/cors: remove
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-27 06:25:44 -07:00
df6cd22d59 embed: update "CorsInfo" field to "map[string]struct{}"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-27 06:25:44 -07:00
35b01b982c etcdmain: use NewUniqueURLsWithExceptions
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-27 06:25:44 -07:00
b426217907 pkg/flags: add "UniqueURLs", "UniqueStrings"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>

iii

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-27 06:25:44 -07:00
2b7783028f Merge pull request #9491 from jiaxuanzhou/clientv3
clientv3: optimize func NewFromURL
2018-03-27 04:31:31 -07:00
ad448fb280 clientv3: keep NewFromURL the same, add method NewFromURLs 2018-03-27 10:40:10 +08:00
e1bf612ee8 clientv3: optimize func NewFromURL 2018-03-27 09:30:12 +08:00
2e1e619cc0 Merge pull request #9486 from gyuho/ddd
Documentation: highlight v3 post migration
2018-03-26 05:53:26 -07:00
7563bec19f CHANGELOG: update compactor links, 4.0
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-26 05:51:05 -07:00
c2a63478a6 Merge pull request #9485 from gyuho/compactor
compactor: adjust interval for period <1-hour
2018-03-26 05:34:43 -07:00
a994fdedb3 Merge pull request #9450 from hexfusion/gw_naming
etcdserver: improve Lease http path naming for gRPC gateway
2018-03-26 00:06:50 -07:00
fc53917302 Merge pull request #9487 from cceckman/patch-1
Documentation: Clarify revisions vs. versions in data model doc
2018-03-26 00:06:35 -07:00
72500fe34f Documentation: Clarify revisions vs. versions
This confused me just looking at the protos; reading up on coreos/etcd#6518 helped clarify things. I highlighted the terms that show up as fields in protos and tried to clean up some of the language.
2018-03-24 16:34:48 -07:00
868558ce85 compactor: simplify interval logic on periodic compactor
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-24 07:33:19 -07:00
977e690caa Documentation: highlight v3 post migration
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-23 19:54:09 -07:00
9af05a45d4 etcdserver: move "unsafe" flags to bottom
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-23 19:44:24 -07:00
cfd8b3e86d embed: move "unsafe" flags to bottom
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-23 19:44:24 -07:00
940200f1ae etcdmain: move "unsafe" flags to bottom
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-23 19:44:24 -07:00
501c80fbbc compactor: adjust interval for period <1-hour 2018-03-23 10:11:59 -07:00
f6f43ee799 Documentation/op-guide: document compactor change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-22 13:48:23 -07:00
d1be316b51 CHANGELOG: add compactor changes
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-22 13:48:08 -07:00
34241efb11 CHANGELOG-3.1: highlight Read Index change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-22 11:43:35 -07:00
118e64ef4c Merge pull request #9479 from gyuho/fedora
*: clean up Makefile, update base image
2018-03-22 11:42:14 -07:00
be50343652 words: whitelist more words
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-22 11:01:26 -07:00
f6c9f767e5 Dockerfile-test: install "netcat"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-22 10:48:17 -07:00
906a40bced scripts/genproto: fix shellcheck
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-22 10:39:31 -07:00
9c995fab9b test: fix shellcheck
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-22 10:39:23 -07:00
cd92d4a987 etcdserver: improve Lease http path naming for gRPC gateway with additional_bindings. 2018-03-22 07:38:03 -04:00
a2a22a6506 Dockerfile-test: use "fedora" as base image
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-22 02:40:28 -07:00
dcc2b9cfda hack/scripts/Makefile: fix docker commands
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-22 02:05:48 -07:00
31de8345f9 Merge pull request #9460 from hexfusion/e2e_watch_tests
e2e: add gRPC gateway Lease tests
2018-03-21 22:34:34 -04:00
d8ed7a7ba3 Merge pull request #9476 from gyuho/ccc
compactor: clean up
2018-03-21 18:48:25 -07:00
8dab18aca4 e2e: add gRPC gateway Lease tests 2018-03-21 21:13:13 -04:00
7ce69b256a compactor: clean up
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-21 17:14:50 -07:00
f7714e269e CHANGELOG-3.1: add metrics fix
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-21 13:36:35 -07:00
334e274f70 Merge pull request #9473 from gyuho/deprecate-policy
*: document deprecate policy in CHANGELOG-4.0
2018-03-21 09:24:31 -07:00
ef715d823a *: document deprecate policy in CHANGELOG-4.0
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-21 09:23:36 -07:00
5abbea8d98 Merge pull request #9470 from gyuho/deprecated
*: document deprecated ca-file flags (since v2.1)
2018-03-20 17:47:07 -07:00
da1d3e6a78 Merge pull request #9468 from gyuho/compactor-doc
*: document auto-compaction logic
2018-03-20 17:36:09 -07:00
e9e90bd30f Documentation/op-guide: explain auto-compaction logic
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-20 16:14:51 -07:00
da0e154ae6 CHANGELOG: add auto-compaction changes
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-20 16:14:51 -07:00
fa5f768236 e2e: drop "ca-file" flags
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-20 16:08:33 -07:00
4f1cf30c7d etcdmain: use "TrustedCAFile" in grpc_proxy
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-20 15:48:44 -07:00
140dd1064f Documentation/upgrades: highligh "ca-file" changes
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-20 15:48:44 -07:00
f0a08f71db CHANGELOG-3.4: highlight "ca-file", "peer-ca-file" flag deprecation
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-20 15:48:41 -07:00
ad8c326599 clientv3/yaml: deprecate CAFile field
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-20 15:38:08 -07:00
759fcb6e70 pkg/transport: deprecate "CAFile" field
Has been deprecated since v2.1...

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-20 15:38:05 -07:00
c524ebe6fd embed: deprecate "CAFile" field
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-20 15:36:47 -07:00
82ef3f83f6 etcdmain: deprecate 'ca-file' and 'peer-ca-file' flags
Has been deprecated since 2.1...

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-20 15:31:32 -07:00
9bd580f2fc tools/benchmark: use "TrustedCAFile"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-20 15:31:32 -07:00
aece63b10e etcdctl: use "TrustedCAFile"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-20 15:31:32 -07:00
706c760a3d etcdmain: remove deprecated flags from "etcd --help"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-20 15:31:32 -07:00
f1427b336e Documentation/upgrades: add upgrade v3.4
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-20 15:31:32 -07:00
6153e9fd1d Merge pull request #9469 from gyuho/snapshot-count
*: document v3.2 default snapshot-count value change
2018-03-20 15:31:02 -07:00
af20c3969b *: document v3.2 default snapshot-count value change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-20 14:49:40 -07:00
d2bbedf215 Merge pull request #9466 from mkumatag/update-baseimage
Change baseimage for ppc64le dockerfile
2018-03-20 02:24:09 -07:00
b0ed5c1dd8 Merge pull request #8680 from mitake/auth-cleanup
*: don't use a string literal directly in grpc metadata
2018-03-20 18:19:23 +09:00
30ec8cec23 build-docker: Change baseimage for ppc64le dockerfile 2018-03-20 04:34:46 -04:00
56d1a45bbc Merge pull request #9462 from gyuho/balancer-clean-up
clientv3: move health balancer to "balancer"
2018-03-19 16:01:53 -07:00
3aa5711dca clientv3: move health balancer to "balancer"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-19 15:16:11 -07:00
dea71f32f6 Merge pull request #9458 from gyuho/pre-vote
functional-tester: test pre-vote in functional-tester
2018-03-19 09:26:17 -07:00
04ba007429 Merge pull request #9461 from hexfusion/fx_ct
e2e: remove duplicate error check
2018-03-19 07:30:38 -07:00
813c9aa450 functional-tester: enable "--pre-vote"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-19 07:18:57 -07:00
a66e657cac *: update "pre-vote" flag
Disabled by default, anyway.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-19 07:18:57 -07:00
69eab45880 Merge pull request #9457 from gyuho/fff
pkg/flags: clean up, add "SelectiveStringsValue"
2018-03-19 07:17:11 -07:00
e8d58430a6 e2e: remove duplicate error check 2018-03-19 09:38:18 -04:00
6bf273b883 Merge pull request #9452 from rhcarvalho/patch-1
runtime-reconf-design.md: improve documentation
2018-03-19 02:24:53 -07:00
1640cdb044 pkg/flags: clean up, add "SelectiveStringsValue"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-19 02:23:06 -07:00
f10cf6be5a Merge pull request #9454 from shsjshentao/tuningPort
Documentation: 2379 port mistake
2018-03-19 14:43:35 +08:00
b2f28ee234 Documentation: 2379 port mistake 2018-03-19 13:37:14 +08:00
bc3a8f0efe runtime-reconf-design.md: improve documentation
Fix typos and add articles to improve the experience of people reading the docs.
2018-03-18 17:13:51 -07:00
cfac50cb53 Merge pull request #9449 from gyuho/ccc
v3rpc: clean up "maintenanceServer.Status" call
2018-03-17 15:06:45 -07:00
4cb0d167d6 v3rpc: clean up "maintenanceServer.Status" call
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-17 02:41:54 -07:00
c22afc2d71 CHANGELOG: add Go versions, add security change details
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-17 01:57:20 -07:00
c5942972f7 build: fix GO_LDFLAGS (wrong 'internal' path)
GIT_SHA wasn't updated (internal path was wrong)

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-17 00:35:31 -07:00
576a2ca501 Merge pull request #9446 from gyuho/ttt
mvcc/backend: defrag to block concurrent read requests while resetting tx
2018-03-16 12:48:48 -07:00
6c40b2b5d4 mvcc/backend: defrag to block concurrent read requests while resetting tx
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-16 03:29:18 -04:00
5076497e6c CHANGELOG: add "metrics" fix changes
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-15 21:21:23 -04:00
c8cfdb3b55 Merge pull request #9445 from gyuho/raft-index
*: clean up etcdserver raft handler, fix "endpoint status" Raft index field
2018-03-15 20:50:37 -04:00
14558027bc *: fix "raftIndex" comment as "committed index"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-15 19:40:12 -04:00
509cf414f7 etcdserver: remove duplicate "setAppliedIndex" calls
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-15 19:35:44 -04:00
4f754c1850 etcdserver: clean up with "RaftStatusGetter"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-15 19:30:08 -04:00
46f346f87a Merge pull request #9442 from gyuho/urls
etcdmain: remove "listen-metrics-urls" manual parsing
2018-03-15 08:23:32 -04:00
bec3d975e0 etcdmain: handle JSON "listen-metrics-urls"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-15 01:24:53 -04:00
4419661fb1 etcdmain: remove "listen-metrics-urls" manual parsing
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-15 01:23:33 -04:00
1e94968ffa pkg/flags: support empty URLs string in NewURLsValue
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-15 01:18:57 -04:00
b1dd19a7aa *: don't use string literals directly in grpc metadata
Current etcd code uses the string literals ("token", "authorization")
as field names of grpc and swappger metadata for passing token. It is
difficult to maintain so this commit introduces new constants for the
purpose.
2018-03-15 14:17:34 +09:00
15926e029c Merge pull request #9441 from gyuho/strings
*: replace "--host-whitelist" with "flags.StringSlice"
2018-03-14 23:26:43 -04:00
718d0d045c Merge pull request #9433 from mitake/proto-types
*: unify type of key and rangeEnd in AuthRoleRevokePermissionRequest
2018-03-15 11:28:43 +09:00
79d3c93568 etcdmain: replace "--host-whitelist" with "flags.StringSlice"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-14 21:38:20 -04:00
5e9d4652e0 pkg/flags: add "StringSliceFromFlag"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-14 21:32:24 -04:00
9e7ef79c26 pkg/flags: add "StringSlice"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-14 21:27:17 -04:00
b5bd614a4b Merge pull request #9439 from huikang/doc-improve-api-guarantee
Documentation: make the API guarantee example explicit
2018-03-14 17:37:41 -04:00
f85c3b654a Documentation: make the API guarantee example explicit
Signed-off-by: Hui Kang <kangh@us.ibm.com>
2018-03-14 17:25:27 -04:00
a54063716f Merge pull request #9437 from gyuho/mmm
rafthttp: add missing "peer_sent_failures_total" metrics call
2018-03-14 12:43:52 -04:00
6ef2b7bcee rafthttp: add missing "peer_sent_failures_total" metrics call
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-14 12:43:25 -04:00
892939f82f Merge pull request #9410 from laggyluke/grafana-label-matcher
Documentation/op-guide: add job="etcd" label matcher to Grafana dashboard
2018-03-14 08:22:59 -04:00
752963beea *: unify type of key and rangeEnd in AuthRoleRevokePermissionRequest
Fix https://github.com/coreos/etcd/issues/9424
2018-03-14 14:38:20 +09:00
c5417939b6 Merge pull request #9426 from wenjiaswe/testscript
scripts: add TESTCASE flag to run single unit test
2018-03-14 00:13:40 -04:00
3571f406aa scripts: add TESTCASE flag to run single unit test
Enable user to run specified test case with different TIMEOUT expectation
when needed.
2018-03-13 13:54:20 -07:00
3e668a9e97 Merge pull request #9414 from jpbetz/changelog-3.1.13-3.2.18
CHANGELOG: set dates for 3.1.12 & 3.2.17 release
2018-03-13 16:14:22 -04:00
4017ecaf0f CHANGELOG: set dates for 3.1.12 & 3.2.17 releases, add notes for next releases 2018-03-13 16:12:59 -04:00
4408ecede8 CHANGELOG-3.4: update "prevent disruptive rejoining"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-10 20:15:11 -08:00
249b7a1411 Merge pull request #9415 from gyuho/adjust-advancing-ticks
etcdserver: adjust election timeout on restart
2018-03-10 20:04:58 -08:00
9680b8a157 etcdserver: adjust election ticks on restart
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-10 19:09:38 -08:00
edec229e10 etcdserver: make "advanceTicks" method
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-10 18:50:50 -08:00
29d9543850 rafthttp: add "ActivePeers" to "Transport"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-10 18:50:47 -08:00
9e84f2d4e8 CHANGELOG-3.2: highlight --snapshot-count default value change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-09 15:51:35 -08:00
7e14e11548 Merge pull request #9408 from qinix/fix-proto-code-style
etcdserverpb: fix protobuf code style
2018-03-09 08:34:15 -05:00
67c66884e3 etcdserverpb: fix protobuf code style 2018-03-09 14:20:52 +08:00
00b84235df CHANGELOG-3.3: update dates, add 3.3.3
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-08 12:59:40 -08:00
5132017b36 CHANGELOG: update
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-08 11:06:10 -08:00
e280f8c3da clientv3/integration: adjust timeouts for TestLeasingReconnectOwnerRevoke
Now Restart takes longer, and leasing Get blocks
on server restarts anyway, so fix CI failures in
slow machines.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-08 10:58:18 -08:00
6fd4138c11 Merge pull request #9399 from yudai/maxleasettl
*: enforce max lease TTL with 9,000,000,000 seconds
2018-03-08 10:57:09 -08:00
83a9684c4e CHANGELOG: add "lease overflow check"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-08 10:29:30 -08:00
3e69dc5a7c clientv3/integration: test "rpctypes.ErrLeaseTTLTooLarge"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-08 10:19:30 -08:00
db21941d1d *: enforce max lease TTL with 9,000,000,000 seconds
math.MaxInt64 / time.Second is 9,223,372,036. 9,000,000,000 is easier to
remember/document.
2018-03-08 10:17:12 -08:00
808450129b Documentation/op-guide: add job="etcd" label matcher to Grafana dashboard
Prometheus that scrapes etcd might also scrape other things, so we should
specifically ask for etcd metrics, especially when dealing with generic
metrics like `process_resident_memory_bytes`.
2018-03-08 15:04:54 +01:00
4704232cb6 *: remove unused env vars
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-08 01:35:10 -08:00
a39273f26e Merge pull request #9402 from jpbetz/3.1.12-changelog
CHANGELOG: etcd 3.1.12 backports
2018-03-08 00:59:49 -08:00
2b123f6609 CHANGELOG: etcd 3.1.12 backports 2018-03-07 22:50:11 -08:00
bb60342cec hack/scripts-dev: fix indentation in run.sh
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-07 14:30:49 -08:00
b6526b9d42 hack/scripts-dev: add more docker commands
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-07 14:11:17 -08:00
2f2c6cb13b Merge pull request #9397 from gyuho/vvv
*: regenerate vendor directory, document updatedep.sh
2018-03-07 14:00:37 -08:00
8b6ee6aea9 hack/scripts: update comments on "build-docker-release-master"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-07 13:54:59 -08:00
27f0aa9cf0 scripts: document "updatedep.sh" script
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-07 13:54:56 -08:00
d598af104d vendor: regenerate with latest "dep"
Better pruning

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-07 13:34:21 -08:00
ab4d888e1f pkg/logutil: fix example
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-07 13:11:34 -08:00
2a5911f98d Merge pull request #9396 from gyuho/lll
*: replace "pkg/logger" with "pkg/logutil"
2018-03-07 10:57:37 -08:00
4e0c00244d *: remove "pkg/logger", replace with "pkg/logutil"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-07 10:49:25 -08:00
82ee796aa4 pkg/logutil: move "pkg/logger" to "logutil"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-07 10:45:29 -08:00
89292affaa Merge pull request #9352 from gyuho/raft-pre-vote
*: configure Raft Pre-Vote to reduce disruptive rejoining servers
2018-03-07 10:15:26 -08:00
abedaa31e1 Merge pull request #9394 from jeis2497052/master
*: fix typos in markdown docs
2018-03-07 12:03:10 -05:00
ca47aab373 *: fix typos in markdown docs 2018-03-07 10:32:07 -05:00
b48d3eb380 etcdmain: add "--experimental-pre-vote" flag
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-06 09:56:32 -08:00
3092d3bf7f embed: add "ExperimentalPreVote" for Raft
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-06 09:56:19 -08:00
78918848bd etcdserver: support Raft Pre-Vote
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-06 09:55:55 -08:00
8aae8c1c9c raft: document disruptive rejoining server, add tests
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-06 09:54:29 -08:00
211523fc88 Merge pull request #9390 from gyuho/ddd
*: add "--cluster" flag to defrag, highlight defrag endpoints
2018-03-05 12:36:27 -08:00
62d8e36462 Merge pull request #9389 from spzala/checkdatascaledoc
etcdctl/doc: create doc for check datascale
2018-03-05 11:08:25 -08:00
6affd6a599 CHANGELOG-3.4: fix typo in gRPC gateway change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-05 11:06:34 -08:00
63ab908206 CHANGELOG-3.4: add JWT ttl field, defrag --cluster changes
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-05 11:04:41 -08:00
9919e4d391 Documentation/op-guide: highlight defrag operation "--cluster" flag
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-05 10:54:45 -08:00
3451905d3e etcdctl: highlight "defrag" command caveats
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-05 10:52:59 -08:00
912c402188 etcdctl/ctlv3: add "--cluster" flag to "defrag" command
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-05 10:46:37 -08:00
55a7b30377 Merge pull request #9385 from Revolution1/fix-typos-of-word-trevisions
trevisions -> revisions
2018-03-05 10:28:16 -08:00
0a33308b8a Merge pull request #9387 from spzala/updatecheckperfdoc
etcdctl/doc: document check perf auto-compact and defrag options
2018-03-05 10:27:47 -08:00
0adee36cc6 etcdctl/doc: create doc for check datascale
Create documentation for check datascale.

Fixes #9327
2018-03-05 13:27:30 -05:00
349773c832 etcdctl/doc: document check perf auto-compact and defrag options
Create doc for newly created auto-compact and defrag options in
check perf command.
2018-03-05 12:07:59 -05:00
3534df14b4 Documentation: trevisions -> revisions 2018-03-05 20:14:37 +08:00
064aeb258b Merge pull request #9382 from gyuho/flag
pkg/flags: fatal on conflicting environment variable
2018-03-02 11:29:13 -08:00
748ab8c398 pkg/flags: fatal on conflicting environment variable
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-02 10:36:59 -08:00
dbdab24d23 Merge pull request #9383 from gyuho/change
CHANGELOG: clean up, add auth/flag changes
2018-03-02 10:32:41 -08:00
3f3425ab8b CHANGELOG: clean up, add auth/flag changes
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-02 10:30:42 -08:00
0a972daac7 Merge pull request #9379 from gyuho/fix-election
*: fix server panic on invalid Election Proclaim/Resign HTTP requests
2018-03-01 18:21:54 -08:00
2f909a97b5 e2e: add "Election" grpc-gateway test cases
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-01 17:08:25 -08:00
b62e8291c2 e2e: add "spawnWithExpectLines"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-01 16:16:51 -08:00
85533a6305 api/v3election: error on missing "leader" field
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-01 16:16:45 -08:00
48ff9e64f4 Merge pull request #9380 from gyuho/separate
CHANELOG/hack: add Election HTTP API fix
2018-03-01 15:02:31 -08:00
b8c944ccef CHANGELOG: add Election API fix
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-01 14:55:09 -08:00
637487625d hack/scripts-dev: reproduce election API panic
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-03-01 14:49:59 -08:00
a7e5790c82 Merge pull request #9372 from gyuho/origin
*: mitigate DNS rebinding attacks in insecure etcd server
2018-02-28 20:38:23 -08:00
9f0027dfb2 *: do not whitelist empty hosts
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-28 19:20:10 -08:00
02217cb6df Documentation/op-guide: document "--host-whitelist"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-28 18:54:59 -08:00
d28c0921d3 CHANGELOG: add "--host-whitelist" change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-28 18:43:49 -08:00
e9969aae7e hack/scripts-dev/docker-dns: add "--host-whitelist" tests
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-28 18:28:12 -08:00
8edaecadc4 embed: enforce client origin policy
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-28 18:27:22 -08:00
3648649277 etcdserver: add "HostWhitelist" to "ServerConfig"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-28 18:25:28 -08:00
0179d81f22 etcdmain: add "--host-whitelist" flag
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-28 18:23:16 -08:00
00c1f16f0a embed: add "HostWhitelist"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-28 18:20:50 -08:00
418bb92963 pkg/httputil: add "GetHostname"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-28 17:27:40 -08:00
f0eb772963 auth: add "IsAuthEnabled" method
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-28 11:16:35 -08:00
9db332c598 hack/scripts-dev: add HTTP requests with DNS
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-28 11:15:41 -08:00
f6617feb8a embed: rename "httpWrapper"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-28 11:15:10 -08:00
ac50ef0812 Merge pull request #8302 from mitake/token-ttl
auth: a new option for configuring TTL of jwt tokens
2018-02-27 20:50:37 -08:00
fb828d1037 hack/scripts-dev: add "clean-docker" to Makefile
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-27 20:09:33 -08:00
566b3a05dc Merge pull request #9371 from gyuho/mutator
embed: rename "v3alphaMutator" to "v3Mutator"
2018-02-27 14:33:06 -08:00
c4fb5bdd23 embed: rename "v3alphaMutator" to "v3Mutator"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-27 14:31:32 -08:00
e8a368d4bd Merge pull request #9341 from gyuho/changelog-feb
CHANGELOG: add changes for next patch release
2018-02-27 14:16:42 -08:00
16f5a301a1 CHANGELOG: add changes
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-27 12:20:48 -08:00
5b8419e9fa semaphore: update release test version 2018-02-27 11:29:28 -08:00
33949f732e Merge pull request #9370 from gyuho/hack
*: fix Makefile, move GOPATH setup to build script
2018-02-27 11:14:36 -08:00
1da0818186 build: use "bash" syntax, clean up
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-27 11:07:36 -08:00
d7092b360d hack/scripts-dev: fix "compile-with-docker-test" in Makefile
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-27 11:07:33 -08:00
18f8b1b1e1 build,test: set up GOPATH in build script
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-27 10:23:14 -08:00
32c46954ee hack/scripts-dev: add "docker-dns-test-insecure-run"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-27 10:12:44 -08:00
1caa6afb5f Merge pull request #9369 from mitake/nop-auth-token
auth: a new auth token provider nop
2018-02-27 18:15:37 +09:00
2a54e32819 e2e: add a test case of JWT token expiration 2018-02-27 16:29:30 +09:00
8fd01f56d6 auth: a new option for configuring TTL of jwt tokens
This commit adds a new option of --auth-token, ttl, for configuring
TTL of jwt tokens. It can be specified like this:
```
--auth-token jwt,pub-key=<pub key path>,priv-key=<priv key path>,sign-method=<sign method>,ttl=5m
```

In the above case, TTL will be 5 minutes.
2018-02-27 16:25:19 +09:00
8eb7cfb296 auth: a new auth token provider nop
This commit adds a new auth token provider named nop. The nop provider
refuses every Authenticate() request so CN based authentication can
only be allowed. If the tokenOpts parameter of auth.NewTokenProvider()
is empty, the provider will be used.
2018-02-27 16:21:14 +09:00
23331f7604 Merge pull request #9368 from mkumatag/fix_gopath_var
build: Fix setting gopath
2018-02-26 20:55:42 -08:00
1ddfade924 build: Fix setting gopath 2018-02-26 23:37:35 -05:00
f802cd9db2 Merge pull request #9366 from gyuho/rafthttp-mu
rafthttp: make "ActiveSince" non-blocking on write lock
2018-02-26 19:19:27 -08:00
e42c2b7bd2 tools/etcd-test-proxy: godoc
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-26 17:29:57 -08:00
659224b385 Merge pull request #9229 from ximenzaoshi/lease-fix
lease: Change lease Mutex to RWMutex
2018-02-26 17:21:09 -08:00
5b9741e804 Merge pull request #9274 from gyuho/revert
*: revert "internal" package changes
2018-02-26 17:13:26 -08:00
2dd8af3503 test: fix "internal/store" path
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-26 17:12:45 -08:00
811566f2f2 *: fix "v2store" imports
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-26 17:11:40 -08:00
33d8126c6b *: regenerate proto
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-26 17:11:40 -08:00
d493cd3bbd etcdserver: fix proto import paths
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-26 17:11:40 -08:00
69f7e11506 *: move "error" to "etcdserver/v2error"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-26 17:11:40 -08:00
b24d81c30d scripts: remove "internal"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-26 17:11:40 -08:00
8a518b01c4 *: revert "internal/mvcc" change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-26 17:11:40 -08:00
9b5d6edc4b *: revert "internal/raftsnap"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-26 17:11:40 -08:00
0e12e888e0 *: move "internal/store" to "etcdserver/v2store"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-26 17:11:40 -08:00
dd2f3b0de8 *: revert "internal/lease" change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-26 17:11:40 -08:00
bb95d190c1 *: revert "internal/auth" change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-26 17:11:40 -08:00
0850ccbf45 *: revert "internal/version" change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-26 17:11:40 -08:00
0e65660548 *: revert "internal/discovery" change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-26 17:11:40 -08:00
19010a7182 *: revert "internal/alarm" change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-26 17:11:40 -08:00
6bbe107225 *: revert "internal/compactor" package change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-26 17:11:40 -08:00
fbe6767570 rafthttp: make "ActiveSince" non-blocking on write lock
"ActiveSince" is read-only, and should be able to call
concurrently, as long as there is no routine holding
write lock (send, send snapshot).

e.g. "ActiveSince" is used around etcd server
"processInternalRaftRequestOnce", should be non-blocking

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-26 16:47:29 -08:00
d6b46ac969 Merge pull request #9279 from gyuho/force-new-cluster
Documentation/op-guide: discourage "--force-new-cluster" in recovery
2018-02-26 15:52:42 -08:00
01193ce5e4 Merge pull request #9363 from gyuho/build-compile
build: fix compile pass
2018-02-26 12:47:58 -08:00
209c820ffa build: ignore "shellcheck disable=SC2086"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-26 12:33:29 -08:00
e1001f9349 build: fix compile pass
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-26 11:37:48 -08:00
04e932ba6f Merge pull request #9347 from gyuho/raft-force-new-cluster
etcdserver: enable "CheckQuorum" when starting with "ForceNewCluster"
2018-02-26 11:28:56 -08:00
53825417d5 Merge pull request #9361 from gyuho/language
Documentation: make "Consul" section more objective
2018-02-26 11:09:11 -08:00
7d7ae8642a Documentation: make "Consul" section more objective
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-26 10:28:41 -08:00
247473be09 Merge pull request #9362 from gyuho/spell-check
*: fix minor lint warnings
2018-02-26 10:19:17 -08:00
8bf0c43b73 Merge pull request #9267 from gyuho/member-add-test
snapshot: fix "TestSnapshotV3RestoreMultiMemberAdd"
2018-02-26 10:08:49 -08:00
ebfba72715 client: fix "ineffassign" warning
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-26 10:07:18 -08:00
9c9d846959 clientv3util: fix govet warning
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-26 10:05:24 -08:00
ab33978646 etcd-tester: fix spell check warnings
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-26 10:03:54 -08:00
bab0223f04 ctlv3: fix typo in check command
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-26 10:03:43 -08:00
d808b4686c raft: fix typo in raft_test.go
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-26 10:03:25 -08:00
d4aeb3b8cf Merge pull request #9356 from mkumatag/fix_gopath
test, build: Fix gopath creation
2018-02-26 07:38:22 -08:00
adf4e05079 test, build: Fix gopath creation 2018-02-26 04:21:06 -05:00
3239641a0c Merge pull request #9350 from JulianGindi/grpc-doc-update
documentation: updated grpc documentation
2018-02-25 19:57:14 -05:00
c751fdf5e8 Merge pull request #9351 from spzala/compactdefragdatascal
etcdctl/check: enable auto compact and defrag for check datascale
2018-02-25 11:00:54 -08:00
2dd1a99f42 Merge pull request #9345 from gyuho/raft-step-candidate
raft: clarify candidate message handling, test candidate to follower transition with message from leader
2018-02-25 10:58:05 -08:00
fc30b9844a etcdctl/check: enable auto compact and defrag for check datascale
Running check datascale can create large history of keyspaces and
internal fragmentation. Allow user to run auto compact and defrag
when run check datascale.
2018-02-23 18:12:54 -05:00
58776fbc10 documentation: updated grpc documentation
I noticed that the docs mention the grpc proxy will listen on port 8080,
but the above example is explicitly telling it to listen on 2379.
Removing confusion.
2018-02-23 13:35:18 -08:00
69357adf33 etcdserver: enable "CheckQuorum" when starting with "ForceNewCluster"
We enable "raft.Config.CheckQuorum" by default in other
Raft initial starts. So should start with "ForceNewCluster".

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-23 00:26:42 -08:00
01db389ea8 raft: document why reuse candidate's term for vote response in stepCandidate
"stepCandidate" should reuse candidate's own term, not term in Message,
because pre-vote is requested with future term.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-21 16:11:01 -08:00
38846c220a raft: use leader's term when candidate becomes follower
`raft.Step` already ensures that when `m.Term > r.Term`,
candidate reverts back to follower with its term being
reset with `m.Term`, thus it's always true that
`m.Term == r.Term` in `stepCandidate`.

This just makes `r.becomeFollower` calls consistent.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-21 16:10:52 -08:00
4fd378ee80 Merge pull request #9343 from gyuho/vvv
*: fix govet -shadow warnings
2018-02-21 10:53:04 -08:00
32ea82cd3f etcd-runner: fix govet -shadow warning
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-21 10:22:12 -08:00
c0910085f5 ctlv2: fix govet -shadow warning
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-21 10:20:54 -08:00
e88bf42966 Merge pull request #9339 from gyuho/fix-embed-auto-compact
embed: fix revision-based compaction with default value
2018-02-21 07:40:35 -08:00
83d1c3d5ec embed: fix revision-based compaction with default value
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-20 17:21:07 -08:00
4aa0320439 embed: document/validate compaction mode
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-20 17:18:48 -08:00
df4aafbbdf Merge pull request #9334 from gyuho/go-1.10
*: upgrade to Go 1.10
2018-02-20 13:22:59 -08:00
089ac72a7c CHANGELOG: add Go 1.10+ for 3.4
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-20 13:21:56 -08:00
e19df692f8 Merge pull request #9185 from spzala/checkdatabase
etcdctl/check: create new check command for memory usage
2018-02-20 11:25:58 -08:00
8b763c64b5 README: require Go 1.10+
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-19 02:27:37 -08:00
ca1885cf1d tools/functional-tester: use Go 1.10
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-19 02:27:37 -08:00
e9b14788cc hack/scripts-dev: use Go 1.10 in Makefile
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-19 02:27:37 -08:00
2dd08a08ae semaphore.sh: use Go 1.10
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-19 02:27:37 -08:00
af4e092e32 travis: use Go 1.10
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-19 02:27:37 -08:00
0b5c660c1d Merge pull request #9336 from rkd-msw/iss_9335_fix
httpproxy: cancel requests when client closes a connection
2018-02-18 12:14:14 -08:00
dfe12ed5c2 httpproxy: cancel requests when client closes a connection 2018-02-18 19:19:44 +00:00
53d2a2edfe etcdctl/check: create new check command for memory usage
Create a new command similar to check perf that can check the memory
consumption for putting different workloads on a given endpoint. If no endpoint
is provided, localhost will be used. Return user with a message that whether
there are enough memory for a given workload with pass or fail.

Fixed #9121
2018-02-17 12:01:31 -05:00
b03fd4cbc3 Merge pull request #9330 from gyuho/auto-compact-defrag
ctlv3/command: auto compact and defrag after "check perf"
2018-02-15 14:51:27 -08:00
d1e85570e9 ctlv3/command: auto compact and defrag after "check perf"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-15 14:28:02 -08:00
1e9ba31eb4 Merge pull request #9323 from gyuho/functional-tester-guide
*: clean up functional tester guide with local cluster, docker container
2018-02-14 11:28:47 -08:00
0210d27979 *: remove "./cmd/tools" in build commands
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-14 11:26:38 -08:00
6ae9a7658a tools/functional-tester: clean up Docker scripts
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-14 11:26:32 -08:00
10185b1953 Merge pull request #9322 from gyuho/fix-failpoints
build: fix "gofail" with "mvcc/backend"
2018-02-14 10:57:43 -08:00
2aa960ad43 build: fix "gofail" with "mvcc/backend"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-14 10:54:13 -08:00
e48b585e22 Merge pull request #9321 from hexfusion/v3_r
CHANGELOG: updates from #9298
2018-02-14 09:26:48 -08:00
68c270d9bd CHANGELOG: updates from #9298 2018-02-13 18:37:11 -05:00
fcd71b47d5 Merge pull request #9298 from hexfusion/v3
*: replace grpc-gateway endpoint with /v3
2018-02-13 17:17:57 -05:00
cb5d089d33 Merge pull request #9312 from hexfusion/e2e_w2
e2e: improve Watch test coverage
2018-02-13 17:07:03 -05:00
aab8b5e456 Merge pull request #9319 from gyuho/skip
scripts/genproto: run "protodoc" by default
2018-02-13 13:53:01 -08:00
dac6948774 scripts/genproto: run "protodoc" by default
Do not skip "protodoc" by default.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-13 13:51:13 -08:00
f65f988e0b e2e: improve Watch test coverage 2018-02-12 22:14:56 -05:00
ebd58a0ea3 Merge pull request #9313 from opera443399/fix-etcdctl-README-typo
etcdctl: fix typo in README
2018-02-12 10:28:13 -08:00
428f8c5b12 Merge pull request #9287 from gyuho/changelog-3.4
CHANGELOG: updates from January/February 2018
2018-02-12 10:15:59 -08:00
02f46938d5 CHANGELOG: updates from January/February 2018
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-12 10:11:55 -08:00
7d8b0ba62d Merge pull request #9307 from yudai/gap_db_size
*: allow dbSizeInUse not to equal to dbSize when growing
2018-02-12 09:46:13 -08:00
a3d0c2e60d Merge pull request #9314 from coreos/ttt
test: fix "internal/store"
2018-02-12 09:34:53 -08:00
73dfbd5a70 Merge pull request #9315 from gyuho/ac
*: regenerate proto with typo fix "acquisition"
2018-02-12 09:33:38 -08:00
a9804cdf75 *: regenerate proto with typo fix "acquisition"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-12 09:25:26 -08:00
3e13424bb8 test: fix "internal/store"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-12 09:21:11 -08:00
069c0fc962 etcdctl: fix typo in README
some examples use endpoint with port `:2379` but the others with `:12379`
2018-02-12 10:22:25 +08:00
488ee99ae8 *: replace grpc-gateway endpoint with stable /v3 2018-02-11 19:07:36 -05:00
9c6d930565 Merge pull request #9303 from gyuho/go
*: use latest Go in tests
2018-02-09 16:12:50 -08:00
10444cc1d7 Merge pull request #9283 from zehweh/patch-1
fix typo in README.md
2018-02-09 15:48:10 -08:00
0a20767280 Merge pull request #9296 from xiang90/c_r
mvcc: allow large concurrent reads under light  write workload
2018-02-09 11:34:28 -08:00
54b21fa312 Merge pull request #9308 from hexfusion/e2e-u
e2e: improve user coverage
2018-02-09 10:13:37 -08:00
4dfd8ab2fc *: fix typo in README.md 2018-02-09 09:23:45 +01:00
571e9a9e79 *: allow dbSizeInUse not to equal to dbSize when growing
Due to boltdb behavior, dbSizeInUse can be unequal to dbSize even when
dbSize is growing in some conditions. The possible gap between the sizes
is up to a couple of pages.

Closes #9302
2018-02-08 19:33:21 -08:00
a0f67e9dab e2e: improve user coverage 2018-02-08 22:15:15 -05:00
3ebee21407 mvcc: allow large concurrent reads under light write workload 2018-02-08 15:56:56 -08:00
f5d02f0279 Merge pull request #9305 from gyuho/fmt
*: fix govet warnings
2018-02-08 15:14:49 -08:00
678bc98f26 hack/scripts-dev: Makefile with Go 1.9.4, 1.8.7
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-08 14:10:37 -08:00
7be4e451ae travis: use Go 1.9.4 with TARGET_GO_VERSION
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-08 14:10:34 -08:00
deb30b500f tools/etcd-test-proxy: remove newline in "Fprintln"
Fix govet warnings with Go tip

```
tools/etcd-test-proxy/main.go:47: Fprintln arg list ends with redundant
newline
```

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-08 13:35:51 -08:00
0cac7c9cc1 semaphore: use Go 1.9.4, update release upgrade test version
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-08 13:20:35 -08:00
fe94f8f53a Merge pull request #9300 from xiang90/simple
mvcc: remove unnecessary metrics update code
2018-02-08 10:14:02 -08:00
1a3a4d1646 mvcc: remove unncessary metrics update code 2018-02-08 08:59:01 -08:00
b309bc6403 Merge pull request #9299 from hexfusion/rp
*: regenerate proto
2018-02-08 06:10:54 -08:00
7efe72ce93 *: regenerate proto 2018-02-07 22:17:05 -05:00
a0e17f69a2 Merge pull request #9292 from longzhiri/master
build.ps1: remove .\cmd
2018-02-06 20:00:50 -08:00
03a4fafaf6 build.ps1: remove .\cmd 2018-02-07 10:36:27 +08:00
11214aa33b Merge pull request #9288 from xiang90/wl
etcdserver: improve request took too long warning
2018-02-06 13:23:41 -08:00
b83244bd35 etcdserver: improve request took too long warning 2018-02-06 12:15:52 -08:00
63183f8c18 Merge pull request #9281 from yudai/fix_unrestored_watchers
mvcc: restore unsynced watchers
2018-02-06 11:33:13 -08:00
88d623f06a Merge pull request #9286 from gyuho/vvv
build: fix "internal/version" LD flags
2018-02-06 10:43:46 -08:00
fcab10bb2d mvcc: restore unsynced watchers
In case syncWatchersLoop() starts before Restore() is called,
watchers already added by that moment are moved to s.synced by the loop.
However, there is a broken logic that moves watchers from s.synced
to s.uncyned without setting keyWatchers of the watcherGroup.
Eventually syncWatchers() fails to pickup those watchers from s.unsynced
and no events are sent to the watchers, because newWatcherBatch() called
in the function uses wg.watcherSetByKey() internally that requires
a proper keyWatchers value.
2018-02-06 10:30:02 -08:00
3215cf7e68 build: fix "internal/version" LD flags
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-06 10:16:01 -08:00
3bd0114c50 Merge pull request #9081 from gyuho/network-fault-test-with-proxy
*: run network fault tests with proxy
2018-02-06 09:51:34 -08:00
af44780be1 Merge pull request #9282 from gyuho/raft-index
raft: reuse "last index" in "appendEntry"
2018-02-06 08:00:58 -08:00
2b7c12fb12 raft: reuse "last index" in "appendEntry"
No need to call "lastIndex" again.
"append" call already returns "lastIndex".

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-05 21:26:45 -08:00
3903385d1b Merge pull request #9272 from gyuho/logger
clientv3: use "pkg.Logger"
2018-02-05 15:41:16 -08:00
99e1bd28b8 Documentation/op-guide: discourage "--force-new-cluster" in recovery
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-05 14:34:51 -08:00
7ba860ed19 snapshot: use "pkg/logger.NewPackageLogger"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-05 14:32:26 -08:00
a2ce52d8c2 etcdctl/ctlv3: use "logger.NewPackageLogger"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-05 13:50:54 -08:00
db68671a71 words: whitelist "args"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-05 13:42:02 -08:00
1f016f3b96 clientv3: use "pkg/logger"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-05 13:40:58 -08:00
aba719e4c2 pkg/logger: add "Lvl" to "Logger"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-05 13:40:51 -08:00
71824474df snapshot: fix "TestSnapshotV3RestoreMultiMemberAdd"
Membership reconfiguration may not be applied
when the new member joins. Also pass all endpoints
to check restore data in case of leader election or
network faults.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-05 13:08:24 -08:00
4e662b26d7 CHANGELOG: rename to "CHANGELOG-2.3.md" 2018-02-05 13:02:59 -08:00
50d91036a8 Merge pull request #9273 from gyuho/aaa
integration: fix govet error in Go tip
2018-02-05 12:48:57 -08:00
c80ca24b54 Merge pull request #9278 from xiang90/jitter
v3rpc: add jitter to progress notification
2018-02-05 12:43:51 -08:00
142bff89f4 v3rpc: add jitter to progress notification 2018-02-05 10:37:12 -08:00
07f9229731 Merge pull request #9275 from gyuho/v2auth
etcdserver: move "etcdserver/auth" to "etcdserver/v2auth"
2018-02-05 08:33:05 -08:00
eecbba7927 etcdserver: move "etcdserver/auth" to "etcdserver/v2auth"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-02 15:05:56 -08:00
a696343a0f integration: fix govet error in Go tip
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-02 14:33:42 -08:00
6a265731e1 Merge pull request #9271 from yudai/mention_quota_limit
*: Remove 8GiB quota limitation from documents
2018-02-02 14:08:29 -08:00
73028efce7 *: Remove 8GiB quota limitation from documents
Also mention that in v3.3 change log.
2018-02-02 12:54:19 -08:00
38a378fa0d Merge pull request #9265 from gyuho/branch-manager
Documentation/dev-internal: update release managers with 3.3 release
2018-02-01 14:24:11 -08:00
41278822ac Merge pull request #9256 from yudai/actual_db_size
*: Add dbSizeInUse to StatusResposne
2018-02-01 13:24:25 -08:00
6b775cd786 *: Add dbSizeInUse to StatusResposne
Existing dbSize shows physically allocated DB size and the backend
(boltdb) won't shrink it after a compaction until a user runs the defrag command.
The new dbSizeInUse shows the DB size that excludes free pages created
by compactions so that users can see the actual DB usage. dbSize >=
dbSizeInUse is always true.
Note that dbSizeInUse shows a page-based size and not byte level usage.
2018-02-01 12:15:23 -08:00
29efcdd78a Documentation/dev-internal: update release managers with 3.3 release
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-01 12:15:04 -08:00
d7e18880a9 CHANGELOG-3.3: v3.3.0 is ready
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-01 10:04:47 -08:00
dafbc04a73 Merge pull request #9255 from gyuho/snapshot-doc
snapshot: clarify "Restore" method with conflicting data directory
2018-01-31 10:13:55 -08:00
c59d0f9fe2 snapshot: clarify "Restore" method with conflicting data directory
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-31 10:05:35 -08:00
610aefbb74 Merge pull request #9258 from tamird/dep-cleanup
Gopkg.toml: remove unnecessary constraints and add pruning
2018-01-31 09:59:42 -08:00
29c8aca4b6 Merge pull request #9257 from gyuho/maintainer-rules
MAINTAINERS: add "MAINTAINERS_RULES" and second email
2018-01-31 08:44:41 -08:00
42344da5df Gopkg.toml: remove unnecessary constraints and add pruning
Confirmed that `dep ensure` results in no version changes in Gopkg.lock.
2018-01-31 10:21:24 -05:00
15498dafc8 MAINTAINERS: add "MAINTAINERS_RULES" and second email
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-30 14:05:47 -08:00
d9deeff49a Merge pull request #9254 from gyuho/proxy-doc
etcdmain: define "defaultGRPCMaxCallSendMsgSize"
2018-01-30 11:48:46 -08:00
5a62ceb003 etcdmain: define "defaultGRPCMaxCallSendMsgSize"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-30 09:49:03 -08:00
97db7c7d78 Merge pull request #9245 from gyuho/defrag-doc
Documentation/op-guide: highlight defragment operation
2018-01-30 09:42:15 -08:00
1b2d470b24 Merge pull request #9252 from hexfusion/fx_help
etcdmain: add discovery-srv-name
2018-01-30 09:32:21 -08:00
73e020d51d Merge pull request #9250 from zbindenren/grpcproxy_msgsize
grpcproxy: configure --max-send-bytes and --max-recv-bytes for grpc proxy
2018-01-30 09:31:57 -08:00
ab2bc5b93c CHANGELOG-3.3: add "grpc-proxy start --max-send/recv-bytes" flags
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-30 09:31:02 -08:00
c2171f9bde etcdmain: add discovery-srv-name 2018-01-30 09:18:55 -05:00
9aabe2a2b6 grpcproxy: configure --max-send-bytes and --max-recv-bytes for grpc proxy 2018-01-30 09:38:23 +01:00
42ef97d6d5 Merge pull request #9247 from gyuho/internal-compactor
embed: define "embed.CompactorMode*"
2018-01-29 16:44:49 -08:00
dc36b098ac CHANGELOG-3.3: add "--auto-compaction-mode"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-29 15:49:24 -08:00
6acd3b4643 embed: define "embed.CompactorMode*"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-29 15:42:30 -08:00
1d99d3886f Merge pull request #9244 from coreos/vvv
*: move "version" to "internal/version"
2018-01-29 10:35:30 -08:00
8e7099fa26 Documentation/op-guide: highlight defragment operation
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-29 10:22:04 -08:00
37546f74ab *: move "version" to "internal/version"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-29 10:00:20 -08:00
0e2f9ea7d5 Merge pull request #9243 from mitake/auth-internal
*: move "auth" to "internal/auth"
2018-01-29 18:32:09 +09:00
9c6c830c61 CHANGELOG-3.4: add "internal/auth" change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-28 23:44:09 -08:00
264f8f6577 *: regenerate proto
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-28 23:43:15 -08:00
6c91766490 *: move "auth" to "internal/auth" 2018-01-29 14:57:35 +09:00
ce0ad377d2 Merge pull request #9240 from gyuho/vendor
Gopkg.*: remove directive dependencies from Gopkg.toml
2018-01-26 19:38:18 -08:00
d54f281b26 Merge pull request #8525 from shuaili87/pre-vote-compatible
raft: fix deadlock during PreVote migration process
2018-01-26 16:34:59 -08:00
1c5c8219f2 Gopkg.*: remove directive dependencies from Gopkg.toml
Reproducible builds are already done via Gopkg.lock.
Remove "constraint"s for external projects with conflicting
dependencies.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-26 14:30:37 -08:00
1153e43b34 Merge pull request #9239 from gyuho/maintainer
MAINTAINERS: @mitake as "pkg:*" maintainer
2018-01-26 12:56:51 -08:00
d126630aef MAINTAINERS: @mitake as "pkg:*" maintainer
Hitoshi has been involved in all components of etcd.
Thanks for your consistent and great work!

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-26 12:44:18 -08:00
902bdb474e Merge pull request #9238 from gyuho/internal
*: move packages to "internal"
2018-01-26 12:32:36 -08:00
5cc9bfd574 CHANGELOG-3.4: highlight internal package changes
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-26 11:23:31 -08:00
2c91007591 *: regenerate proto
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-26 11:21:40 -08:00
80d15948bc *: move "mvcc" to "internal/mvcc"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-26 11:14:41 -08:00
349a377a67 *: move "lease" to "internal/lease"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-26 11:09:29 -08:00
880835c02c *: move "store" to "internal/store"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-26 11:06:22 -08:00
ca14da00db CHANGELOG-3.4: add "--discovery-srv-name" change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-26 10:54:29 -08:00
b26b8588b2 Merge pull request #8786 from harryge00/check-empty-hostname
embed: return error when advertise-client-urls are with empty hosts
2018-01-26 10:43:45 -08:00
3808c04655 Merge pull request #9237 from gyuho/log-backend
etcdserver: clarify warnings on backend open taking >10 seconds
2018-01-26 10:42:26 -08:00
0365a9dee8 etcdserver: clarify warnings on backend open taking >10 seconds
If db file is 10 GiB, it can take more than 1-second.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-26 10:19:21 -08:00
5b95494b2d Merge pull request #9201 from njuettner/master
Documentation/op-guide: Typo instance type GCE
2018-01-26 07:42:53 -05:00
cb3a38944e Documentation/op-guide: Typo instance type GCE 2018-01-26 12:02:35 +01:00
6912a8e59e embed: return error when advertise-client-urls or initial-advertise-peer-urls are with empty hosts 2018-01-26 11:10:09 +08:00
6faeddb922 Merge pull request #9233 from gyuho/discovery
*: move "discovery" to "internal/discovery"
2018-01-25 16:56:27 -08:00
432581c7d0 *: move "discovery" to "internal/discovery"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-25 15:41:17 -08:00
798586b5f1 Merge pull request #9234 from gyuho/internal-alarm-compactor
*: move "alarm,compactor" to "internal/*"
2018-01-25 15:35:53 -08:00
46b9844ca5 *: move "alarm,compactor" to "internal/*"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-25 15:26:21 -08:00
a9aa691a85 CHANGELOG: add 3.4 endpoint status change, 3.3 DNS error handling
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-25 14:45:37 -08:00
28db30fee2 Merge pull request #9231 from bgilbert/fleet
Documentation: drop fleet from integration lists
2018-01-25 12:46:36 -08:00
4c801ee315 Documentation: drop fleet from integration lists
fleet is deprecated and no longer maintained.
2018-01-25 12:08:46 -08:00
0c692fb898 Merge pull request #9210 from gyuho/dns-error
*: add detailed error message on URLs equal check
2018-01-25 11:57:10 -08:00
ce45c83f29 etcdserver: add detailed errors in "ValidateClusterAndAssignIDs"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-25 11:22:10 -08:00
e1de74913d pkg/netutil: return error from "URLStringsEqual"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-25 11:22:07 -08:00
2b10bcccee etcdserver: add error details on DNS resolution failure on advertise URLs
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-25 10:35:36 -08:00
7dd9c30ae7 Merge pull request #8690 from tavish-stripe/tavish/svc-flag
pkg/srv, embed, etcdmain: Support multiple clusters in the same DNS domain
2018-01-25 10:42:15 -05:00
3fdaf4eaa7 Merge pull request #9206 from dvonthenen/feature/issue9163
Exposes alarm/health information in "etcdctl endpoint status"
2018-01-25 07:18:22 -08:00
8ee3f5aaac Merge pull request #9228 from mkumatag/fix_govet
Fix govet
2018-01-25 07:17:52 -08:00
c27998db97 raft: fix govet errors 2018-01-25 04:51:38 -05:00
f705c1be9b lease: fix govet errors 2018-01-25 04:51:13 -05:00
97817404c9 integration: Fix govet errors 2018-01-25 04:50:40 -05:00
fd20ba75dc etcdctl: Fix govet errors 2018-01-25 04:50:09 -05:00
b0d3c07fe5 e2e: Fix govet errors 2018-01-25 04:49:30 -05:00
1f638c4ad8 clientv3: Fix govet errors 2018-01-25 04:48:47 -05:00
4822116698 lease: Change lease Mutex to RWMutex 2018-01-25 16:19:28 +08:00
89221a25b8 mvcc : Fix Govet errors 2018-01-25 02:30:37 -05:00
86c086664c auth: Fix govet errors 2018-01-25 02:30:04 -05:00
81c9f78502 Documentation: document the -discovery-srv-name flag for configuring service name in DNS discovery. 2018-01-25 01:56:19 +00:00
37f577ca0f CHANGELOG: add missing 3.2~3.4 changes
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 17:51:23 -08:00
c61b660f13 tools/functional-tester: update README for local docker testing
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 17:37:31 -08:00
1f58e72944 hack/scripts-dev: clean up "Makefile"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 17:37:31 -08:00
e8242dd916 hack/scripts-dev: add "build-docker-functional-tester" to Makefile
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 17:37:31 -08:00
e33ef34c16 Dockerfile-functional-tester: initial commit
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 17:37:31 -08:00
0ca37a0c1d gitignore: add ".Dockerfile-functional-tester"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 17:37:31 -08:00
5960c7519f test: configure advertise ports in functional_pass
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 17:37:09 -08:00
a90695fd5f etcd-tester: set advertise ports, delay w/ network faults
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 17:37:09 -08:00
a912ddcf20 etcd-agent: use "pkg/transport.Proxy"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 17:37:09 -08:00
42c90ffd83 test: remove "use-root" in functional_pass
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 17:37:09 -08:00
affcaef868 etcd-agent: remove "use-root"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 17:37:09 -08:00
8bba5367f0 functional-tester: remove old assets
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 17:37:09 -08:00
27d938f825 hack/scripts-dev: add "build-etcd-test-proxy" to Makefile
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 17:37:09 -08:00
849f88edbf etcd-test-proxy: initial commit
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 17:37:09 -08:00
ab486e5348 pkg/transport: implement "Proxy"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 17:37:09 -08:00
114a7779c9 pkg/transport: add "fixtures" for TLS tests
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 17:37:09 -08:00
aadfb2b7c6 Merge pull request #9155 from gyuho/dep
vendor: migrate to "golang/dep"
2018-01-24 17:34:04 -08:00
96a0392d44 build: specify target with "${REPO_PATH}"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 15:27:06 -08:00
fcfbeb30e8 tools/benchmark/cmd: fix fmt warning in import path
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 15:26:17 -08:00
4d06d32ded build: remove "./cmd/etcd,etcdctl"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 15:26:17 -08:00
a270a91292 build.ps1: remove "cmd/vendor"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 15:26:17 -08:00
ab7c319b8c travis.yml: remove "./cmd"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 15:26:17 -08:00
97cd2a41c8 client,clientv3: remove "cmd/vendor" in README.md
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 15:26:17 -08:00
6eefc93343 test: remove "./cmd", "etcd_setup_gopath"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 15:26:17 -08:00
c8e5311131 Dockerfile: remove "cmd/vendor"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 15:26:17 -08:00
66d6a39c46 Documentation/op-guide: remove "./cmd/vendor" in monitoring.md
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 15:26:17 -08:00
ab249384b9 Documentation/dl_build: remove "./cmd/etcd"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 15:26:17 -08:00
698ec7f7d5 scripts/updatebom.sh: remove "./cmd/vendor"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 15:26:17 -08:00
b596c3c119 tools/functional-tester: update "build" script
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 15:26:17 -08:00
b5d5ce4b80 Gopkg.lock: initial commit
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 15:26:17 -08:00
970ab0b966 vendor: regenerate
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 15:26:17 -08:00
65ee3a05d6 Gopkg.toml: initial commit
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 15:26:17 -08:00
4fc2db7d65 gitignore: ignore test files in "vendor"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 15:26:17 -08:00
b1e87f8ae1 cmd: move "cmd/vendor" to root, remove "cmd"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 15:26:17 -08:00
fa9f3dd124 glide: remove
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 15:26:16 -08:00
505d24c463 scripts/updatedep.sh: use "golang/dep"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 15:26:16 -08:00
db822ed38f *: add alarm/health information in endpoint status
Update to remove raftIndex and document the Alarms() interface

Fix formatting

Fix typo
2018-01-24 13:12:48 -08:00
b664b9176c pkg/srv, embed, etcdmain: Support multiple clusters in the same DNS discovery region. 2018-01-24 20:15:48 +00:00
7331949a47 Merge pull request #9211 from gyuho/raftsnap
*: rename "snap" to "raftsnap"
2018-01-24 11:19:40 -08:00
dee39bf786 internal/raftsnap: move "raftsnap" to internal
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 10:36:04 -08:00
d095cc6ff0 raftsnap: add "doc.go"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 10:28:06 -08:00
b42e158b51 CHANGELOG-3.4: add "raftsnap" package
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 10:26:07 -08:00
2b6fd3094f *: rename "snap" to "raftsnap" package
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 10:26:07 -08:00
bb2c48b38a rafthttp: rename "snap" to "raftsnap" package
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 10:26:07 -08:00
6a70a931d3 etcdserver: rename "snap" to "raftsnap" package
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 10:26:07 -08:00
60d5ab5485 raftsnap: rename "snap" to "raftsnap"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-24 10:26:07 -08:00
0ef5e01bd9 Merge pull request #9217 from ka1em/patch-2
clientv3/namespace: fixed an error in the doc.go
2018-01-24 10:13:04 -08:00
216247570c Merge pull request #9202 from olvesh/patch-1
Documentation/op-guide: integer value of 1 is 100% not 1% for failing reqs
2018-01-24 09:56:37 -08:00
2bc0ba4f17 Documentation/op-guide: integer value of 1 is 100% not 1% for failing reqs 2018-01-24 17:09:26 +01:00
c143545d13 clientv3/namespace: fixed an error in the doc.go 2018-01-24 23:36:58 +08:00
64713e5927 Merge pull request #9203 from gyuho/ccc
Documentation/op-guide: fix CHANGELOG links in security.md
2018-01-23 18:42:50 -08:00
80250827ab Merge pull request #9208 from gyuho/fix-godoc-snapshot
snapshot: fix "Save" godoc description
2018-01-23 14:54:46 -08:00
c1519e5e98 snapshot: fix "Save" godoc description
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-23 14:30:20 -08:00
2e85b6c321 Merge pull request #9204 from bdarnell/prevote-take-3
raft: Clarify conditions for granting votes and prevotes.
2018-01-23 14:21:58 -08:00
131da29c63 Merge pull request #9198 from gyuho/snapshot-test
snapshot: add "snapshot" restore/save/member-add tests
2018-01-23 13:59:05 -08:00
f812b9faf1 Merge pull request #9205 from gyuho/go-upgrade
travis,semaphore: use Go 1.9.3
2018-01-23 13:58:50 -08:00
efb7958687 hack/scripts-dev: use Go 1.9.3 by default
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-23 13:17:32 -08:00
7df3dfbcdd semaphore,travis: test with Go 1.9.3
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-23 13:17:20 -08:00
7eb0523bd2 pkg/testutil: define "RequestTimeout"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-23 13:13:00 -08:00
48f3e800c7 snapshot: add "snapshot" restore/save/member-add tests
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-23 13:12:56 -08:00
4e0291ff91 raft: Clarify conditions for granting votes and prevotes.
This includes one theoretical logic change: A node that knows the
leader of the current term will no longer grant votes, even if it has
not yet voted in this term. It also adds a `m.Type == MsgPreVote`
guard on the `m.Term > r.Term` check, which was previously thought to
be incorrect (see #8517) but was actually just unclear.

Closes #8517
Closes #8571
2018-01-23 15:05:11 -05:00
11f95e121c CHANGELOG: use Go 1.9.3 with etcd 3.3.0, clarify gRPC versions
Add more breaking changes to 3.4

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-23 11:37:06 -08:00
20fbe76277 Documentation/op-guide: fix CHANGELOG links in security.md
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-23 11:00:48 -08:00
495ed39fc8 CHANGELOG: add missing changes from 3.2.15, 3.3.0-rc.4
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-23 09:51:58 -08:00
6f178e8fb2 Merge pull request #9187 from gyuho/changelog
CHANGELOG: track per each minor release
2018-01-23 09:20:15 -08:00
4a12eafb1e Merge pull request #9118 from gyuho/snapshot-code
*: add snapshot package
2018-01-22 17:31:19 -08:00
df689f4280 etcdctl/ctlv3: use "snapshot" package for "snapshot" command
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-22 16:46:15 -08:00
c3ba417737 etcdctl/ctlv3: replace "dbStatus" with "snapshot.Status"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-22 16:46:15 -08:00
8b317df97a e2e: use "snapshot.Status"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-22 16:46:15 -08:00
6e2555fb95 snapshot: initial commit
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-22 16:46:11 -08:00
962505fb1a Merge pull request #9196 from gyuho/log
pkg/logger: type-assert in global-scope
2018-01-22 14:55:08 -08:00
0e43d84f14 pkg/logger: type-assert in global-scope
Rather than asserting inside functions.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-22 14:50:46 -08:00
ea814d230f Merge pull request #9194 from gyuho/logger
pkg/logger: initial commit
2018-01-22 14:47:35 -08:00
cb0290e782 pkg/logger: initial commit
Later to be used with "snapshot" and "clientv3" packages.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-22 13:52:06 -08:00
cdf7fcda60 Merge pull request #9184 from hexfusion/e2e-member
e2e: improve Member TLS test coverage.
2018-01-22 13:45:48 -08:00
b590d529d7 Merge pull request #9174 from gyuho/url-error
clientv3: prevent wrong URLs to cluster APIs
2018-01-22 12:36:56 -08:00
c837e01c7f clientv3/integration: add TestMemberAddUpdateWrongURLs
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-22 11:24:15 -08:00
ab35c8fe3c words: whitelit "rafthttp"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-22 11:16:16 -08:00
a2e999fa4c clientv3: prevent no-scheme URLs to cluster APIs
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-22 11:11:59 -08:00
202cc9a917 Merge pull request #9176 from dvonthenen/feature/issue9123
Expose Raft Applied Index through to "etcdctl endpoint status"
2018-01-22 10:20:31 -08:00
174a9889fd CHANGELOG: track per each minor release
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-22 09:35:15 -08:00
5cce65086a Merge pull request #9182 from gyuho/peer-to-peer-common-name
Documentation/op-guide: explain `--peer-cert-allowed-cn` in security.md
2018-01-22 09:33:11 -08:00
30de11f500 Documentation/op-guide: explain --peer-cert-allowed-cn in security.md
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-22 09:27:12 -08:00
25cdf4ed92 *: expose Raft Applied Index through to "etcdctl endpoint status"
Fixed based on feedback

Fixed spacing

Fix gofmt
2018-01-22 07:37:21 -08:00
61bc0678e2 e2e: improve Member TLS coverage. 2018-01-20 12:22:46 -05:00
0b9dc9ccd3 hack/scripts-dev: update docker images, update DNS cert CN example
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-19 22:11:46 -08:00
1a0057bcb5 CHANGELOG: fix typo "--peer-cert-allowed-cn"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-19 21:53:34 -08:00
0f1ac0cef6 Merge pull request #9178 from gyuho/error-handling
etcdserver/api/v3rpc: debug-log client disconnect on TLS, http/2 stream CANCEL
2018-01-19 13:01:16 -08:00
0cf9382024 words: whitelist "errClientDisconnected"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-19 12:26:59 -08:00
d0eff45256 etcdserver/api/v3rpc: debug-log client disconnect on TLS, http/2 stream CANCEL
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-19 12:26:56 -08:00
7f68327184 Merge pull request #9172 from ppggff/master
Fix a typo
2018-01-19 10:11:21 -08:00
baa9b17cac Documentation/learning: Fix a typo 2018-01-20 00:15:38 +08:00
3e6417b770 Merge pull request #9170 from gyuho/tls-doc
Documentation/op-guide: Clarify TLS "--peer" flags
2018-01-18 16:32:51 -08:00
98190821b3 Documentation/op-guide: Clarify TLS "--peer" flags
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-18 16:25:13 -08:00
ab7cbb0e57 Merge pull request #9169 from gyuho/client-doc
clientv3: document client-side request size limit
2018-01-18 13:09:15 -08:00
f98b1bc725 clientv3: document client-side request size limit
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-18 12:44:01 -08:00
ab2bb9de9e Merge pull request #9129 from gyuho/doc
Documentation/dev-guide: update "Request size limit" with v3.2.12
2018-01-18 12:38:33 -08:00
675b837d6d Documentation/dev-guide: update "Request size limit" with v3.2.12
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-18 12:25:22 -08:00
955198da6b Merge pull request #9168 from gyuho/grpc-doc
Documentation: add TCP RST flag on stream close
2018-01-18 12:21:24 -08:00
aac7e1cba7 Documentation: add TCP RST flag on stream close
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-18 12:20:21 -08:00
729eab92b1 CHANGELOG: add v3.3.0-rc.3
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-17 16:10:33 -08:00
367c0f29d9 Merge pull request #9162 from gyuho/remove-errors
*: remove "errors" field in /health endpoint
2018-01-17 16:07:54 -08:00
e689ff823e proxy/grpcproxy: remove "Errors" field
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-17 15:58:56 -08:00
8455f22285 Documentation/upgrades: highlight "health", remove "errors" field
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-17 15:58:53 -08:00
1139d28eb6 e2e: remove "/health" "errors" field test
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-17 15:18:39 -08:00
1b4502114f etcdserver/api/etcdhttp: remove "errors" field in /health
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-17 15:18:32 -08:00
b5bb91a7c2 CHANGELOG: add /health endpoint change, watch command updates
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-17 14:08:27 -08:00
b6be8fb689 Documentation/upgrades: highlight string "health" field
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-17 13:58:20 -08:00
79710d32c3 Merge pull request #9160 from kchristidis/fix-raft-readme
docs: fix invalid reference in Raft README
2018-01-17 13:50:36 -08:00
97fad42d81 docs: fix invalid reference in Raft README
Code snippet in Raft README refers to non-existent field `State`. Fixed
the reference by setting it to `HardState`.
2018-01-17 16:03:32 -05:00
30511860a6 Merge pull request #9142 from gyuho/watch-env
ctlv3: support ETCDCTL_WATCH_KEY, ETCDCTL_WATCH_RANGE_END
2018-01-17 12:39:49 -08:00
6a80e94e50 Merge pull request #9143 from liggitt/healthz-schema
api/etcdhttp: change /health type back to string for backwards compatibility
2018-01-17 11:27:21 -08:00
5b7a869b06 Merge pull request #9154 from gyuho/3.4-roadmap
ROADMAP: update 3.4 roadmap
2018-01-17 10:21:03 -08:00
b8a95d7a9b etcdctl: document "ETCD_WATCH_*"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-17 09:54:37 -08:00
6ba5682e64 e2e: test ETCD_WATCH_VALUE
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-17 09:54:37 -08:00
5e0118d7ef ctlv3: set ETCD_WATCH_* on watch exec
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-17 09:54:16 -08:00
dfe957e928 ROADMAP: update 3.4 roadmap
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-16 14:42:37 -08:00
2c347d7158 ctlv3: exit on exec watch error
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-16 09:04:46 -08:00
72a2a6671e ctlv3: set ETCD_WATCH_KEY, ETCD_WATCH_VALUE on exec watch
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-16 09:03:10 -08:00
f77e54eb13 api/etcdhttp: change /health type back to string for backwards compatibility 2018-01-15 01:57:55 -05:00
388b7fece6 ctlv3: handle pkg/flags warnings
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-14 11:15:45 -08:00
57284aac28 etcdctl: document watch with ETCDCTL_WATCH_*
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-14 11:15:45 -08:00
503781e3a0 e2e: add watch tests with ETCDCTL_WATCH_*
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-14 11:15:41 -08:00
8183b83220 ctlv3: support ETCDCTL_WATCH_KEY, ETCDCTL_WATCH_RANGE_END
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-14 02:30:03 -08:00
7a8c192c8f Merge pull request #9140 from gyuho/tls-doc
Documentation/op-guide: clarify security.md on TLS auth
2018-01-12 15:22:24 -08:00
eeb4d35b3f Documentation/op-guide: clarify security.md on TLS auth
Make it more accurate (just as pkg/transport/listener_tls.go does).

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-12 14:54:39 -08:00
60e8432807 CHANGELOG: add "raft" package changes/fixes
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-12 10:31:16 -08:00
6f7eda3b1b Merge pull request #9136 from mitake/fix-9094
etcdctl: don't ask password twice for etcdctl endpoint health --cluster
2018-01-12 09:58:52 -08:00
745b241a9c Merge pull request #9139 from gyuho/fix-tester
etcd-tester: update stresser weights with txn stresser
2018-01-12 09:40:42 -08:00
7783aada6a etcd-tester: update stresser weights with txn stresser
Large key writes (stressEntries[1].weight) should not take this
much weight. It was triggering "database size exceeded" errors.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-12 00:17:13 -08:00
b337674971 etcdctl: don't ask password twice for etcdctl endpoint health --cluster
Current etcdctl endpoint health --cluster asks password twice if auth
is enabled. This is because the command creates two client instances:
one for the purpose of checking endpoint health and another for
getting cluster members with MemberList(). The latter client doesn't
need to be authenticated because MemberList() is a public RPC. This
commit makes the client with no authed one.

Fix https://github.com/coreos/etcd/issues/9094
2018-01-12 15:39:42 +09:00
c5532ebbf6 Merge pull request #9067 from absolute8511/optimize-raft-drop
raft: let raft step return error when proposal is dropped to allow fail-fast
2018-01-11 19:54:52 -08:00
30ced5b2be raft: let raft step return error when proposal is dropped to allow fail-fast. 2018-01-12 10:16:47 +08:00
e16abdfade Merge pull request #9115 from gyuho/doc-watch
clientv3: document possible memory pile-up in Watch
2018-01-11 18:12:13 -05:00
a86e1ff494 CHANGELOG: add v3.2.14, v3.3.0-rc.2
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-11 11:39:18 -08:00
63e4a30cee Merge pull request #9133 from gyuho/tester-fix
etcd-tester: fix "writeTxn" key selection
2018-01-11 11:16:42 -08:00
285c7e6fc9 Merge pull request #9116 from absolute8511/fix-raft-learner
raft: raft learners should be returned after applyConfChange
2018-01-11 06:08:29 -08:00
6cf220c92a etcd-tester: fix "writeTxn" key selection
Found when debugging https://github.com/coreos/etcd/issues/9130.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-11 03:06:51 -08:00
11fa4f0275 raft: raft learners should be returned after applyConfChange 2018-01-11 17:30:17 +08:00
52f73c5a6c Merge pull request #8510 from gyuho/txn-stresser
etcd-tester: add txn stresser
2018-01-09 14:17:43 -08:00
38105095cd test: limit stress-qps for slow CI machines, add txn flags
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2018-01-09 13:43:36 -08:00
e41c10347a etcd-tester: add txn stresser
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2018-01-09 13:43:34 -08:00
bcc5ea6a27 Merge pull request #9120 from spzala/statusfromerror
StatusFromError: handle return value of the function
2018-01-09 13:00:23 -08:00
423125a897 Merge pull request #9125 from gyuho/gateway
*: pin latest grpc-gateway release v1.3.1
2018-01-09 12:49:00 -08:00
fd16656af1 scripts/genproto: use "grpc-gateway" v1.3.1
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-09 12:41:49 -08:00
d1526c992a vendor: upgrade "grpc-ecosystem/grpc-gateway" to v1.3.1
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-09 12:40:21 -08:00
7673f7e4c5 CHANGELOG: fix v3.4.0 link, punctuations
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-09 12:16:41 -08:00
8cb8d2c017 CHANGELOG: update v3.3.0, add v3.4.0
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-09 12:10:15 -08:00
1e488f3548 Merge pull request #9124 from gyuho/snapshot-restore
ctlv3: add "snapshot restore --wal-dir"
2018-01-09 11:11:59 -08:00
285a83d70a ctlv3: add "snapshot restore --wal-dir"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-09 09:25:26 -08:00
3b7e2ce0ca StatusFromError: handle return value of the function
status.FromError can return nil, false. We are handling the return values
most places in code but some places we aren't. Fixing it herewith.

Fixes #9117
2018-01-08 22:28:20 -05:00
9bd9d2041f Merge pull request #9122 from gyuho/temp
raft: fix wrong comments in "mustCheckOutOfBounds"
2018-01-08 18:34:29 -08:00
b3916a393f raft: fix wrong comments in "mustCheckOutOfBounds" 2018-01-08 18:31:22 -08:00
ed1ff9e952 Merge pull request #9073 from bdarnell/pending-conf-index
raft: Avoid scanning raft log in becomeLeader
2018-01-08 16:37:36 -08:00
a1d3456641 Merge pull request #9119 from yudai/panic_defrag_fail
mvcc: check null before set FillPercent not to panic
2018-01-08 12:48:48 -08:00
0b1b82aff2 mvcc: check null before set FillPercent not to panic
Since CreateBucketIfNotExists() can return nil when it gets an error,
accessing FillPercent must be done after a nil check, not to cause
a panic.
2018-01-08 11:34:34 -08:00
31c2d4b0a2 clientv3: document possible memory pile-up in Watch
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-08 10:37:47 -08:00
44e1f6f019 Merge pull request #9105 from spzala/getrevision
etcdserver/api/v3rpc: debug user cancellation and log warning for rest
2018-01-08 10:07:57 -08:00
a66d7c3ba5 etcdserver/api/v3rpc: debug user cancellation and log warning for rest
The context error with cancel code is typically for user cancellation which
should be at debug level. For other error codes we should display a warning.

Fixes #9085
2018-01-08 11:03:13 -05:00
6f76e46c0c Merge pull request #9108 from Quentin-M/embed_ext_metrics
embed: enable extensive metrics if specified
2018-01-07 08:44:02 -08:00
a535c01050 embed: enable extensive metrics if specified 2018-01-06 20:40:30 +01:00
65464838ba Merge pull request #9065 from gyuho/watch-id-2
*: allow user-provided watch ID to mvcc
2018-01-05 15:08:10 -08:00
2fb9728473 Merge pull request #9100 from gyuho/flag
etcdmain: unset ETCD_UNSUPPORTED_ARCH after arch check
2018-01-04 17:03:35 -07:00
936c4745c1 etcdmain: unset ETCD_UNSUPPORTED_ARCH after arch check
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-04 22:47:59 +00:00
872fd9d42a Merge pull request #9101 from ericchiang/coc
automated PR: update CoC
2018-01-04 15:44:40 -07:00
2395f8e81c CODE_OF_CONDUCT: update CoC 2018-01-04 22:44:07 +00:00
a7d387cc42 Merge pull request #9093 from spzala/getrevision
DocCommand: use regex wildcard
2018-01-03 23:52:56 -08:00
526f3c1f5f DocCommand: use regex wildcard
The current command as such produces no output on mac term or bash shell.
Using regex wildcard works fine on mac and linux.
2018-01-03 21:46:38 -05:00
6915a718b9 Merge pull request #9090 from gyuho/fix
clientv3/integration: fix typos
2018-01-03 17:31:32 -08:00
7b4fc2601c clientv3/integration: fix typos
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-03 17:26:43 -08:00
a069799810 Merge pull request #9005 from hexfusion/fx_test_const
integration: add constant requestWaitTimeout.
2018-01-03 14:48:00 -08:00
d21fef2d41 integration: add constant RequestWaitTimeout. 2018-01-03 15:53:57 -05:00
17ce61bd0d Merge pull request #9088 from nvanbenschoten/nvanbenschoten/leaner
raft: s/leaner/learner/g
2018-01-03 08:41:53 -08:00
e6dc57f708 raft: s/leaner/learner/g 2018-01-03 08:16:50 -05:00
664f9bd5ba Merge pull request #9082 from spzala/checkperf
Doc: Create doc for etcdctl check perf command
2018-01-02 21:32:56 -08:00
d11c687803 Doc: create doc for check perf command
Create a doc for check commands with perf subcommand.

Fixes #9072
2018-01-02 20:22:55 -05:00
c699470d3b Merge pull request #9074 from gyuho/expect
pkg/expect: fix deadlock in macOS
2018-01-02 14:00:12 -08:00
bdf6e85604 Merge pull request #9084 from gyuho/changelog
CHANGELOG: add v3.2.13, v3.3.0-rc.1
2018-01-02 13:38:56 -08:00
b78c51ae9f CHANGELOG: add v3.2.13, v3.3.0-rc.1
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-02 13:21:28 -08:00
14ec0673e1 Merge pull request #9083 from gyuho/proxy-grpc-msg-size
clientv3/integration: fix TestKVLargeRequests with -tags cluster_proxy
2018-01-02 11:08:16 -08:00
916d9db5b9 Merge pull request #9080 from gyuho/log-debug
etcdserver: log stream error with debug level, silence gRPC server info level logs
2018-01-02 11:01:16 -08:00
e567d94fc2 tools/functional-tester: remove duplicate grpclog set
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-02 11:00:42 -08:00
806ff6dff9 clientv3/integration: fix TestKVLargeRequests with -tags cluster_proxy
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-02 10:50:29 -08:00
5b2f5150d9 etcdserver/api/v3rpc: set grpclog once
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-02 10:12:49 -08:00
9e11ef3ad5 etcdserver,embed: discard gRPC info logs when debug is off
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-02 09:29:07 -08:00
9a50255515 etcdserver/api/v3rpc: log stream error with debug level
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-02 07:44:07 -08:00
e6a46a0ca6 Merge pull request #9076 from spzala/rangeend
README: range-end is not a flag and should not be used
2018-01-01 22:35:55 -08:00
f6f4589853 README: range-end is not a flag and should not be used
As README declares in the beginning, flags can have dash and it should be
replaced with underscore while using. Also flags or commands are emphasized
in general. The range-end is not a flag or valid doc word and should not be
used as such.
2018-01-01 22:51:04 -05:00
b2a15ec327 pkg/expect: fix deadlock in mac OS
bufio.NewReader.ReadString blocks even
when the process received syscall.SIGKILL.
Remove ptyMu mutex and make ReadString return
when *os.File is closed.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-01 17:34:59 -08:00
10522f88f5 clientv3: handle non -1 watch ID on cancellation
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-31 17:43:28 -08:00
33c732b97c api/v3rpc: add watch ID to "watchStream.Watch"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-31 13:20:41 -08:00
82a164e3b9 mvcc: make test struct fields unexported
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-31 13:20:41 -08:00
fc3b59046f mvcc: allow clients to assign watcher IDs
This allows for watchers to be created concurrently
without needing potentially complex and latency-adding
queuing on the client.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-31 13:20:40 -08:00
652841c411 *: regenerate proto
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-31 13:20:40 -08:00
7800fd9fff scripts/genproto: require protoc 3.5.1
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-31 13:20:40 -08:00
9bbfa23183 etcdserverpb: add "watch_id" to "WatchCreateRequest"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-31 13:20:40 -08:00
8d8f3195e4 raft: Avoid scanning raft log in becomeLeader
Scanning the uncommitted portion of the raft log to determine whether
there are any pending config changes can be expensive. In
cockroachdb/cockroach#18601, we've seen that a new leader can spend so
much time scanning its log post-election that it fails to send
its first heartbeats in time to prevent a second election from
starting immediately.

Instead of tracking whether a pending config change exists with a
boolean, this commit tracks the latest log index at which a pending
config change *could* exist. This is a less expensive solution to
the problem, and the impact of false positives should be minimal since
a newly-elected leader should be able to quickly commit the tail of
its log.
2017-12-30 10:13:36 -05:00
fdec12cc20 Merge pull request #9069 from spzala/logconfigfile
Log: add information statement
2017-12-27 19:33:13 -08:00
8a8aff198f Log: add information statement
Adding information that when config file is used other command line flags
and env variables will be ignored. This changes are a follow up of a
disucssion under PR,
https://github.com/coreos/etcd/pull/9066
2017-12-27 17:12:28 -05:00
5e78da17fe Merge pull request #9066 from spzala/etcdconfig
Doc: update etcd configuration detail with config file
2017-12-24 21:06:22 -08:00
aad0d82a04 Doc: update etcd configuration detail with config file
Add a reference, sample file link and precedence detail etc. to the
configuration doc.
2017-12-24 21:02:03 -05:00
0fd3df0b95 Merge pull request #8703 from koko990/master
grpc_naming.md: improve docs invoke grpc naming by balance
2017-12-22 15:27:07 -08:00
9ed3437075 Merge pull request #9061 from gyuho/race-leasing
clientv3/leasing: fix racey waitSession
2017-12-21 17:50:05 -08:00
2f57a84ee6 Merge pull request #9062 from spzala/acidepupdate
Doc: update etcd container image registry references
2017-12-21 17:06:14 -08:00
290117cfa5 Doc: update etcd container image registry references
Update the coreos.com/etcd:v3.1.2 references with the quay registry for etcd
release image example.

Fixes #8984
2017-12-21 19:28:41 -05:00
1880cf8da2 clientv3/leasing: fix racey waitSession
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-21 16:03:35 -08:00
3dd1c1b53c Merge pull request #8994 from gyuho/grpc-proxy-log
*: discard only info when --debug=false, add "--debug" grpc-proxy start
2017-12-21 14:43:05 -08:00
8e6ae01709 CHANGELOG: update gRPC log level change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-21 14:35:01 -08:00
4f71941172 grpc-proxy: add "--debug" flag to "etcd grpc-proxy start" command
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-21 14:30:51 -08:00
39d0e9c3ca embed: only discard infos when debug flag is off
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-21 14:28:13 -08:00
91996607a3 Merge pull request #9060 from gyuho/aaa
*: highlight client response size limit (4 MiB) in previous versions
2017-12-21 14:21:43 -08:00
2829b97ad3 Documentation/upgrades: highlight client response size limit in previous versions
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-21 14:21:21 -08:00
e6adc85e9d CHANGELOG: highlight client response limit in previous versions
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-21 14:04:12 -08:00
be40d27070 Merge pull request #9016 from gyuho/watch-doc
clientv3: document context to "Watch" API
2017-12-21 13:02:20 -08:00
a69801014a words: whitelist more words
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-21 12:59:18 -08:00
f6f3a9ca69 clientv3: document context to "Watch" API
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-21 12:59:15 -08:00
ce264e6000 Merge pull request #9041 from gyuho/etcd-tooling
tools/etcd-dump-*: add TODOs, --decode flag
2017-12-21 12:45:00 -08:00
096c947159 Merge pull request #9024 from gyuho/snapshot-doc
clientv3: document context to "Snapshot" API
2017-12-21 12:44:40 -08:00
c8dc19bf4b Merge pull request #9059 from gyuho/aci-build
*: deprecate ACI for v3.4 release cycle
2017-12-20 16:29:00 -08:00
4388f046db Documentation/dev-internal: remove ACI in release.md
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-20 15:36:50 -08:00
3518351a24 scripts: remove ACI build scripts
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-20 15:35:11 -08:00
2110b210c7 CHANGELOG: fix typo in code change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-20 14:31:35 -08:00
70cca45824 *: update release upgrade test versions
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-20 14:20:52 -08:00
0f6a523ee0 version: bump up to 3.3.0+git
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-20 13:49:29 -08:00
f7a395f030 version: bump up to 3.3.0
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-20 13:48:48 -08:00
09fe2ddc31 Merge pull request #9057 from gyuho/version-bump-up
*: server-side version bump up to 3.3
2017-12-20 13:48:22 -08:00
bd9bd71a61 rafthttp: add 3.3.0 support
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-20 13:34:12 -08:00
b3ec44ca99 etcdserver/api: add 3.3.0 as compatible server capability
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-20 13:34:12 -08:00
578d13c53c Merge pull request #8724 from gyuho/cleanup-retry
clientv3/retry: clean up retryRPCFunc
2017-12-20 13:33:53 -08:00
b01f16a4a4 Merge pull request #9058 from hexfusion/fx_lease_proto
Documentation/dev-guide: update TimeToLive documentation.
2017-12-20 12:50:33 -08:00
211805b188 Merge pull request #9056 from gyuho/lease-expire-doc
Document/upgrades: add "lease timetolive" output change
2017-12-20 12:40:58 -08:00
eb65f26182 Documentation/dev-guide: Update TimeToLive documentation. 2017-12-20 15:39:37 -05:00
255476b5e5 clientv3/retry: clean up retryRPCFunc
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-12-20 12:30:33 -08:00
a7282a3f9f Document/upgrades: add "lease timetolive" output change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-20 12:29:03 -08:00
94e50a1e68 Merge pull request #9047 from gyuho/client-grpc-call-options
*: configurable gRPC message size limits
2017-12-20 12:25:53 -08:00
c00255908d Merge pull request #9053 from tomwilkie/peer_round_trip_time_seconds
Documentation/op-guide: fix typo, s/member_round_trip_time/peer_round_trip_time/
2017-12-20 12:17:47 -08:00
e49e231b81 Merge pull request #8979 from gyuho/changelog-3.3
CHANGELOG: add v3.3 pre-release
2017-12-20 12:16:44 -08:00
3c5eb4f4fe Documentation/upgrades: highlight raw gRPC client wrapper changes
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-20 11:09:05 -08:00
3d56045da0 integration: bump up wait leader timeout for slow CIs
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-20 10:58:05 -08:00
88fe8de99b clientv3/integration: fix TestKVPutError
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-20 10:58:05 -08:00
6bfde98be7 Documentation/upgrades: highlight request limit changes in v3.2, v3.3
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-20 10:58:05 -08:00
3d924aedc8 Documentation/upgrades: clean up 3.2, 3.3 guides
Make headers consistent.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-20 10:58:05 -08:00
1b3ed912a2 words: whitelist more
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-20 10:58:05 -08:00
f38593bbad clientv3/integration: test large KV requests
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-20 10:58:05 -08:00
497412c588 clientv3: call other APIs with default gRPC call options
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-20 10:58:05 -08:00
f87760998b clientv3: call KV/Txn APIs with default gRPC call options
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-20 10:58:05 -08:00
63d66b1011 clientv3: configure gRPC message limits in Config
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-20 10:58:01 -08:00
9442f90016 integration: remove typo in "TestV3LargeRequests"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-20 10:54:40 -08:00
22127895d8 Merge pull request #8919 from gyuho/exec-watch
etcdctl: support exec watch in v3
2017-12-20 10:53:30 -08:00
cd2f83900a CHANGELOG: add "lease timetolive" change
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-20 09:54:49 -08:00
5628fff00f CHANGELOG: link to upgrade guides for every release
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-20 09:54:49 -08:00
38f92801db CHANGELOG: highlight request limit changes, add v3.2.12
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-20 09:54:45 -08:00
59269aa7b0 CHANGELOG: update "code changes" links
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-20 09:52:22 -08:00
d9d12acf78 CHANGELOG: add v3.3.0 pre-release
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-20 09:52:22 -08:00
849c6cfb21 CHANGELOG: minor formatting update in previous releases
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-20 09:52:22 -08:00
e378b9831c Merge pull request #9052 from gyuho/lease-timetolive-output
etcdctl/ctlv3: clarify "lease timetolive" output on expired lease
2017-12-20 09:49:34 -08:00
f59808a2ca etcdctl: update README for new "lease timetolive" output
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-20 06:55:23 -08:00
13a8634630 Documentation/op-guide: s/member_round_trip_time/peer_round_trip_time/ 2017-12-20 13:25:54 +00:00
c559b0eede e2e: update "leaseTestTimeToLiveExpire"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-20 00:52:42 -08:00
9978b4fd35 etcdctl/ctlv3: clarify "lease timetolive" output on expired lease
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-20 00:40:57 -08:00
25222c22d9 e2e: test watch exec in v3 etcdctl
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-12-19 19:45:27 -08:00
e89fc20542 etcdctl: document watch exec in v3
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-12-19 19:45:27 -08:00
904513fa5c etcdctl/ctlv3: support "exec-watch" in watch command
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-12-19 19:45:24 -08:00
828289db32 Merge pull request #9046 from gyuho/request-limit
integration: test large request response back from server
2017-12-19 16:41:27 -08:00
abfc09b1ca integration: test large request response back from server
Address https://github.com/coreos/etcd/issues/9043.
Won't fix it, but we need test coverage on response back
from server as well.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-19 14:45:20 -08:00
74a600afae Merge pull request #9045 from gyuho/test-limit
test: bump up clientv3/integration test time out
2017-12-19 14:44:04 -08:00
ba702ae601 test: bump up clientv3/integration test time out
Recently we've added many more tests.
Until we parallelize tests, just increase the timeout.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-19 14:17:55 -08:00
b0a7623be8 Merge pull request #9023 from gyuho/keepalive-doc
clientv3: document context to "KeepAlive" API
2017-12-19 11:53:56 -08:00
ecbd1aec06 Merge pull request #9038 from gyuho/snapshot-error
clientv3: translate Snapshot API gRPC status error
2017-12-19 11:14:25 -08:00
c8a516d515 Documentation/upgrades: document Snapshot API error handling
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-19 10:46:22 -08:00
7cd985bdac clientv3: translate Snapshot API gRPC status error
To be consistent with other APIs.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-19 10:46:19 -08:00
6f899186f8 Merge pull request #9042 from gyuho/grpc-go
vendor: pin "grpc/grpc-go" v1.7.5
2017-12-19 09:40:54 -08:00
e833b7c2d8 clientv3: document context to "Snapshot" API
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-18 17:03:18 -08:00
b456452240 words: whitelist "statusError"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-18 17:03:18 -08:00
d57002ba9c vendor: pin "grpc/grpc-go" v1.7.5
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-18 15:56:23 -08:00
931dfd7da8 etcd-dump-logs: take data-dir as argument, add TODO
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-18 14:20:56 -08:00
af4d4ab16a tools/etcd-dump-db: add "iterate-bucket --decode" flag
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-18 14:20:52 -08:00
a7445d752b Merge pull request #9039 from gyuho/mvcc-doc
mvcc: clean-up godoc in key_index.go
2017-12-18 13:56:51 -08:00
eb58e7607b Merge pull request #9040 from gyuho/etcd-tester-main
etcd-tester: discard gRPC balancer logs
2017-12-18 13:56:39 -08:00
e21eac808e etcd-tester: discard gRPC balancer logs
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-18 13:39:55 -08:00
76dd9d56a1 mvcc: clean-up godoc in key_index.go
Minor clean-up.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-18 13:20:00 -08:00
95ecf9602a Merge pull request #9031 from gyuho/fix-mvcc
mvcc: fetch revisions with current revision, not 0, in HashByRev
2017-12-18 12:26:30 -08:00
2e95ace82b mvcc: fetch revisions with current revision, not 0, in HashByRev
It was getting revisions with "atRev==0", which makes
"available" from "keep" method always empty since
"walk" on "keyIndex" only returns true.

"available" should be populated with all revisions to be
kept if the compaction happens with the given revision.
But, "available" was being empty when "kvindex.Keep(0)"
since it's always the case that "rev.main > atRev==0".

Fix https://github.com/coreos/etcd/issues/9022.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-18 12:17:06 -08:00
fffb26596c words: whitelist "KeepAlive"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-18 10:34:43 -08:00
3e58dd707f clientv3: document lease KeepAlive streaming errors
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-18 10:19:41 -08:00
da3e3b7240 clientv3: document from "don't halt lease client if there is a lease error"
From https://github.com/coreos/etcd/pull/7866.
2017-12-18 09:55:00 -08:00
9c326ab78c Merge pull request #9034 from hexfusion/fx_ttl_doc
clientv3/lease.go: TTL, document expired Lease.
2017-12-18 09:19:55 -08:00
9b98cbb819 Merge pull request #9017 from hexfusion/test_lease_auth
e2e: improve Lease coverage
2017-12-18 09:19:29 -08:00
ed3672850c e2e: improve lease coverage 2017-12-18 10:47:42 -05:00
33a1d307df Merge pull request #9032 from hexfusion/perl_intergration
Documentation/integrations: minor style fix.
2017-12-18 07:20:41 -08:00
a5d9bff24c clientv3/lease.go: TTL, document expired Lease. 2017-12-18 08:34:19 -05:00
ac58646298 Documentation/integrations: minor style fix. 2017-12-18 07:57:28 -05:00
940dace5d1 Merge pull request #9025 from gyuho/meeting
README: add "Community meetings"
2017-12-15 14:59:55 -08:00
207827a94e README: add "Community meetings"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-15 14:37:37 -08:00
91415f8aaa Merge pull request #8961 from gyuho/test-scripts-4
hack/scripts-dev: add "docker-dns-example-certs-common-name-run"
2017-12-15 13:43:43 -08:00
5783460dbb hack/scripts-dev: rename to example
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-15 13:37:55 -08:00
7533f700f1 hack/scripts-dev: add "docker-dns-test-certs-common-name-run"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-15 13:33:41 -08:00
da52b23542 hack/scripts-dev/docker-dns: add "certs-common-name" test case
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-15 13:33:41 -08:00
9deaee3ea1 Merge pull request #9020 from mkumatag/fix_govet
Clientv3: Fix govet error for gotip
2017-12-15 09:21:19 -08:00
b0f0ba7f81 Merge pull request #9018 from gyuho/auth-ctx
*: fix server-side lease expire when auth is enabled
2017-12-15 08:57:26 -08:00
18746c65da Clientv3: Fix govet error for gotip 2017-12-15 14:31:27 +05:30
9fb7bbdb2d integration: add "TestV3AuthWithLeaseRevokeWithRoot"
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-14 21:45:50 -08:00
85af65eca9 etcdserver: log lease revoke error
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-14 21:45:20 -08:00
1f191a0e34 auth: use NewIncomingContext for "WithRoot"
"WithRoot" is only used within local node, and
"AuthInfoFromCtx" expects token from incoming context.
Embed token with "NewIncomingContext" so that token
can be found in "AuthInfoFromCtx".

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-14 21:45:16 -08:00
014c375099 Merge pull request #9012 from gyuho/gyuho/help-flag
etcdmain: display default --enable-v2, --strict-reconfig-check value ("true")
2017-12-14 11:40:52 -08:00
608961b2b8 Merge pull request #8921 from gyuho/fileutil-darwin
pkg/fileutil: fix preallocate under OS X kernel
2017-12-14 11:38:17 -08:00
0133d77f0a etcdmain: display default --enable-v2, --strict-reconfig-check value ("true")
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-14 11:25:20 -08:00
954ced48d2 Merge pull request #8923 from gyuho/client-logger
clientv3: simplify balancer level logging
2017-12-14 10:39:02 -08:00
962976f2df pkg/fileutil: fix preallocate under OS X kernel
ftruncate changes st_blocks, and following fallocate
syscalls would return EINVAL when allocated block size
is already greater than requested block size
(e.g. st_blocks==8, requested blocks are 2).

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-12-14 10:36:57 -08:00
b48cf77abb Merge pull request #9004 from spzala/readme
Update Running etcd section for pre-built install of etcd
2017-12-13 09:11:41 -08:00
24bdfed0a5 README: update running etcd section for pre-built etcd install
The current Running etcd section only shows how to run etcd for installation
with master branch. If user has installed a pre-built release following the
instructions on the release page, the ./bin/etcd won't work to bring up the
etcd. The Getting etcd section covers both, pre-built and master branch,
with recommendation of pre-built usage so the Running etcd section is updated
accordingly.

fix #9003
2017-12-12 22:43:24 -05:00
c886bda7fe Merge pull request #8996 from tinx/api_md_typo_fixes
Documentation/learning/api.md: fix typos
2017-12-12 13:23:02 -08:00
5a2b0dd0a7 Documentation/learning/api.md: fix markup, wording
A few words have been emphasized to be consistent with the rest
of the text. Also, some phrases have been altered for better
readability.
2017-12-12 18:48:06 +01:00
b52856d4f6 Merge pull request #8999 from yudai/fix_revision_failed_message
compactor: fix error message of Revision compactor
2017-12-11 11:44:13 -08:00
06365b6008 compactor: fix error message of Revision compactor
Reorder the parameters so that Noticef can output the error properly.
2017-12-11 10:39:00 -08:00
5f24a81f64 Documentation/learning/api.md: fix typos 2017-12-10 15:18:45 +01:00
809b0d71a3 Merge pull request #8995 from hexfusion/perl_intergration
Documentation/integrations: add Perl clients.
2017-12-09 15:49:03 -08:00
e8ff7da057 Documentation/integrations: add Perl clients. 2017-12-09 13:33:14 -05:00
a7f1fbe00e Merge pull request #8992 from gyuho/server-close
embed: stop *grpc.Server on *serveCtx serve error
2017-12-08 19:54:03 -08:00
e5e109609f Merge pull request #8991 from gyuho/upgrade-guide
Documentation/upgrades: highlight 3.2 breaking change, require gRPC v1.7.4
2017-12-08 18:55:46 -08:00
9744e1ee87 embed: stop *grpc.Server on *serveCtx serve error
If serve errors before *grpc.Server is sent to serversC,
it should be closed manually.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-08 18:50:37 -08:00
e3da56a8df Merge pull request #8985 from gyuho/update-dep
*: update bbolt, gogo/protobuf, golang/protobuf, regenerate protobuf
2017-12-08 08:57:49 -08:00
bbd2147248 Merge pull request #8988 from gyuho/error-return
embed/config: remove v3.2 TODO
2017-12-08 06:41:12 -08:00
015c04bcf5 Merge pull request #8987 from gyuho/tls-shutdown
embed: fix *grpc.Server panic on GracefulStop with TLS-enabled server
2017-12-08 06:40:50 -08:00
4d1a95c18b bill-of-materials: regenerate
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-07 21:31:13 -08:00
bcd5390b35 *: regenerate protobuf, grpc-gateway
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-07 21:31:13 -08:00
b1c6b98f3d scripts/genproto: require protoc 3.5, update gogo/proto
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-07 21:31:13 -08:00
749a9b14e0 vendor: upgrade bbolt, gogo/protobuf, golang/protobuf
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-07 21:31:13 -08:00
605dcb57a8 Documentation/upgrades: highlight 3.2 breaking change, require gRPC v1.7.4
There's already a section called "Server upgrade checklists" below.
Instead, highlight the listen URLs change as a breaking change in
server. Also update 3.2 and 3.3 gRPC requirements as v1.7.4.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-07 21:28:19 -08:00
af5a5b3998 embed/config: remove v3.2 TODO
Already returning error.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-07 20:37:12 -08:00
9bd07c91de integration: test GracefulStop on secure embedded server
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-07 20:36:31 -08:00
552b58dcfb embed: only gracefully shutdown insecure grpc.Server
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-07 20:36:31 -08:00
e39915feec embed: Avoid panic when shutting down gRPC Server
Avoid panic when stopping gRPC Server if TLS configuration is present.
Provided solution (attempts to) implement suggestion from gRPC team: https://github.com/grpc/grpc-go/issues/1384#issuecomment-317124531.

Fixes #8916
2017-12-07 20:36:31 -08:00
fc2eecf90c Merge pull request #8989 from gyuho/upgrade-doc
Document/upgrades: add server upgrade checklists on listen URLs
2017-12-07 19:59:59 -08:00
3d44e55179 Document/upgrades: add server upgrade checklists on listen URLs
Address https://github.com/coreos/etcd/issues/6336#issuecomment-246486183
about https://github.com/coreos/etcd/pull/7236.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-07 17:45:26 -08:00
5b059acd65 semaphore: run upgrade tests against v3.2.11
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-07 14:35:41 -08:00
a2256a6f24 hack/scripts-dev/Makefile: grpc-proxy with additional metrics URLs
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-06 14:24:11 -08:00
84e51cabc7 hack/scripts-dev: fix Makefile quoute, configurable host tmp dir
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-06 11:16:53 -08:00
805bcc828c clientv3: simplify V(4) logger with Lvl(4)
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-12-05 18:48:36 -08:00
5d2461e139 clientv3: add Lvl method to logger
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-12-05 18:48:36 -08:00
7e0fc6136e Merge pull request #8970 from gyuho/coverage-test
*: fix coverage test failures
2017-12-05 18:38:51 -08:00
f97233d206 test: log gocovmerge merging
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-05 17:18:13 -08:00
89047ab598 Dockerfile-test: use forked version of gocovmerge
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-05 17:17:17 -08:00
1b280a5a12 Merge pull request #8978 from gyuho/clientv3-doc
clientv3/config.go: remove extra whitespace character
2017-12-05 17:14:38 -08:00
944bd2c663 hack/scripts-dev: remove "Too many goroutines" in test scripts
Otherwise, "pkg/testutil" unit tests will trigger test failures.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-05 17:02:24 -08:00
3a941c9455 clientv3/config.go: remove extra whitespace character
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-05 14:51:36 -08:00
3ecd69cc2f hack/scripts-dev: mount host /tmp for Jenkins tests
Was running out of disk space in Jenkins.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-05 10:09:32 -08:00
21252e4219 Merge pull request #8973 from gyuho/changelog
CHANGELOG: add v3.2.11
2017-12-05 09:40:29 -08:00
8b13f7ff12 Merge pull request #8974 from gyuho/indentation
clientv3: fix indentation in doc.go
2017-12-04 17:34:26 -08:00
6458e22708 clientv3: fix indentation in doc.go
Looks off in https://godoc.org/github.com/coreos/etcd/clientv3.

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-04 17:05:31 -08:00
788e759559 CHANGELOG: add v3.2.11
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-04 16:57:37 -08:00
6babf6a656 hack/scripts-dev: fix typo in Makefile
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-04 16:27:26 -08:00
287c23c4b1 Merge pull request #8972 from gyuho/grpc
vendor: upgrade grpc/grpc-go to v1.7.4
2017-12-04 16:21:14 -08:00
148192245c Merge pull request #8971 from gyuho/gosimple
*: fix gosimple warnings on sort.StringSlice
2017-12-04 16:13:57 -08:00
b3f53ce16d vendor: upgrade grpc/grpc-go to v1.7.4
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-04 14:27:06 -08:00
21d4307982 lease: use sort.Strings instead of StringSlice
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-04 14:10:14 -08:00
645c7c9a92 auth: use "sort.Strings" instead of StringSlice
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-04 14:09:27 -08:00
70db68b6e2 Merge pull request #8938 from gyuho/goddoc
clientv3/doc: update dial-timeout error handling with new gRPC
2017-12-04 13:46:10 -08:00
6b6013fad5 clientv3/doc: update dial-timeout error handling with new gRPC
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-12-04 13:45:42 -08:00
198d8d6b24 Merge pull request #8963 from gyuho/certs-gateway-srv
hack/scripts-dev: add "certs-gateway" test case with SRV
2017-12-04 13:39:16 -08:00
44e059879c Merge pull request #8968 from zbindenren/master
clientv3: Fix comment for DialKeepAliveTime and DialKeepAliveTimeout
2017-12-04 09:22:27 -08:00
e18afc462b clientv3: Fix comment for DialKeepAliveTime and DialKeepAliveTimeout 2017-12-04 14:22:34 +01:00
7e79c257ca Merge pull request #8960 from jpbetz/version-metric
metrics: Add server_version metric
2017-12-02 12:15:45 -08:00
49b4117077 hack/scripts-dev: add "docker-dns-srv-test-certs-gateway-run" to Makefile
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-01 15:56:10 -08:00
952f3b1a3b hack/scripts-dev/docker-dns-srv: add "certs-gateway" test case
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-01 15:54:58 -08:00
d0ee3e3c64 Merge pull request #8962 from gyuho/test-scripts-5
hack/scripts-dev/docker-dns: add "certs-gateway" test case
2017-12-01 15:51:12 -08:00
6fcfff132f Merge pull request #8959 from gyuho/test-scripts-3
hack/scripts-dev: share docker image between test cases, clean up DNS SRV tests
2017-12-01 15:46:24 -08:00
d50eb4d671 hack/scripts-dev: add separate certs, scripts to "docker-dns-srv"
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-12-01 15:45:35 -08:00
e3b3608175 hack/scripts-dev: add docker-dns-srv-test-certs-run, docker-dns-srv-test-certs-wildcard-run
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-12-01 15:44:53 -08:00
37ae6e0c41 hack/scripts-dev: keep only shared scripts in docker-dns-srv
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-12-01 15:44:53 -08:00
7c6fb57f2f hack/scripts-dev: add "docker-dns-test-certs-gateway-run" to Makefile
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-01 15:43:36 -08:00
9da00c73bd hack/scripts-dev/docker-dns: add "certs-gateway" test case
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2017-12-01 15:43:33 -08:00
413aa48593 Merge pull request #8958 from gyuho/test-scripts-2
hack/scripts-dev: share docker image between test cases, clean up DNS tests
2017-12-01 15:41:28 -08:00
461d70254e hack/scripts-dev: add separate certs to "docker-dns"
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-12-01 15:39:10 -08:00
4cacbf19dd metrics: Add server_version metric 2017-12-01 15:25:46 -08:00
b1cb99d3eb hack/scripts-dev: add docker-dns-test-certs-run, docker-dns-test-certs-wildcard-run
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-12-01 13:49:08 -08:00
a2c2f8ebc6 hack/scripts-dev: only keep shared scripts between test cases
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-12-01 13:45:50 -08:00
5db3cdd3bb Merge pull request #8957 from gyuho/test-scripts-1
semaphore, test: grep "test timed out" first, specify leaky goroutine string
2017-12-01 13:44:01 -08:00
75fc59fe0d hack/scripts-dev: grep "test timed out" first
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-12-01 13:35:15 -08:00
c6c3e81026 semaphore: grep "test timed out" first, then leaky goroutines
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-12-01 13:32:09 -08:00
c152be097b Merge pull request #8955 from gyuho/fix-e2e
e2e: fix remote error string in TestEtcdPeerCNAuth
2017-12-01 13:29:11 -08:00
156722e26a e2e: fix remote error string in TestEtcdPeerCNAuth
Now error is embed: rejected connection from "127.0.0.1:58527" (error "remote error: tls: bad certificate", ServerName "").
Change from https://github.com/coreos/etcd/pull/8952.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-12-01 12:54:29 -08:00
3537582bcf Merge pull request #8895 from gyuho/tls-doc
Documentation/op-guide: document TLS changes in 3.2
2017-12-01 09:41:32 -08:00
1613ef5822 Merge pull request #8952 from gyuho/tls-log
embed: provide more details on TLS handshake failure
2017-12-01 09:41:16 -08:00
ae589018cb embed: provide more details on TLS handshake failure
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-12-01 09:40:23 -08:00
83aa59b480 Documentation/op-guide: document TLS changes in 3.2
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-30 19:20:34 -08:00
b041ce5d51 Merge pull request #8946 from gyuho/cherry-pick
hack/patch: fix some typos in README, make cherrypick.sh executable
2017-11-30 11:35:15 -08:00
3167780cde hack/patch: fix some typos in README, make cherrypick.sh executable
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-30 11:21:38 -08:00
66a9508fdf Merge pull request #8945 from gyuho/logrus
glide: pin transitive dependency "sirupsen/logrus"
2017-11-30 10:19:15 -08:00
c232c85ba7 glide: pin transitive dependency "sirupsen/logrus"
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-30 10:03:04 -08:00
56a012f2ab Merge pull request #8841 from gyuho/test-test
clientv3/integration: add more tests on balancer switch, inflight range
2017-11-30 09:38:53 -08:00
faaac0f964 Merge pull request #8937 from gyuho/quay
Documentation/upgrades: gcr.io as primary, do not deprecate quay.io
2017-11-29 17:36:13 -08:00
7a1deaa12a Merge pull request #8939 from gyuho/server-stream-error-log
api/v3rpc: log grpc stream send/recv errors in server-side
2017-11-29 17:35:20 -08:00
6bd41f36ff api/v3rpc: log grpc stream send/recv errors in server-side
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-29 17:34:05 -08:00
08905ee594 Documentation/upgrades: gcr.io as primary, do not deprecate quay.io
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-29 11:03:44 -08:00
b21180d198 Merge pull request #8936 from gyuho/godoc-clientv3-errors
clientv3: update error handling godoc
2017-11-29 11:00:49 -08:00
92167e8773 clientv3: update error handling godoc
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-29 10:53:54 -08:00
4ad8bd9299 Merge pull request #8858 from gyuho/aaa
test: clean up fmt tests
2017-11-29 09:51:07 -08:00
dbd1787672 Merge pull request #8925 from jpbetz/patch-manager-table
Documentation: Add release manager table
2017-11-28 17:46:07 -08:00
614ef75c01 Merge pull request #8932 from gyuho/release-gcr
scripts/build-docker: build both gcr.io and quay.io images
2017-11-28 15:10:13 -08:00
aca39e2ae1 scripts/build-docker: build both gcr.io and quay.io images
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-28 15:02:09 -08:00
6e116542c2 Merge pull request #8928 from gyuho/timeout-config
embed: error on zero heartbeat-interval, election-timeout
2017-11-28 11:11:20 -08:00
878367ba4c Merge pull request #8930 from jpbetz/changelog-3.1.11
CHANGELOG: add v3.1.11, bug fixes
2017-11-28 11:08:44 -08:00
8cc9063ea6 CHANGELOG: add v3.1.11, bug fixes 2017-11-28 10:59:34 -08:00
c8277e1b02 etcdmain: test wrong heartbeat-interval, election-timeout in TestConfigFileElectionTimeout
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-28 09:53:35 -08:00
cffa130253 embed: error on zero heartbeat-interval, election-timeout
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-28 09:53:32 -08:00
7e876ecc90 Documentation: Add release manager table 2017-11-27 15:43:35 -08:00
a7cb307a18 clientv3/integration: add more tests on balancer switch, inflight range
Test all possible cases of server shutdown with inflight range requests.
Removed redundant tests in kv_test.go.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-27 15:05:12 -08:00
9717a1240c Merge pull request #8926 from gyuho/fix-test
clientv3/integration: move isServerCtxTimeout to server_shutdown_test.go
2017-11-27 15:03:43 -08:00
bd76ac85db clientv3/integration: move isServerCtxTimeout to server_shutdown_test.go
Tests with cluster_proxy tags were failing, since isServerCtxTimeout
was defined with "+build !cluster_proxy".

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-27 15:02:48 -08:00
96e32a408f Merge pull request #8896 from gyuho/error
clientv3/integration: handle server-side context timeouts from clock-drift
2017-11-27 14:34:22 -08:00
289653d914 Merge pull request #8920 from gyuho/fix-flag
pkg/flags: fix "SetFlagsFromEnv" error masking
2017-11-27 14:23:09 -08:00
a9105b5a8d clientv3: document context timeout error with server-side clock skew
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-27 14:06:42 -08:00
0d0e8e78f7 clientv3/integration: handle server-side context timeouts from clock-drift
Due to clock drifts in server-side, client context times out
first in server-side, while original client-side context is
not timed out yet.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-27 14:02:09 -08:00
bdff651428 Merge pull request #8922 from gyuho/corrupt-check
*: enable initial corrupt check in tests
2017-11-27 10:37:39 -08:00
a20b24be7b etcd-tester: enable initial corrupt check by default
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-27 09:41:53 -08:00
f228f6a002 e2e: enable initialCorruptCheck by default
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-27 09:39:22 -08:00
965d9806d5 pkg/flags: fix "SetFlagsFromEnv" error masking
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-27 06:41:43 -08:00
5fbb4590fd Merge pull request #8918 from xiang90/ic
integration: always enable initial corruption check
2017-11-27 00:11:35 -08:00
1c69cc5657 integration: always enable initial corruption check 2017-11-26 16:51:04 -08:00
d84d3f2f77 Merge pull request #8554 from gyuho/initial-hash-checking
*: check data corruption on boot
2017-11-23 09:57:26 -08:00
0e4e8ed3d1 embed: corrupt-check on restart member
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-22 21:20:19 -08:00
e0dfc4368f etcdserver: CheckInitialHashKV when "InitialCorruptCheck==true"
etcdserver: only compare hash values if any

It's possible that peer has higher revision than local node.
In such case, hashes will still be different on requested
revision, but peer's header revision is greater.

etcdserver: count mismatch only when compact revisions are same

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-22 21:20:14 -08:00
f739853ec6 Merge pull request #8564 from gyuho/upgrade-doc
Documentation/upgrades: add 3.3 changes
2017-11-22 16:20:40 -08:00
1f38f1fddb e2e: add corruption checking tests
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-22 15:52:09 -08:00
3db5ad8d57 embed,etcdmain: add "--experimental-initial-corrupt-check"
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-22 15:27:14 -08:00
c983f0ae98 Documentation: fix typo in upgrade 3.2 guide 2017-11-22 11:08:21 -08:00
321a9ca0a0 Documentation/upgrades: add 3.3 changes
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-21 10:01:25 -08:00
15bfc1b361 Merge pull request #8893 from dahefanteng/fix-typo
Documentation: change "key file" to "cert file"
2017-11-20 23:55:27 -08:00
8e4d1cb707 Merge pull request #8901 from mitake/auth-context
auth, etcdserver: follow the correct usage of context
2017-11-20 23:54:26 -08:00
f649132a5a auth, etcdserver: follow the correct usage of context
The keys of context shouldn't be string. They should be a struct of
their own type.

Fix https://github.com/coreos/etcd/issues/8826
2017-11-21 15:31:19 +09:00
f62cd1d66f Merge pull request #8897 from mkumatag/fix_gotip_fmt
Fix go fmt for gotip
2017-11-20 22:25:07 -08:00
e1b1ec8348 etcdmain: Fix go fmt for gotip 2017-11-21 11:37:09 +05:30
fb9e78ff3e Merge pull request #8898 from gyuho/z2
etcdserver,embed: clean up/reorganize client/peer/corrupt handlers
2017-11-20 16:14:02 -08:00
75ababa61f embed: split peer/client/metrics serve methods
Priliminary commit to start client server later.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-20 15:23:15 -08:00
08434d0665 etcdserver/corrupt: document data corrupt checking in checkHashKV
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-20 15:04:50 -08:00
1ce3a41e69 etcdserver/corrupt: add "getPeerHashKVs" method
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-20 15:04:45 -08:00
f6f0fb12e0 etcdserver/corrupt: set dial timeout for peer clientv3
Preliminary commit for initial hash checking.
Dial timeout when other nodes have not been booted.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-20 15:02:57 -08:00
a4c407ece4 Documentation: change "key file" to "cert file"
when refered "--trusted-ca-file",what we need provide should be a CA cert file,not the CA private key file.
2017-11-20 00:44:32 -05:00
3cff8dd6f8 Merge pull request #8894 from gyuho/a
vendor: upgrade grpc-gateway to v1.3.0, dustin/go-humanize
2017-11-17 15:27:51 -08:00
6a4a30f5d1 vendor: upgrade grpc-gateway to v1.3.0, dustin/go-humanize
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-17 14:02:13 -08:00
24b19ee222 CHANGELOG: fix typos in v3.2.10 release 2017-11-16 23:43:01 -08:00
23fb330df7 CHANGELOG: fix v3.2.10 release date 2017-11-16 13:23:18 -08:00
3766b04b38 Merge pull request #8891 from gyuho/bbb
vendor: coreos/bbolt v1.3.1-coreos.5
2017-11-16 11:34:17 -08:00
ba163efe2e vendor: coreos/bbolt v1.3.1-coreos.5
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-16 10:30:45 -08:00
cbe8c7eda7 Merge pull request #8880 from gyuho/v3beta-endpoint
*: replace grpc-gateway endpoint with /v3beta
2017-11-16 09:42:19 -08:00
7a55a4084d Merge pull request #8884 from gyuho/revert-srv-dns-patch
Revert "embed: fix HTTPs + DNS SRV discovery"
2017-11-15 14:30:08 -08:00
37b3108ce5 Documentation/op-guide: add security guide link to clustering.md
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-15 14:07:06 -08:00
9b772ba94c Documentation/op-guide: add notes for DNS SRV in security.md
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-15 14:07:06 -08:00
94355cb6a5 CHANGELOG: add SRV ServerName auth revert change
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-15 14:07:02 -08:00
fe7b094f63 Revert "embed: fix HTTPs + DNS SRV discovery"
This reverts commit f79d5aaca4.
2017-11-15 13:00:21 -08:00
6260df7404 Merge pull request #8878 from brancz/init-metrics
*: initialize gRPC server metrics with zero values
2017-11-15 10:20:41 -08:00
4a8c788dbf Merge pull request #8879 from brancz/adapt-rules
Adapt rules to use new gRPC metrics
2017-11-15 09:38:25 -08:00
092b270697 Documentation/op-guide: Fix link to Prometheus 2.0 alerting rules 2017-11-15 14:34:55 +01:00
79446ea677 Documentation/op-guide: Adapt alerting rules to new gRPC metrics 2017-11-15 14:33:52 +01:00
627cffd6f8 *: initialize gRPC server metrics with zero values 2017-11-15 11:21:29 +01:00
0f9f452722 e2e: test /v3alpha,beta in v3 curl tests
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-15 02:14:07 -08:00
c706c6e238 embed: mutate /v3alpha requests with /v3beta for backward compatibilities
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-15 02:14:04 -08:00
5fd419ff50 embed: replace v3alpha serve path with v3beta
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-15 01:55:49 -08:00
02be1ace59 e2e: replace v3alpha with v3beta in curl grpc-gateway tests
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-15 01:55:49 -08:00
980942fa44 Documentation/dev-guide: replace v3alpha with v3beta in grpc-gateway doc
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-15 01:55:44 -08:00
ab526e8814 *: regenerate proto, swagger specs
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-15 01:22:09 -08:00
ce6bb4f1c9 etcdserver: replace /v3alpha with /v3beta in proto definitions
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-15 01:19:53 -08:00
d01f3daf95 Merge pull request #8873 from gyuho/grpc-upgrade
vendor: upgrade grpc/grpc-go to v1.7.3
2017-11-14 16:00:59 -08:00
f0497de216 vendor: upgrade grpc/grpc-go to v1.7.3
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-14 13:56:28 -08:00
ec25a5c5b4 Merge pull request #8871 from gyuho/test-script-on-functional-tests
test: Clean agent directories on disk before functional test runs, no…
2017-11-14 13:28:35 -08:00
1bca2e969f test: Clean agent directories on disk before functional test runs, not after
This is primarily so CI tooling can capture the agent logs after the functional tester runs.
2017-11-14 13:09:52 -08:00
6f077bd74c Merge pull request #8866 from hubo1016/patch-1
Documentation/integrations.md: Add aioetcd3 to Python language bindings
2017-11-13 22:07:12 -08:00
6ba39450c3 Documentation/integrations.md: Add aioetcd3 to Python language bindings
aioetcd3 is a Python binding for etcdv3 API for asyncio.

#8866

Signed-off-by: hubo <hubo1016@126.com>
2017-11-14 13:55:35 +08:00
632ba72c6d Merge pull request #8868 from gyuho/bbb
Documentation/upgrades: add client upgrade check list for 3.2.10
2017-11-13 19:31:29 -08:00
eaf47ec053 Documentation/upgrades: add client upgrade check list for 3.2.10
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-13 13:35:21 -08:00
eb19ab14e2 Merge pull request #8656 from gyuho/readme
README: update badges
2017-11-13 11:00:35 -08:00
adeb1fb620 Merge pull request #8848 from brancz/prom-2.0-rules
Documentation/op-guide: Add rules for Prometheus 2.0
2017-11-13 08:44:32 -08:00
27519ffdb4 test: clean up fmt tests
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-12 14:19:53 -08:00
02ae7a3005 Merge pull request #8861 from gyuho/coverage
*: grpclog.SetLoggerV2 on clientv3.SetLogger, disable gRPC client logs
2017-11-11 22:01:05 -08:00
5a154e8e2b *: disable gRPC client logs in tests
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-11 20:56:00 -08:00
deb514989c etcdctl/ctlv3: disable grpc client logs when --debug is off
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-11 20:52:33 -08:00
977f33a5a6 clientv3: grpclog.SetLoggerV2 on clientv3.SetLogger
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-11 20:51:45 -08:00
a8fde603b1 Merge pull request #8751 from siddontang/siddontang/raft_learner
raft: add raft learner
2017-11-11 18:43:10 -08:00
43dfefe9e3 Merge pull request #8857 from gyuho/test
*: fix naked returns, integrate with CI
2017-11-10 19:12:26 -08:00
75110dd839 *: fix naked returns
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-10 18:46:15 -08:00
c6f2db2e92 raft: support learner 2017-11-11 10:38:21 +08:00
65a606e2e8 test: add naked return checks
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-10 17:55:55 -08:00
0b03d22b5b Dockerfile-test: add "alexkohler/nakedret"
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-10 17:54:55 -08:00
b64c1bfce6 Merge pull request #8840 from gyuho/health-balancer
*: refactor clientv3 balancer, upgrade gRPC to v1.7.2
2017-11-10 15:41:00 -08:00
c669ff9765 clientv3: retry mutable ops on "no connection available"
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-10 15:40:06 -08:00
93f12da1be vendor: upgrade grpc to v1.7.2
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-10 15:39:43 -08:00
123b869a0f clientv3/integration: match grpc.ErrClientConnClosing in TestKVNewAfterClose
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-10 15:39:35 -08:00
103efd922b clientv3/balancer: only notify healthy addresses
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-10 15:39:25 -08:00
012b013538 clientv3: combine "healthBalancer" and "simpleBalancer"
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-10 15:38:05 -08:00
64acd71c11 Merge pull request #8853 from gyuho/ttt
clientv3/integration: remove TestKVGetOneEndpointDown
2017-11-10 14:55:00 -08:00
52f4bc9061 clientv3/integration: remove TestKVGetOneEndpointDown
Already tested in other server shutdown tests.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-10 14:46:40 -08:00
dfe0f8c2bc Merge pull request #8839 from gyuho/test-balancer
clientv3/integration: test linearizable get with leader election, network partition
2017-11-10 13:55:11 -08:00
0dbcd7c1a7 Merge pull request #8849 from gyuho/promhttp
*: deprecate prometheus.Handler, upgrade Prometheus dependencies
2017-11-10 12:04:05 -08:00
6654ae4c2a Merge pull request #8851 from gyuho/doc-doc
*: highlight gRPC metrics change in v3.1
2017-11-10 11:45:50 -08:00
700c9a50c3 CHANGELOG: highlight metrics change in v3.1
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-10 11:00:51 -08:00
8d309bf34a Documentation/upgrades: highlight "go-grpc-prometheus" change
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-10 10:58:00 -08:00
00b15e38df words: whitelist prometheus
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-10 10:08:48 -08:00
993a0cf569 tools: update metrics to use promhttp
Update function-tester/etcd-tester/main.go to use promhttp.Handler() instead of prometheus.Handler()
2017-11-10 09:47:49 -08:00
527d03e0d2 etcdserver: update metrics to use promhttp
Update api/etcdhttp/metrics.go to use promhttp.Handler() instead of prometheus.Handler()

fixes #8729
2017-11-10 09:47:49 -08:00
973857107e clientv3: update metrics to use promhttp
Update clientv3/example_metrics_test.go and clientv3/integration/metrics_test.go to use promhttp.Handler() instead of prometheus.Handler()

fixes #8729
2017-11-10 09:47:49 -08:00
143de553e6 vendor: upgrade Prometheus dependencies
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-10 09:47:44 -08:00
7ccde4ac8a Merge pull request #8850 from gyuho/you
hack/patch: remove "you" in markdown doc
2017-11-10 09:39:43 -08:00
bb4637bffe hack/patch: remove "you" in markdown doc
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-10 08:59:51 -08:00
10a863aac2 Documentation/op-guide: Add rules for Prometheus 2.0 2017-11-10 14:58:13 +01:00
75c7e62dc7 Merge pull request #8805 from jpbetz/patch-manager-docs
release, documentation, tools: Expand patch management support to the previous two minor versions
2017-11-09 15:06:01 -08:00
3a0e24e6c5 release, documentation, tools: Expand patch management support to the previous two minor versions 2017-11-09 14:07:54 -08:00
05e5b3b62d Merge pull request #8845 from tamalsaha/gw13
*: upgrade grpc-gateway to v1.3
2017-11-08 22:21:51 -08:00
ec881b0507 scripts/genproto: upgrade protoc to 3.4
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-08 18:50:29 -08:00
7ba4ae01b8 vendor: upgrade grpc-gateway to v1.3
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-08 18:46:32 -08:00
c0c19465fc *: upgrade grpc-gateway to v1.3 2017-11-08 18:38:41 -08:00
24c718f7de Merge pull request #8844 from gyuho/ee
etcdmain: do not embed structs (fix go vet warnings)
2017-11-08 15:05:07 -08:00
672d4ae93f Merge pull request #8843 from gyuho/log
store: silence server logs in v2v3 store tests
2017-11-08 15:03:13 -08:00
370ff6b670 etcdmain: do not embed structs (fix go vet warnings)
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-08 14:20:52 -08:00
5cea18baf1 store: silence server logs in v2v3 store tests
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-08 13:22:00 -08:00
21178f5119 Merge pull request #8815 from zrss/fix-dbstatus-unexpected-write
etcdctl: fix snapshot status accidentally modified the db file
2017-11-08 11:47:06 -08:00
5ed5ee51f5 Merge pull request #8833 from gyuho/release-test
semaphore: manually pin last release version for release tests
2017-11-08 11:15:29 -08:00
efb0057513 Merge pull request #8835 from gyuho/log
*: disable grpc client log in tests by default
2017-11-08 10:23:53 -08:00
0ce02abf59 etcdctl: fix snapshot status accidentally modified the db file 2017-11-09 01:07:48 +08:00
706cf20339 clientv3/integration: test linearizable get with leader election, network partition
Test case that failed my balancer refactor https://github.com/coreos/etcd/pull/8834.
Current, kv network partition tests do not specifically test
isolated leader case.

This PR moves TestKVSwitchUnavailable to network_partition_test.go
and make it always isolate leader.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-07 19:51:24 -08:00
47728b8caf Merge pull request #8837 from gyuho/timed-out
test: fail when test times out
2017-11-07 16:42:26 -08:00
dd35fce66c test: fail when test times out
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-07 15:30:51 -08:00
f49f5c9094 *: disable grpc client log in tests by default
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-07 15:05:13 -08:00
1b9f96ebc1 semaphore: manually pin last release version for release tests
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-07 12:27:26 -08:00
d83820d143 Merge pull request #8824 from gyuho/convert-error-code-2
api/v3rpc: do not convert server context error to grpc/*status.statusError
2017-11-06 17:59:16 -08:00
f48fe8ecda api/v3rpc: do not convert server context error to grpc/*status.statusError
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-06 17:32:23 -08:00
9791429524 Merge pull request #8825 from gyuho/lock
auth: clean up mutex lock/unlocks
2017-11-06 13:39:47 -08:00
38942a2a51 auth: clean up mutex lock/unlocks
Only hold locks when needed.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-06 13:17:29 -08:00
1d01aaa395 Merge pull request #8823 from gyuho/pre-allocate
*: preallocate slice (instead of append)
2017-11-06 12:53:46 -08:00
568b856be8 auth: pre-allocate slices in store
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-06 09:16:15 -08:00
ba233e2f4d etcdserver: preallocate slice in apply
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-06 09:13:12 -08:00
21ba9a89a7 Merge pull request #8819 from WIZARD-CXY/fixgrafana
Documentation/op-guide: fix unit in grafana
2017-11-06 08:48:05 -08:00
0b72f651a1 Documentation/op-guide: fix unit in grafana 2017-11-06 13:52:05 +08:00
80d5e1cbb7 Merge pull request #8820 from gyuho/error-code
api/v3rpc: deprecate grpc.Errorf
2017-11-04 23:03:46 -07:00
5d98710b2e api/v3rpc: deprecate grpc.Errorf
It's been deprecated as of grpc/grpc-go v1.6.x.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-04 22:08:17 -07:00
de950a40e0 Merge pull request #8818 from gyuho/ttt
*: fail tests with egrep "(--- FAIL:|leak)"
2017-11-03 10:56:11 -07:00
e35d34ccea hack/scripts-dev: fail tests with "(--- FAIL:|leak)" in Makefile
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-03 10:15:24 -07:00
31912e35b3 semaphore.sh: fail tests with "(--- FAIL:|leak)"
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-03 10:15:19 -07:00
3f93d9ae00 test: fail tests with "--- FAIL:"
To differentiate from gRPC client log "TRANSIENT_FAILURE"

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-03 10:15:14 -07:00
41d37fcc51 Merge pull request #8816 from gyuho/gofmt
lease/leasehttp: use keyed fields in composite literals
2017-11-03 10:11:12 -07:00
0048df6faf lease/leasehttp: use keyed fields in composite literals
Was complaining leasepb.LeaseInternalRequest composite literal uses unkeyed fields

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-03 09:58:03 -07:00
ef475b2502 Merge pull request #8812 from gyuho/default
embed: NewConfig sets LogOutput to "default"
2017-11-02 16:31:33 -07:00
adc3cea8cf etcdmain: use embed.DefaultLogOutput for flags
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-02 14:43:06 -07:00
cdc71ae38e embed: NewConfig sets LogOutput to "default"
Otherwise, embedded etcd will panic in SetupLogging

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-02 14:41:32 -07:00
b65435b86d Merge pull request #8811 from gyuho/fmt
store/stats.go: fix gofmt warnings
2017-11-02 14:19:50 -07:00
f6ca686882 store/stats.go: fix gofmt warnings
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-02 14:18:00 -07:00
ef0e8e17d9 Merge pull request #8810 from gyuho/grpclog-embed
*: move logging to embed, disable grpc server log by default
2017-11-02 14:10:11 -07:00
6127f785a4 embed: disable grpc server logging by default
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-02 13:19:49 -07:00
1fa295e3ba etcdmain: move SetupLogging to embed
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-02 13:19:49 -07:00
4b1e09f2b4 embed: move SetupLogging, LogOutput from etcdmain
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-02 13:19:44 -07:00
f8bec0f631 Merge pull request #8764 from gyuho/hack
hack: add dev scripts
2017-11-02 08:35:43 -07:00
ff05596ba7 hack/scripts: add Makefile for etcd development
Adding some frequently used commands.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-02 06:59:02 -07:00
70f64bb1b6 Dockerfile-test: make Go version flexible, move other test Dockerfiles
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-02 06:59:02 -07:00
736b9f0be3 gitignore: ignore hidden Dockerfiles for docker build
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-11-02 06:58:58 -07:00
3ac54be402 Merge pull request #8801 from gyuho/windows
vendor: upgrade coreos/bbolt to v1.3.1-coreos.3
2017-10-31 20:09:07 -07:00
67722fc3ff vendor: upgrade coreos/bbolt to v1.3.1-coreos.3
And pin some other dependencies.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-31 19:02:29 -07:00
9e509eb77f Merge pull request #8799 from gyuho/vvv
semaphore,travis: use Go 1.9.2
2017-10-31 13:34:13 -07:00
791370bacf Merge pull request #8796 from gyuho/aaa
clientv3/integration: match more errors in put retries
2017-10-31 13:33:56 -07:00
0ca8f420d4 clientv3/integration: match more errors in put retries
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-31 13:31:38 -07:00
ba749166d5 semaphore,travis: use Go 1.9.2
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-31 13:27:16 -07:00
4e2ef67f2b Merge pull request #8795 from gyuho/balancer-timeout
clientv3/integration: increase balancer switch timeout for TestKVGetResetLoneEndpoint
2017-10-31 13:09:28 -07:00
0f86f0e0e6 words: whitelist more
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-31 11:05:26 -07:00
2c13231e7b clientv3/integration: increase balancer switch timeout for TestKVGetResetLoneEndpoint
Since 3-second is the minimum time to keep an endpoint in unhealthy,
it is possible that endpoint switch happens right after context timeout.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-31 10:48:15 -07:00
63d0ac0fe6 Merge pull request #8790 from gyuho/blackhole-immutable
clientv3/integration: add blackhole tests for range RPCs
2017-10-30 19:58:42 -07:00
8d23e1c870 clientv3/integration: add blackhole tests for range RPCs
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-30 19:18:53 -07:00
9731910754 Merge pull request #8792 from gyuho/blackhole-watch
clientv3/integration: move to TestBalancerUnderBlackholeKeepAliveWatch
2017-10-30 17:40:38 -07:00
a37dd0055f clientv3/integration: move to TestBalancerUnderBlackholeKeepAliveWatch
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-30 17:19:48 -07:00
9ca733255a Merge pull request #8789 from gyuho/blackhole-tests
clientv3/integration: add blackhole tests on mutable operations
2017-10-30 14:14:02 -07:00
8d5c284b6c clientv3/integration: add blackhole tests on mutable operations
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-30 13:32:59 -07:00
299c704295 Merge pull request #8785 from gyuho/ttt
clientv3/integration: finish isolated node test cases
2017-10-30 12:38:02 -07:00
bea930f44d clientv3/integration: finish isolated node test cases
1. one with retry
2. one without retry (range request with longer timeouts)

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-30 11:17:43 -07:00
2200450022 Merge pull request #8783 from gyuho/election-timeout
integration: expose ElectionTimeout method
2017-10-30 10:47:38 -07:00
a41f3b64aa integration: expose ElectionTimeout, multiply ticks to timeout
To be consistent with etcdserver

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-30 09:22:40 -07:00
87ad10c155 Merge pull request #8681 from mitake/binsearch-root-role
auth: use binary search for checking root permission
2017-10-27 15:09:55 -07:00
ca1e6a74e0 Merge pull request #8782 from gyuho/rename
clientv3/integration: rename to 'mustWaitPinReady'
2017-10-27 15:07:31 -07:00
4eb5a70126 Merge pull request #8784 from gyuho/ttt
clientv3/integration: remove client keepalive in network partition tests
2017-10-27 15:01:03 -07:00
5d169b866f clientv3/integration: rename to 'mustWaitPinReady'
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-27 15:00:31 -07:00
d75a6a39f5 Merge pull request #8775 from marcovc/master
etcdctl/v3: add lease keep-alive --once flag
2017-10-27 14:58:59 -07:00
03ce2fa037 clientv3/integration: remove client keepalive in network partition tests
Those tests are about balancer endpoint switch, not about keepalive pings.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-27 14:47:37 -07:00
2cea13ba68 Merge pull request #8779 from gyuho/shutdown-test
clientv3/integration: add TestBalancerUnderServerShutdownImmutable
2017-10-27 12:23:22 -07:00
732c40531b Merge pull request #8762 from gyuho/partition-test
clientv3/integration: add TestBalancerUnderNetworkPartitionWatch
2017-10-27 12:22:32 -07:00
0fcafcb828 Merge pull request #8712 from harryge00/benchmark-prompt-password
benchmark ask for password is not supplied
2017-10-27 11:46:46 -07:00
62821158aa Merge pull request #8767 from xiang90/f
clientv3/integration: fix a todo in testNetworkPartitionBalancer
2017-10-27 11:26:40 -07:00
9d95cfb105 clientv3/integration: add TestBalancerUnderServerShutdownImmutable
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-27 10:55:12 -07:00
aaf4a70cd0 etcdctl v3: e2e test for the --once option to the lease keep-alive command
Follow up #8775
2017-10-27 08:48:22 +01:00
1c3567da90 tools/benchmark: ask for password when it is not supplied 2017-10-27 14:30:43 +08:00
a33a3b2872 Merge pull request #8773 from jpbetz/fix-lease-grant-int-test
test: Deflake TestV3LeasePrmote integration test
2017-10-26 21:01:23 -07:00
e980bde82d clientv3/integration: add TestBalancerUnderNetworkPartitionWatch
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-26 18:17:00 -07:00
a9996f8768 test: Deflake TestV3LeasePrmote integration test 2017-10-26 16:58:37 -07:00
0160cd76e5 Merge pull request #8772 from gyuho/shutdown
clientv3/integration: add TestBalancerUnderServerShutdownMutable*
2017-10-26 16:58:33 -07:00
0bfc6a0d92 clientv3/integration: add TestBalancerUnderServerShutdownMutable*
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-26 16:42:33 -07:00
cb188d0b26 etcdctl v3: adds the --once option to the lease keep-alive command
Fixes: #8719
2017-10-27 00:27:11 +01:00
f46c063285 Merge pull request #8774 from gyuho/sync
clientv3/integration: add waitPinReady
2017-10-26 15:13:46 -07:00
6a8d6b6ad9 clientv3/integration: use waitPinReady in blackhole test
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-26 15:12:27 -07:00
af53f54042 clientv3/integration: add waitPinReady
RPC should be sent to trigger 'readyWait' on new pin address.
Otherwise, endpoints other than ep[0] may be pinned.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-26 15:11:10 -07:00
9b26bde147 Merge pull request #8769 from xiang90/bk
clientv3/integration: add put blackhole test
2017-10-26 15:10:35 -07:00
10c971db70 clientv3/integration: add put blackhole test 2017-10-26 14:09:51 -07:00
7d7e9b6e43 clientv3/integration: fix a todo in testNetworkPartitionBalancer 2017-10-25 22:54:44 -07:00
20f2914e13 Merge pull request #8763 from gyuho/temp
clientv3/integration: Get with context timeout
2017-10-25 17:52:00 -07:00
8fa35216b0 clientv3/integration: Get with context timeout
Address https://github.com/coreos/etcd/pull/8762#discussion_r147019068.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-25 17:43:29 -07:00
995d79a0fc Merge pull request #8758 from gyuho/failure-test
clientv3/integration: add TestBalancerUnderServerShutdownWatch
2017-10-25 17:03:33 -07:00
cea7387b73 clientv3/integration: add TestBalancerUnderServerShutdownWatch
Current Watch integration tests haven't covered the balancer
switch behavior under server failures.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-25 16:13:46 -07:00
c50cfbeaf6 Merge pull request #8759 from gyuho/mmm
integration: use variadic parameters for *Partition
2017-10-25 15:31:33 -07:00
3462d8ba70 Merge pull request #8760 from gyuho/name
clientv3/integration: rename partition tests
2017-10-25 15:00:11 -07:00
6f8c476599 clientv3/integration: rename partition tests
To be consistent with TestBalancerUnderShutdown*

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-25 14:57:16 -07:00
b6f770fc24 integration: use variadic parameters for *Partition
'member' type is not exported.
In network partition tests, we want do

InjectPartition(t, clus.Members[lead], clus.Members[lead+1])

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-25 14:55:03 -07:00
da0a387aac auth: use binary search for checking root permission
authpb.User.Roles is sorted so we don't need a linear search for
checking the user has a root role or not.
2017-10-25 13:16:37 +09:00
fff1fb2ed7 Merge pull request #8756 from gyuho/tests
clientv3/integration: do not create v3 clients when not used
2017-10-24 17:38:12 -07:00
ff2ed93b5c clientv3/integration: do not create v3 clients when not used
Add 'SkipCreatingClients' field to skip creating clients if not used.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-24 16:59:41 -07:00
f42534cb21 Merge pull request #8755 from coreos/philips-patch-1
Documentation: add OpenStack to integrations.md
2017-10-24 15:35:39 -07:00
5032feaf22 Documentation: add OpenStack to integrations.md 2017-10-24 15:35:00 -07:00
d095a5c48b Merge pull request #8752 from xiang90/fix_keepalive
clientv3/integration: fix keepalive by waiting for unhealthy
2017-10-24 10:12:13 -07:00
6277828f13 Merge pull request #8743 from dmyerscough/fix-example-snippet
Documentation/op-guide: Fix missing docker volume commands and specify the initial DATA_DIR
2017-10-24 07:03:26 -07:00
8d1f9c654a clientv3/integration: fix keepalive by waiting for unhealthy 2017-10-24 00:56:09 -07:00
abc606f139 Documentation/op-guide: Fix missing docker volume commands and specifying the initial DATA_DIR usage 2017-10-23 22:40:43 -07:00
d16de1b914 Merge pull request #8742 from xiang90/debug_ordering
clientv3: fix balancer unresponsiveness
2017-10-23 21:57:33 -07:00
109f52e3d6 clientv3: fix balancer unresponsiveness
When no address is pined, and balancer ignores the addr Up due to
its current unhealthy state, balancer will be unresponsive forever.

This PR fixes it by doing a full reset when there is no pined addr,
thus re-trigger the Up call.
2017-10-23 21:19:21 -07:00
fdaa04e95f Merge pull request #8749 from gyuho/docker-test
*: fix test docker images, switch travis to docker
2017-10-23 21:12:53 -07:00
2a49b04f09 clientv3/integration: fix typos
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-23 20:13:53 -07:00
0d76ede274 words: whitelist more
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-23 20:13:50 -07:00
d5fc37072c travis: use docker
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-23 20:05:57 -07:00
cd4ca4065e Dockerfile-test: use ubuntu 16.10 as base image
Debian base image from golang-stretch was breaking
shellcheck tests.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-23 19:28:00 -07:00
1724cfa937 Merge pull request #8748 from gyuho/mmm
semaphore: add test scripts
2017-10-23 16:41:24 -07:00
249a2c30d2 Makefile: delete
moving to somewhere else
2017-10-23 16:35:04 -07:00
6337e4a1ec semaphore: add test scripts 2017-10-23 16:35:00 -07:00
319658aef3 Merge pull request #8747 from gyuho/makefile
Makefile: clean up all redundant targets
2017-10-23 13:38:41 -07:00
997469a8cf test: add 'VERBOSE' flag to enable client debugs 2017-10-23 13:13:28 -07:00
2b5733d742 Makefile: remove redundant commands 2017-10-23 13:13:11 -07:00
fa7c8f3f83 gitignore: add covdir 2017-10-23 10:34:30 -07:00
149ee61e02 Dockerfile-test: add codecov for coverage tests 2017-10-23 10:29:08 -07:00
b699c7cff7 Merge pull request #8737 from xiang90/fix_TestWatchKeepAlive
clientv3/integration: shorten keepalive timeout
2017-10-22 21:21:22 -07:00
97f0b28bdb Merge pull request #8738 from gyuho/ccc
clientv3: fix balancer notify, stale endpoint handling, retry
2017-10-22 21:20:44 -07:00
2ae10a8184 Merge pull request #8741 from gyuho/ppp
clientv3/integration: match ErrTimeout in testNetworkPartitionBalancer
2017-10-22 19:16:55 -07:00
f65575073a clientv3/integration: match ErrTimeout in testNetworkPartitionBalancer
For put, etcd can return timeout errors from network partitions.
2017-10-22 18:44:35 -07:00
5943229921 clientv3: wait for current pin endpoint down on notify 2017-10-22 18:02:58 -07:00
3899f9e3c5 clientv3/integration: shorten keepalive timeout 2017-10-22 18:02:15 -07:00
59af91fc69 clientv3: use hostPortError in down function
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-22 18:01:31 -07:00
63ab5addfa clientv3: do not mark stale endpoints as unhealthy 2017-10-22 17:59:26 -07:00
725df70664 clientv3: only stop if EtcdError code is not Unavailable, retry with more error codes
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-22 17:54:14 -07:00
5eef654c3c Merge pull request #8734 from xiang90/testing_log
clientv3: disable server logging for client testing
2017-10-22 16:50:21 -07:00
6f0771d2f6 clientv3: disable server logging for client testing 2017-10-22 16:32:42 -07:00
0c5ca488c1 Merge pull request #8736 from xiang90/disable_retry
clientv3/integration: skip retry test on txn read
2017-10-22 16:15:36 -07:00
06e591d526 clientv3/integration: skip retry test on txn read 2017-10-22 16:14:39 -07:00
ebc09b1149 Merge pull request #8727 from CDKGlobal/fix/close-restore-backup-backend-master
etcdctl: close snapshot backend to close open file on member/snap/db
2017-10-21 10:51:33 -07:00
785a5a11ed Merge pull request #8728 from gyuho/eee
clientv3: remove balancer interface
2017-10-20 16:43:32 -07:00
439c97d465 clientv3: remove balancer interface
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-20 16:31:02 -07:00
7ffcca5946 etcdctl: close snapshot backend to close open file on member/snap/db 2017-10-20 15:25:21 -07:00
6c35754481 Merge pull request #8725 from gyuho/condition
v3rpc/rpctypes: use codes.FailedPrecondition for ErrGRPCNotLeader
2017-10-20 15:06:57 -07:00
2feb8ba545 v3rpc/rpctypes: use codes.FailedPrecondition for ErrGRPCNotLeader
Changes ErrGRPCNotLeader error code to FailedPrecondition,
to disable retry with unavailable.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-20 14:28:17 -07:00
f83ac25412 Merge pull request #8721 from andrewmeissner/feature/update-codecgen
client/v2: regenerate with latest ugorji/go/codec
2017-10-20 09:07:59 -07:00
81ca10f991 client/keys.generated.go: remove ineffassign yynn2 = 0
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-20 08:52:48 -07:00
1b2a62d9d0 client/keys.generated.go: remove redundant and: x.Expiration != nil
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-20 08:47:01 -07:00
cd859cfaa3 scripts: update
ran the updatedep.sh
2017-10-20 09:39:37 -06:00
12a6efb74b update: client
Updating the codec required codecgen to be reran on the client/keys.go file.  This is the result of that run.
2017-10-20 09:23:23 -06:00
b896e985b6 glide: update github.com/ugorji/go/codec
Updating github.com/ugorji/go/codec to the latest commit/version
2017-10-20 09:22:27 -06:00
40b6fcd761 Merge pull request #8717 from gyuho/retry-cleanup
clientv3: clean up retry wrapper, remove all FailFast=false
2017-10-19 16:08:59 -07:00
54ef60d033 clientv3: remove redundant retries in Auth, set FailFast=true
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-19 16:03:12 -07:00
1fa60c9882 clientv3: add TODO for watch retry
Later we can do:

```diff
+// RetryWatchClient implements a WatchClient.
+func RetryWatchClient(c *Client) pb.WatchClient {
+	readRetry := c.newRetryWrapper(isReadStopError)
+	wc := pb.NewWatchClient(c.conn)
+	return &retryWatchClient{wc, readRetry}
+}
+
+type retryWatchClient struct {
+	pb.WatchClient
+	readRetry retryRPCFunc
+}
+
+func (rwc *retryWatchClient) Watch(ctx context.Context, opts ...grpc.CallOption) (stream pb.Watch_WatchClient, err error) {
+	err = rwc.readRetry(ctx, func(rctx context.Context) error {
+		stream, err = rwc.WatchClient.Watch(rctx, opts...)
+		return err
+	})
+	return stream, err
+}

-	return NewWatchFromWatchClient(pb.NewWatchClient(c.conn))
+	return NewWatchFromWatchClient(RetryWatchClient(c))
```

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-19 16:02:01 -07:00
141170c1d4 clientv3: remove redundant retries in Maintenance, set FailFast=true
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-19 16:01:50 -07:00
c09a89d834 clientv3: remove redundant retries in Cluster, set FailFast=true
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-19 16:00:45 -07:00
fecd26f141 clientv3: rename to isRepeatableStopError, isNonRepeatableStopError
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-19 15:58:12 -07:00
b46ab2c36e clientv3: remove redundant retries in KV, set FailFast=true
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-19 15:57:10 -07:00
ad7882590c Merge pull request #8718 from gyuho/qqq
clientv3: remove redundant retries in Lease, set FailFast=true
2017-10-19 15:04:46 -07:00
f95f865060 clientv3: unexport pb.LeaseClient in lease client
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-19 15:02:19 -07:00
87fe8c12ae clientv3: rename to repeatableRetry in lease client
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-19 14:58:54 -07:00
29aa4ce2a1 clientv3: remove redundant retries in Lease, set FailFast=true
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-19 14:53:01 -07:00
a2c61cf04f Merge pull request #8716 from gyuho/ready-wait
clientv3: separate readyWait for ConnectNotify
2017-10-19 13:10:17 -07:00
2540859ee7 clientv3: separate readyWait for ConnectNotify
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-19 13:07:22 -07:00
c945b7b44a Merge pull request #8714 from gyuho/aaa
clientv3: handle stale endpoints, clean up logging
2017-10-19 12:35:30 -07:00
1549403dd2 clientv3: clean up logging, clarify var/field names
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-19 12:33:25 -07:00
ad24700252 clientv3: handle stale endpoint in health balancer
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-19 12:02:31 -07:00
2ee9f0f95b grpc_naming.md: improve docs invoke grpc naming by balance 2017-10-18 19:15:52 +08:00
a8f9de2abf Merge pull request #8704 from gyuho/typo
*: fix typo in Makefile, add *.log, release directory to gitignore
2017-10-17 09:06:34 -07:00
5790ffde7c gitignore: ignore *.log, release directory
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-17 09:05:10 -07:00
39fe293649 Makefile: fix typo in 'docker-test-proxy'
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-17 09:05:01 -07:00
b989e1992f Merge pull request #8695 from jpbetz/fix-disabled-simple-token-assign
auth: Fix simpleToken to respect disabled state for assign
2017-10-14 15:49:36 +09:00
d3c9643761 auth: Fix simpleToken to respect disabled state for assign 2017-10-13 21:44:07 -07:00
d392debf82 Merge pull request #8693 from gyuho/makefile
Makefile: fix 'test', add 'test-all' commands with docker
2017-10-13 12:42:07 -07:00
f0a78eb516 Makefile: fix 'test', add 'test-all' commands with docker
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-13 12:14:26 -07:00
764a0f79b2 Merge pull request #8683 from gyuho/ctl
etcdctl/ctlv3: inherit/update flags only once in 'check' command
2017-10-11 10:51:40 -07:00
e80b2474fa etcdctl/ctlv3: inherit/update flags only once in 'check' command
When creating multiple clients, 'mustClientFromCmd' overwrites
inherited flags with environment variables, so later clients
were printing warnings on duplicate key updates.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-11 10:37:15 -07:00
0ef0abf9bf Merge pull request #8676 from gyuho/aaa
clientv3: fix typo in 'testNetworkPartitionBalancer'
2017-10-10 19:17:32 -07:00
7f2b6a19d6 clientv3: fix typo in 'testNetworkPartitionBalancer'
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-10 16:07:03 -07:00
bc03ce9cab Merge pull request #8674 from gyuho/set-endpoints
clientv3: reset unhealthy on updateAddrs
2017-10-10 13:29:01 -07:00
500c2499f4 clientv3: reset unhealthy on updateAddrs
Otherwise, 'mayPin' incorrectly decides if an address
should be pinned or not.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-10 12:28:57 -07:00
8329963d69 Merge pull request #8669 from gyuho/balancer
clientv3/balancer: handle network partition in health check
2017-10-09 16:54:31 -07:00
e9e17e3fe5 clientv3: pin any endpoint when all unhealthy
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-09 16:02:18 -07:00
826de3c07a words: whitelist more words
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-09 14:54:53 -07:00
8224c748c9 clientv3/integration: add balancer network partition tests
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-09 14:54:47 -07:00
fbed568b6a clientv3/balancer: mark partitioned member as unhealthy
Previous behavior is when server returns errors, retry
wrapper does not do anything, while passively expecting
balancer to gray-list the isolated endpoint. This is
problematic when multiple endpoints are passed, and
network partition happens.

This patch adds 'endpointError' method to 'balancer' interface
to actively(possibly even before health-check API gets called)
handle RPC errors and gray-list endpoints for the time being,
thus speeding up the endpoint switch.

This is safe in a single-endpoint case, because balancer will
retry no matter what in such case.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-09 13:40:03 -07:00
1704443c6d clientv3: only health-check when timeout elapses since last failure
Otherwise network-partitioned member with active health-check
server would not be gray-listed, making health-balancer stuck
with isolated endpoint.

Also clarifies some log messages.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-09 13:40:03 -07:00
e47be1f325 Merge pull request #8672 from gyuho/require-leader
etcdctl/ctlv3: enable 'require-leader' for 'watch' command
2017-10-09 13:38:52 -07:00
d44f7d5f67 etcdctl/ctlv3: enable 'require-leader' for 'watch' command
To help with network partition cases.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-09 13:19:30 -07:00
ed92420950 Merge pull request #8666 from lorneli/ordering
clientv3/ordering: compare and update prevRev atomically
2017-10-09 11:14:40 -07:00
09a38a7953 Merge pull request #8671 from gyuho/ddd
Dockerfile-test: add 'ineffassign' to image
2017-10-09 10:38:45 -07:00
2bbd26e8e0 README: update badges
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-09 09:48:23 -07:00
6571829f16 Merge pull request #8663 from YuleiXiao/add_keepalive_for_ctlv3
etcdctl/v3: add keep alive time/timeout
2017-10-09 09:45:59 -07:00
66f2a65f6b Dockerfile-test: add 'ineffassign' to image
Was missing for 'fmt' tests.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-09 09:36:30 -07:00
71197ab2a5 Merge pull request #8670 from gyuho/rrr
README: update 'goreman' guide with 'grpc-proxy'
2017-10-09 09:35:47 -07:00
90c3f91f29 README: update 'goreman' guide with 'grpc-proxy'
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-09 09:28:22 -07:00
5096b4ed5d clientv3/ordering: compare and update prevRev atomically
Several goroutines may call setPrevRev concurrently with different
revisions, all higher than prevRev. Previously all of these goroutines
could set prevRev, so prevRev may be replaced by older one.

If response's revision equals to prevRev, there's no need to call
setPrevRev.
2017-10-09 20:06:19 +08:00
04940efcc2 etcdctl: add keep alive time/timeout in etcdctl
client can switch from fault node to normal when keep alive is timeout

Fixes #7941
2017-10-09 09:51:43 +08:00
a68a3dc79e Merge pull request #8661 from jpbetz/docker-dns-srv-fix
Dockerfile: Improve file permissions for docker build images using bind9
2017-10-07 11:17:57 -07:00
abc81d03a7 Dockerfile: Improve file permissions for docker build images using bind9
/etc/init.d/bind9 is run as the 'bind' user. This fixes file permissions
for the configuration files added by the Dockerfile to match.
2017-10-06 23:34:39 -07:00
b766a26059 Merge pull request #8257 from yudai/websocket_streams
embed: support websocket for bi-directional streams
2017-10-06 21:33:55 -07:00
e8e3467455 Merge pull request #8659 from gyuho/pinned
clientv3: add pinned() method to 'balancer'
2017-10-06 16:03:14 -07:00
bed5f388a8 clientv3: add pinned() method to 'balancer'
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-06 15:28:21 -07:00
0cdf5b2d58 vendor: add github.com/tmc/grpc-websocket-proxy
Updating golang.org/x/net as well so that a new dependency
github.com/sirupsen/logrus can be compiled on Windows environments.
2017-10-06 15:14:01 -07:00
077b361bfc Merge pull request #8658 from gyuho/etcdhttp-godoc
etcdserver/api/etcdhttp: document package in doc.go
2017-10-06 10:51:08 -07:00
1109c6c321 etcdserver/api/etcdhttp: document package in doc.go
It was missing from godoc.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-06 10:47:47 -07:00
dcaa0cddfc Merge pull request #8657 from gyuho/debug-line
clientv3: add debugging lines to 'retry' paths
2017-10-06 10:38:44 -07:00
1c6fbcd3d0 clientv3: add debugging lines to 'retry' paths
Helpful for debugging client balancer.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-06 10:13:25 -07:00
d2b3e578e7 Merge pull request #8653 from gyuho/changelog
CHANGELOG: add v3.2.9, minor updates
2017-10-06 09:00:49 -07:00
39912e7018 Merge pull request #8655 from gyuho/makefile
Makefile: suffix test log files
2017-10-06 08:52:11 -07:00
d9e8d4665c Makefile: suffix test log files
In preparation of running all tests inside container.
Currently, we run Jenkins in shared environment.
This is not good. Need manual Go runtime updates,
cannot run two different branches, port conflicts,
out of disk errors, etc.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-06 08:36:32 -07:00
37eabd770e embed: support websocket for bi-directional streams 2017-10-05 16:08:18 -07:00
c58ba620dd Merge pull request #8654 from gyuho/update
e2e/docker-dns-srv: test with TLS
2017-10-05 16:02:23 -07:00
db0ea5d44b Merge pull request #8651 from xiang90/https_srv
embed: fix HTTPs + DNS SRV discovery
2017-10-05 15:49:42 -07:00
cab94ac128 CHANGELOG: add v3.2.9, minor updates
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-05 15:42:28 -07:00
f79d5aaca4 embed: fix HTTPs + DNS SRV discovery 2017-10-05 15:21:45 -07:00
5d3a5912eb e2e/docker-dns-srv: enable peer, client TLS
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-05 15:15:02 -07:00
d57159f79a e2e/docker-dns-srv: use 'etcd.local' as SRV, clean up
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-05 22:05:33 +00:00
e7e24dab64 e2e/docker-dns: enable client-cert-auth in /run.sh
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-05 22:05:33 +00:00
09f02e5507 fixtures: add 'localhost' to wildcard cert for local cluster
Otherwise, local cluster tests fail.
2017-10-05 22:05:20 +00:00
867e3da0c4 Merge pull request #8652 from gyuho/proxy-tests-Makefile
Makefile: add 'test-proxy', 'test-coverage'
2017-10-05 11:38:02 -07:00
b0dc639807 Makefile: add 'test-proxy', 'test-coverage'
To dockerize all test runs in Jenkins.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-05 10:52:22 -07:00
70aa30f281 e2e/docker-dns-srv: upgrade Go version to 1.9.1
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-05 10:40:29 -07:00
8b75689c05 Merge pull request #8648 from gyuho/mu
mvcc: move 'keyi' define before holding locks
2017-10-05 10:28:44 -07:00
9154b31bf3 mvcc: move 'keyi' define before holding locks
To make it consistent with other code paths.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-05 10:06:28 -07:00
75a51f77f3 Merge pull request #8628 from gyuho/makefile
Makefile: initial commit
2017-10-05 09:58:49 -07:00
b3ff3982b8 Merge pull request #8650 from gyuho/travis
travis: specify Go minor versions
2017-10-05 09:57:57 -07:00
2c93dbf0a8 travis: specify Go minor versions
1.9.x doesn't work with travis Go 'gimme'.
https://travis-ci.org/coreos/etcd/jobs/283789582#L616-L629

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-05 09:54:52 -07:00
ded97c874b Dockerfile-test: upgrade Go version to 1.9.1
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-05 09:48:09 -07:00
f5b1da6a20 Makefile: add 'docker-dns-srv-*'
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-05 09:48:06 -07:00
db1be7ebc0 e2e/docker-dns: clean up Procfile.tls
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-05 09:47:37 -07:00
85bbd0cead e2e/docker-dns-srv: initial commit
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-05 09:47:37 -07:00
23a302364c Makefile: initial commit
Initial commit to run DNS/SRV tests.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-05 09:47:33 -07:00
b401659fbb Merge pull request #8649 from gyuho/crypto
vendor: update 'golang.org/x/crypto'
2017-10-05 09:45:20 -07:00
0e6e2f5ec5 vendor: update 'golang.org/x/crypto'
To include 6c586e17d9.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-05 07:35:11 -07:00
999f329c87 Merge pull request #8634 from gyuho/config
clientv3/yaml: add 'TrustedCAfile' field to replace 'CAfile'
2017-10-04 14:01:40 -07:00
1f2197b1f8 pkg/transport: add TODO to deprecate 'CAFile' field in v4
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-04 14:01:01 -07:00
05f96e8770 clientv3/yaml: add 'TrustedCAfile' field to replace 'CAfile'
To be consistent with etcdmain.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-04 14:00:54 -07:00
58e825c636 Merge pull request #8644 from gyuho/changelog
CHANGELOG: convert from plain text 'news'
2017-10-04 12:28:39 -07:00
2b09a554a2 CHANGELOG: convert from plain text 'news'
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-04 11:48:31 -07:00
863dfd1f0e Merge pull request #8616 from mitake/peer-cn-auth
RFC: etcdmain, pkg: CN based auth for inter peer connection
2017-10-04 10:00:53 -07:00
78c57418e0 Merge pull request #8643 from gyuho/ordering
clientv3/ordering: add missing 'errOrderViolation' error check
2017-10-03 18:39:28 -07:00
b2f5393b64 clientv3/ordering: add missing 'errOrderViolation' error check
Fix https://github.com/coreos/etcd/issues/8641.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-03 18:04:36 -07:00
7fb5b90bed Merge pull request #8642 from gyuho/mu
clientv3/ordering: acquire setPrevRev mutex only when needed
2017-10-03 15:56:15 -07:00
69031e3a6d clientv3/ordering: acquire setPrevRev mutex only when needed
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-03 15:06:37 -07:00
e44ce19c1f Merge pull request #8639 from gyuho/ineffassign
test: add 'ineffassign'
2017-10-03 10:30:55 -07:00
6555262cae Merge pull request #8640 from gyuho/proc
Procfile: use grpc-proxy instead of v2 proxy
2017-10-03 10:28:52 -07:00
207c90c5e7 travis: install 'ineffassign'
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-03 10:14:37 -07:00
0199bdc266 *: fix 'ineffassign' issues
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-03 10:14:33 -07:00
182d071fd0 Documentation/v2: add Procfile.v2 for proxy
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-03 09:22:31 -07:00
01e83a4334 Procfile: use grpc-proxy instead of v2 proxy
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-03 09:18:56 -07:00
72fbe0576d test: run ineffassign in fmt pass
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-03 02:14:02 -07:00
46223a2202 Merge pull request #8638 from gyuho/typo
Documentation/op-guide: fix typo in configuration.md
2017-10-02 16:47:22 -07:00
530d421f61 Documentation/op-guide: fix typo in configuration.md
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-02 16:35:26 -07:00
8b7fc3e28f Merge pull request #8637 from gyuho/health-log
clientv3: add more health balancer debugging logs
2017-10-02 15:53:45 -07:00
c6e7d3ab7d Merge pull request #8635 from gyuho/options
Documentation/op-guide: add missing flags to configuration.md
2017-10-02 15:42:30 -07:00
b186265003 Merge pull request #8636 from gyuho/monitoring
Documentation/op-guide: add Grafana dashboard link
2017-10-02 15:40:50 -07:00
3f596db104 clientv3: add more health balancer debugging logs
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-02 15:38:36 -07:00
3a566fd3ad Merge pull request #8612 from lorneli/clientv3_integration
clientv3/integration: test leasing txn invalidates deleted cache
2017-10-02 12:29:35 -07:00
245d03f129 Documentation/op-guide: add Grafana dashboard link
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-02 12:24:05 -07:00
834add042e Documentation/op-guide: add missing flags to configuration.md
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-10-02 09:49:43 -07:00
5f7ce4f7e1 e2e: add a test case for --peer-cert-allowed-cn 2017-10-02 15:59:17 +09:00
1d28a7a69b integration/fixtures: add cert and key of different CN for testing purpose 2017-10-02 15:59:17 +09:00
70018e9207 etcdmain, pkg: CN based auth for inter peer connection
This commit adds an authentication mechanism to inter peer connection
(rafthttp). If the cert based peer auth is enabled and a new option
`--peer-cert-allowed-cn` is passed, an etcd process denies a peer
connection whose CN doesn't match.
2017-10-02 15:59:17 +09:00
aac652009d clientv3/integration: test leasing txn invalidates deleted cache
Test cache invalidating in txnLeasing.commitToCache function.
2017-09-30 13:04:06 +08:00
f361dcc639 Merge pull request #8629 from gyuho/debug-client
integration: enable client debug logging on CLIENT_DEBUG
2017-09-29 12:53:36 -07:00
bc5b7c0937 integration: enable client debug logging on EXPECT_DEBUG
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-29 12:19:59 -07:00
bcef78c665 Merge pull request #8563 from fanminshi/make_auto_compaction_granular
*: support auto-compaction with finer granularity
2017-09-29 11:18:51 -07:00
0e48b5fa0d Merge pull request #8540 from gyuho/news
NEWS: add v3.2.8
2017-09-29 10:52:12 -07:00
daa224a088 Merge pull request #8621 from tpot/agent-test-data-dir
functional-tester: don't specify data dir on tester side
2017-09-29 08:50:04 -07:00
f8e63934b1 functional-tester: don't specify data dir on tester side
Data directory is added automatially in commit 2e3d27e but test was
not updated.
2017-09-29 15:06:52 +10:00
0e1993f131 etcdmain: check for empty AutoCompactionRetention 2017-09-28 17:31:09 -07:00
253259452b compactor: support finer retention period in compactor.go 2017-09-28 17:22:52 -07:00
733de98cfb *: modify etcd flags to support finner compaction retention 2017-09-28 17:22:44 -07:00
99cda531cb NEWS: add v3.2.8
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-28 16:32:17 -07:00
2cfe0d6774 Merge pull request #8626 from gyuho/kc
*: add watch with client keepalive test
2017-09-28 16:20:25 -07:00
65ffb52e5f clientv3/integration: add TestWatchKeepAlive
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-28 15:35:29 -07:00
b5c31522ee words: mask more words in spellcheck
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-28 15:35:26 -07:00
044aca7f50 integration: configure keepalive parameters for server
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-28 15:34:39 -07:00
741d7e9dca integration: add Blackhole to bridgeConn
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-28 15:34:36 -07:00
55b728973c Merge pull request #8625 from gyuho/kl
vendor: upgrade grpc/grpc-go to v1.6.0
2017-09-28 14:47:48 -07:00
6b06a69aba vendor: upgrade grpc-go to v1.6.0
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-28 13:35:53 -07:00
10202a54ef Merge pull request #8535 from gyuho/keepalive-server
*: configure server keepalive
2017-09-28 13:26:25 -07:00
4b3d4000af etcdmain: add 'grpc-keepalive-*' flags
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-28 11:24:02 -07:00
157c8eccf0 embed: define keepalive server options
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-28 11:19:29 -07:00
32e15d790f api/rpc: accept grpc.ServerOption's for keepalive policy
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-28 10:55:00 -07:00
e1e236155c Merge pull request #8620 from gyuho/bbolt
vendor: upgrade coreos/bbolt to v1.3.1-coreos.2
2017-09-27 16:21:34 -07:00
8f6a0ee26c vendor: upgrade coreos/bbolt to v1.3.1-coreos.2
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-27 15:28:52 -07:00
398e6ba2a6 Merge pull request #8601 from gyuho/notify
clientv3: wait for ConnectNotify before sending RPCs
2017-09-27 14:22:43 -07:00
636815909d clientv3/integration: match context errors to stopped server
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-27 13:12:08 -07:00
a439095697 clientv3: wait for ConnectNotify before sending RPCs
With slow CPU, gRPC can lag behind with RPCs being sent before
calling 'Up', returning 'no address available' on the first try.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-27 13:12:08 -07:00
b6b4898f6b Merge pull request #8619 from gyuho/lfix
clientv3/integration: fix license, minor nits in leasing_test.go
2017-09-27 09:40:13 -07:00
92f5746c54 clientv3/integration: fix license, minor nits in leasing_test.go
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-27 09:23:39 -07:00
554298d429 Merge pull request #8594 from mitake/auth-priority
RFC: etcdserver: swap priority of cert CN and username + password
2017-09-26 08:41:30 -07:00
f815d9a65b e2e: add and update test cases for CN based auth 2017-09-26 16:12:43 +09:00
2240b6a592 Merge pull request #8604 from gyuho/debug-client
etcdctl,clientv3: add debugging logs
2017-09-26 07:18:00 +09:00
090c192517 clientv3: add debugging logs, warnings
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-26 07:16:16 +09:00
c63d6b6a25 ctlv3: print envs, configure grpc logger with debug flag
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-26 07:05:10 +09:00
b355232dd6 Merge pull request #8606 from gyuho/doc
Documentation/op-guide: remove grafana demo link
2017-09-26 02:39:26 +09:00
607d0762eb Documentation/op-guide: remove grafana demo link
The dashboard was removed during Tectonic migration
in AWS, while the Grafana still runs in GCP.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-26 01:52:35 +09:00
4830ca74e6 Merge pull request #8599 from xiang90/longer_timeout
etcdserver: make dial timeout longer
2017-09-23 16:14:50 -07:00
35e285674b etcdserver: make tick duration calculation clear 2017-09-23 15:43:12 -07:00
230323255a etcdserver: make dial timeout longer 2017-09-22 14:56:41 -07:00
6515a1dfd0 Merge pull request #8289 from mitake/auth-proxy
clientv3, etcdmain, proxy: support authed RPCs with grpcproxy
2017-09-22 16:14:37 +09:00
1296281b27 etcdserver: swap priority of cert CN and username + password 2017-09-22 15:53:47 +09:00
cbddcfd9ad Merge pull request #8556 from gyuho/go-tip
client: fix TestHTTPClusterClientSyncUnpinEndpoint
2017-09-22 13:33:34 +09:00
fbc7acde95 client: permute endpoints manually (for Go 1.9>)
To keep backward compatibility, use old algorithm of
rand.Rand.Perm.

Reference: caae0917bf (diff-d4a72c5ba8515eae95a093e0aec62635).

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-22 10:19:30 +09:00
527429f30a Merge pull request #8588 from gyuho/aaa
Documentation: use Go 1.9+ in dl_build.md
2017-09-22 06:05:12 +09:00
24cce732b6 Merge pull request #8590 from raoofm/patch-13
etcd.conf.yml.example: peer-client-cert-auth flag
2017-09-21 12:27:19 -07:00
36e37580f3 etcd.conf.yml.example: peer-client-cert-auth flag
Previous config was incorrect for peer client cert auth
  # Enable peer client cert authentication.
  client-cert-auth: false

corrected to 
peer-client-cert-auth
2017-09-21 10:41:52 -04:00
517c15d3e1 Documentation: use Go 1.9+ in dl_build.md
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-21 20:21:52 +09:00
3a7858c439 Merge pull request #8582 from mitake/derr
e2e: log an error of TempDir() during the preparation of cluster crea…
2017-09-20 17:05:24 +09:00
8a4c8dc3b0 e2e: log an error of TempDir() during the preparation of cluster creation 2017-09-20 17:01:04 +09:00
e8c18e3368 proxy: handle authed snapshot request in grpcproxy
Like the previous commit 10f783efdd12, this commit lets grpcproxy
forward an auth token supplied by its client in an explicit
manner. snapshot is a stream RPC so this process is required like
watch.
2017-09-20 15:27:27 +09:00
c50960e39a e2e: enable tests related to auth and proxy 2017-09-20 15:27:26 +09:00
94b5071c30 etcdmain, proxy: handle authed watch in grpcproxy
This commit lets grpcproxy handle authed watch. The main changes are:
1. forwrading a token of a new broadcast client
2. checking permission of a new client that participates to an
   existing broadcast
2017-09-20 15:27:26 +09:00
e709f83253 etcdmain, proxy: support authed RPCs with grpcproxy
This commit lets grpcproxy support authed RPCs. Auth tokens supplied
by clients are now forwarded to etcdserver by grpcproxy.
2017-09-20 11:14:45 +09:00
aca8a0d5b9 Merge pull request #8574 from abronan/regenerate_keys
client: regenerate sources for etcd/client with new ugorji/go changes
2017-09-20 09:39:13 +09:00
a819e689b0 Merge pull request #8580 from zbwright/patch-1
docs: remove link-breaking space
2017-09-20 08:10:27 +09:00
f45ba5935a docs: remove link-breaking space 2017-09-19 15:54:16 -07:00
8dc4833a3e client: regenerate sources for etcd/client with new codec version
Major updates to ugorji/go changed the signature of some
methods, resulting in the build failing for etcd/client
with default installation of the codec.

We regenerate the sources using codecgen with the new version
to reflect on the new changes.

Fixes #8573

Signed-off-by: Alexandre Beslic <abeslic@abronan.com>
2017-09-19 15:14:58 +02:00
5bb9f9591f Merge pull request #8572 from gyuho/op-guide
Documentation/op-guide: add docker:// to 'rkt run gcr.io'
2017-09-19 10:59:01 +09:00
94e563e111 Documentation/op-guide: add docker:// to 'rkt run gcr.io'
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-19 10:51:01 +09:00
bcbf18491f Merge pull request #8570 from a-robinson/indent
raft: fix bullet point indentation in README
2017-09-18 13:57:21 -07:00
b9c4f5b22a raft: fix bullet point indentation in README 2017-09-18 16:07:51 -04:00
3cad5e4da1 Merge pull request #8545 from heyitsanthony/health-balancer
clientv3: Health balancer
2017-09-18 09:24:45 -07:00
a4777080cb Merge pull request #8567 from xiang90/r_l
raft: ensure CheckQuorum is enabled when readonlyoption is lease based
2017-09-17 19:29:22 -07:00
9801fd7297 raft: ensure CheckQuorum is enabled when readonlyoption is lease based 2017-09-17 10:46:12 -07:00
085adc5b8b Merge pull request #8566 from heyitsanthony/fix-cov
test: fix flags in coverage test
2017-09-17 10:18:41 -07:00
166e6918a6 test: fix flags in coverage test
broken when fixing shellcheck errors
2017-09-17 00:33:56 -07:00
49e5e78d0f clientv3/integration: test endpoint switches on partitioned member 2017-09-16 13:55:39 -07:00
efd7800e0f clientv3: try next endpoint point on unavailable error 2017-09-16 13:55:39 -07:00
e3deb9f482 clientv3: test health balancer gray listing 2017-09-15 14:24:46 -07:00
84db8fdaea clientv3: health check balancer 2017-09-15 14:24:46 -07:00
6cf0fd7cb0 Merge pull request #8339 from javaforfun/shawnsli/check-msg-type-before-become-follower
raft: check whether it's leader PRC request when recv message with higher term
2017-09-14 18:25:25 -07:00
58b98c6a14 raft: check leader request when becomeFollower 2017-09-15 08:23:18 +08:00
4afb99ffc1 Merge pull request #8552 from heyitsanthony/fix-proxy-keys-only
grpcproxy: respect KeysOnly flag
2017-09-13 12:01:48 -07:00
7f4464415a grpcproxy: respect KeysOnly flag
Fixes #8478
2017-09-13 09:57:08 -07:00
4366f35e1e e2e: test no value is returned in TestCtlV3GetKeysOnly
Test was checking key name is returned, but was not correctly checking
no value is returned.
2017-09-13 09:50:24 -07:00
1b85dad7b0 Merge pull request #8514 from mitake/empty-key-perm
etcdctl: handle empty key permission correctly
2017-09-13 17:26:08 +09:00
e4c0e11702 e2e: enhance test cases for a way of handling empty keys 2017-09-13 14:25:52 +09:00
1ae6f1614d etcdctl: handle empty key permission correctly
Current `etcdctl role grant-permission` doesn't handle an empty key
("") correctly. Because the range permissions are treated as
BytesAffineInterval internally, just specifying the empty key as a
beginning of range introduces an invalid permission which doesn't work
and betray users' intuition. This commit fix the way of handling empty
key as a prefix or from key in permission granting.

Fix https://github.com/coreos/etcd/issues/8494
2017-09-13 14:25:52 +09:00
510d884e62 Merge pull request #8537 from lorneli/lease_test
lease: test minLeaseTTL limit
2017-09-12 14:01:46 -07:00
6f6279075a Merge pull request #8546 from heyitsanthony/receiver-ci
test: check for inconsistent receiver names
2017-09-12 13:59:52 -07:00
846255b95e Merge pull request #8513 from shenlanse/bug-fix
rafthttp: add remote in pipeline and snapshot handler
2017-09-12 13:48:56 -07:00
10b731baa8 Merge pull request #8516 from purpleidea/feat/leaseid-okay
clientv3: Allow naked LeaseID or int64 for LeaseValue Compare's
2017-09-12 09:05:33 -07:00
28a22075ca lease: test minLeaseTTL limit
Test whether lease's ttl is set to minLeaseTTL when passing a ttl
smaller than minLeaseTTL to Grant function.
2017-09-12 20:24:27 +08:00
4fa1dd196c *: make receiver names consistent 2017-09-12 03:54:04 -07:00
9553afbb24 Merge pull request #8533 from gyuho/grpc
*: upgrade grpclog to LoggerV2
2017-09-12 03:53:04 -07:00
bb4e0473ae Merge pull request #8531 from gyuho/error
*: deprecate grpc.Code, grpc.ErrorDesc
2017-09-12 03:52:30 -07:00
98e4a05068 test: check for inconsistent receiver names 2017-09-12 03:41:10 -07:00
5f36875272 rafthttp: add remote in pipeline and snapshot handler when corresponding peer or remote do not exist
Fixes: #8506
2017-09-12 18:38:18 +08:00
69f32bac34 Merge pull request #8542 from gyuho/go-systemd
vendor: upgrade go-systemd to v15, remove cockroachdb/cmux
2017-09-11 15:26:50 -07:00
7761a4672e vendor: upgrade go-systemd to v15, remove cockroachdb/cmux
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-11 14:53:37 -07:00
6f76d52a1a *: deprecate grpc.Code, grpc.ErrorDesc
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-11 09:28:56 -07:00
18ba4d60ec v3rpc/rpctypes: use grpc.status for errors
grpc.Code, grpc.ErrorDesc, grpc.Errorf have been deprecated.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-11 09:20:03 -07:00
bc50a4591a Merge pull request #8536 from gyuho/typo
*: fix minor typos
2017-09-11 07:33:54 -07:00
0b2d8a6c96 *: fix minor typos
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-11 07:33:35 -07:00
8597361f01 raft: fix Pre-Vote migration 2017-09-09 09:12:39 +08:00
3b3d392540 *: use grpclog.LoggerV2
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-08 15:26:16 -07:00
f37ff4a4e2 v3rpc: use grpclog.LoggerV2 for grpc logs
grpclog.Logger has been deprecated.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-08 15:25:36 -07:00
d6c33367c4 clientv3: upgrade grpclog to LoggerV2
grpclog.Logger has been deprecated.
2017-09-08 15:25:32 -07:00
80aa810309 Merge pull request #8519 from heyitsanthony/client-oneshot-failover
client: fail over to next endpoint on oneshot failure
2017-09-08 12:54:35 -07:00
f4355a00ae Merge pull request #8518 from dvrkps/patch-1
travis: add 1.9.x instead of 1.9 to go version
2017-09-08 11:43:04 -07:00
76a35e71be client: fail over to next endpoint on oneshot failure
Fixes #8515
2017-09-08 11:20:20 -07:00
ba89bbb47d Merge pull request #8528 from gyuho/ctx
tools/benchmark: replace 'golang.org/x/net/context' with 'context'
2017-09-08 10:53:31 -07:00
640c0e6ff4 tools/benchmark: replace 'golang.org/x/net/context' with 'context'
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-08 09:50:00 -07:00
9a1e294ec6 Merge pull request #8523 from heyitsanthony/remove-gosimple-mask
test: remove S1024 mask from gosimple pass
2017-09-08 09:45:48 -07:00
ae63ac1cf7 test: remove S1024 mask from gosimple pass
Also get stray remaining egreps
2017-09-08 09:21:42 -07:00
f445b463a2 travis: add 1.9.x instead 1.x go version 2017-09-08 07:41:24 +02:00
6930e471ed Merge pull request #8521 from gyuho/grep
test: use 'grep -E' for non-standard 'egrep'
2017-09-07 20:04:28 -07:00
70c20a9e73 Merge pull request #8522 from gyuho/lessor
lease: use time.Until in 'Remaining'
2017-09-07 18:44:16 -07:00
0e0d9e492f lease: use time.Until in 'Remaining'
Fix 'gosimple' warnings.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-07 18:41:36 -07:00
e49d93ccb7 test: use 'grep -E' for non-standard 'egrep'
Fix shellcheck complaints.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-07 18:37:33 -07:00
6e39a39e3a Merge pull request #8511 from gyuho/ctx
*: deprecate 'golang.org/x/net/context'
2017-09-07 18:07:57 -07:00
eb55917ef6 Merge pull request #8507 from lorneli/lease_monotime
lease: use monotime in time.Time for Go 1.9
2017-09-07 15:43:24 -07:00
89ee9d6671 travis: add 1.x instead 1.9 to go version 2017-09-07 23:53:31 +02:00
24498ea167 test: mask 'nil Context' for staticcheck
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-07 13:39:42 -07:00
9a726b424d *: fix leaky context creation with cancel
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-07 13:39:42 -07:00
9d12ba26e0 README: require Go 1.9+
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-07 13:39:42 -07:00
887a0585e6 vendor: upgrade 'golang.org/x/net' with type alias
Use Go 1.9 type alias.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-07 13:39:42 -07:00
f65aee0759 *: replace 'golang.org/x/net/context' with 'context'
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-07 13:39:42 -07:00
ff31fb4b8b Merge pull request #8512 from gyuho/docker
Dockerfile-test: add test image with Go 1.9
2017-09-07 13:33:42 -07:00
a44e11414f Dockerfile-test: add test image with Go 1.9
Not to be blocked on Go 1.9 migration by CIs
(e.g. Semaphore CI not supporting Go 1.9).

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-07 13:12:27 -07:00
252cab0c13 clientv3: Allow naked LeaseID or int64 for LeaseValue Compare's
The logical input to Compare would be a LeaseID (type int64) but the
check panics if we give a LeaseID directly. Allow both so that we don't
unnecessarily annoy and confuse the programmer using the API in the most
logical way.
2017-09-07 13:49:35 -04:00
9c3474e4e0 Merge pull request #8500 from heyitsanthony/clientv3-spelling
clientv3: goword spelling check
2017-09-07 10:06:24 -07:00
63aa64d240 lease: use monotime in time.Time for Go 1.9
The golang/time package tracks monotonic time in each time.Time
returned by time.Now function for Go 1.9.

Use time.Time to measure whether a lease is expired and remove
previous pkg/monotime. Use zero time.Time to mean forever. No
expiration when expiry.IsZero() is true.
2017-09-07 14:18:19 +08:00
2bb893b478 rafthttp: add remote in pipeline and snapshot handler when corresponding peer or remote do not exist
Fixes: #8506
2017-09-07 13:49:39 +08:00
2d0eec0b35 clientv3: goword spelling check 2017-09-06 22:11:33 -07:00
4587d56731 travis: enable goword spell checking 2017-09-06 20:47:08 -07:00
ec36d0040b Merge pull request #8508 from heyitsanthony/shellcheck-more
*: fix shellcheck warnings
2017-09-06 20:31:15 -07:00
9abe9da9db *: fix shellcheck warnings
Fixes scripts and removes shellcheck warning suppressions.

* regexp warnings
* use ./*glob* so names don't become options
* use $(..) instead of legacy `..`
* read with -r to avoid mangling backslashes
* double quote to prevent globbing and word splitting
2017-09-06 19:18:04 -07:00
a0361ea3f9 rafthttp: add remote in pipeline and snapshot handler when corresponding peer or remote do not exist
Fixes: #8506
2017-09-07 10:14:54 +08:00
3c1845604b Merge pull request #8484 from lorneli/dev
wal: tiny refactor
2017-09-06 13:50:38 -07:00
05d7dc307b Merge pull request #8490 from lorneli/lease_dev
lease: fix typo and modify findExpiredLeases function
2017-09-06 12:47:25 -07:00
7c50c06fb8 wal: tiny refactor
a. add comment of reopening file in cut function.
b. add const frameSizeBytes in decoder.
c. return directly if locked files empty in ReleaseLockTo function.
2017-09-07 02:50:37 +08:00
7063a5e5cc lease: add limit in lessor.findExpiredLeases function
Function findExpiredLeases finds expired leases in the leaseMap until
reaching expired limit.
2017-09-07 02:34:56 +08:00
77a19cd9d4 lease: fix typos
a. fix typo in godoc
b. make receiver of FakeLessor's function identical
2017-09-07 02:34:15 +08:00
4cbe2e8cae Merge pull request #8505 from gyuho/conn-timeout
clientv3: deprecate grpc.ErrClientConnTimeout errors
2017-09-05 16:50:39 -07:00
40e969b02a Merge pull request #8485 from irfansharif/TestRecvMsgPreVote
raft: (re-)introduce TestRecvMsgPreVote
2017-09-05 16:11:52 -07:00
b1595f2792 Merge pull request #8488 from purpleidea/feat/leaseid-helper
clientv3: Add LeaseValue helper to Cmp LeaseID values in Txn
2017-09-05 16:11:21 -07:00
550765d037 clientv3: Add LeaseValue helper to Cmp LeaseID values in Txn 2017-09-05 18:51:12 -04:00
8a351f9851 Documentation/upgrades: add 3.3 upgrade guide
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-05 14:41:53 -07:00
15c3c1be28 *: replace 'grpc.ErrClientConnTimeout' with 'context.DeadlineExceeded'
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-05 14:10:43 -07:00
312c68a9c6 clientv3: deprecate grpc.ErrClientConnTimeout errors
Replace with context.DeadlineExceeded.
Address https://github.com/coreos/etcd/issues/8504.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-05 14:10:02 -07:00
9a84c84ea6 Merge pull request #8479 from heyitsanthony/ctlv2-backup-v3
ctlv2: backup --with-v3
2017-09-05 13:46:29 -07:00
9021b85692 Merge pull request #8462 from jiaxuanzhou/serverName
etcdctl: add discovery-srv global flag for v3
2017-09-05 12:29:17 -07:00
9a0f8c5917 etcdctl: add discovery-srv global flag for v3 2017-09-02 10:24:36 +08:00
589a7a19ac Merge pull request #8489 from gyuho/news
NEWS: add v3.2.7
2017-09-01 14:55:45 -07:00
a51135a5f0 NEWS: add v3.2.7
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-01 14:45:38 -07:00
09e30117f5 Merge pull request #8480 from heyitsanthony/fix-decrease-cluster
integration: retry remove in TestDecreaseClusterSize
2017-09-01 13:19:02 -07:00
59d232adf9 integration: retry remove in TestDecreaseClusterSize
Cluster may go through a second leader election if test machine is
overloaded. Retry remove until it passes without error.

Fixes #8225
2017-09-01 12:06:59 -07:00
e832048a1f Merge pull request #8481 from heyitsanthony/data-model-generation
Documentation: modifying a key does not create a new gen in data model
2017-09-01 10:03:06 -07:00
248384a468 raft: (re-)introduce TestRecvMsgPreVote
TestRecvMsgPreVote was intended to be introduced in
github.com/coreos/etcd/pull/6624 but was uncapitalized (search for
testRecvMsgPreVote instead) and then subsequently removed due to it
being unused.
2017-09-01 10:45:47 -04:00
079d578959 e2e: test etcdctl backup saves v3 db 2017-09-01 00:24:57 -07:00
b70263247d e2e: launch etcdctl with api=3 when calling etcdctl3
Setting the ETCDCTL_API=3, then calling etcdctl was unwieldy and not
thread safe; all ctl v3 tests had to go through the ctlv3 wrapper and
could not easily mix with v2 commands.
2017-09-01 00:24:57 -07:00
4cd99d1091 Documentation: modifying a key does not create a new gen in data model
Fixes #8444
2017-08-31 23:56:04 -07:00
9f7375c225 ctlv2: save v3 db with v2 data using --with-v3
Also strips out v3 data if not given --with-v3.
2017-08-31 22:57:41 -07:00
b61c7489e0 Merge pull request #8475 from heyitsanthony/mvcc-100-range
mvcc: don't allocate keys when computing Revisions
2017-08-31 16:42:16 -07:00
1b19a5c708 Merge pull request #8407 from heyitsanthony/v2v3
v2 emulation over v3
2017-08-31 16:41:45 -07:00
4c725cee26 Merge pull request #8474 from heyitsanthony/netutil-cmp
netutil: test schemes for URLStringsEqual
2017-08-31 13:40:17 -07:00
9d79d5fe65 mvcc: don't allocate keys when computing Revisions 2017-08-31 13:23:23 -07:00
be7d488982 mvcc: add range benchmark for fetching 100 keys 2017-08-31 13:23:23 -07:00
492bbc9659 netutil: test schemes for URLStringsEqual
add tests for http/https mismatch and unix scheme
2017-08-31 12:41:05 -07:00
32bfd9e5ab test: add v2v3 store tests to integration and cov passes 2017-08-31 12:25:13 -07:00
d4b8193c55 hack/benchmark: update bench.sh to match procfile 2017-08-31 11:47:41 -07:00
e9cf07fa4d e2e: test v2v3 emulation 2017-08-31 11:47:41 -07:00
a0adee5209 etcdmain: add command line flag to etcdmain 2017-08-31 11:47:41 -07:00
5d669290e3 embed: support experimental v2v3 proxy option 2017-08-31 11:47:41 -07:00
75eb05a272 store: test v2v3 store
Changes main store tests to use a timeout select instead of expecting
events to be immediately posted before returning.
2017-08-31 11:47:41 -07:00
cab7572b00 store: separate tests that need Store from those needing *store 2017-08-31 11:47:40 -07:00
8091be6e97 v2v3: ServerV2 backed by clientv3 2017-08-31 11:47:40 -07:00
525fbba1bd etcdctl3: update to use RequestV2 instead of Request 2017-08-31 11:47:40 -07:00
758c3c09fd etcdserver: refactor v2 request processing
Makes interfaces more reusable.
2017-08-31 11:47:40 -07:00
1d3afd4bb5 etcdhttp, v2http, etcdserver: use etcdserver.{Server,ServerV2} interfaces 2017-08-31 11:47:40 -07:00
565831c21c Merge pull request #8455 from janardhan1993/patch-1
Persist entries before hardstate.
2017-08-31 06:45:50 -07:00
b847cde981 raft: update doc for persisting entries before hardstate 2017-08-31 16:24:28 +10:00
7d4a8a6935 Merge pull request #8466 from heyitsanthony/tls-srv-mismatch
srv: if a host matches a peer, only use if url schemes match
2017-08-30 10:42:20 -07:00
409805e9c7 Merge pull request #8469 from mkumatag/fix_govet
Fix go vet errors
2017-08-30 10:06:06 -07:00
247b4ef904 Merge pull request #8465 from heyitsanthony/covbadge
README: add coverage badge
2017-08-30 10:05:03 -07:00
cd772ea737 pkg/pbutil: Fix go vet errors 2017-08-30 20:07:14 +05:30
a671703c08 srv: if a host matches a peer, only use if url schemes match
The https scheme for a peer advertise URL was ignored when resolving through
SRV records.
2017-08-29 23:29:56 -07:00
d31c442197 README: add coverage badge 2017-08-29 22:39:11 -07:00
7cf8eb8dce Merge pull request #8459 from heyitsanthony/mvcc-cancel-close
mvcc: only remove watch cancel after cancel completes
2017-08-29 09:52:48 -07:00
896447ed99 mvcc: only remove watch cancel after cancel completes
If Close() is called before Cancel()'s cancel() completes, the
watch channel will be closed while the watch is still in the
synced list. If there's an event, etcd will try to write to a
closed channel. Instead, remove the watch from the bookkeeping
structures only after cancel completes, so Close() will always
call it.

Fixes #8443
2017-08-28 17:06:33 -07:00
bd53ae5680 mvcc: test concurrently closing watch streams and canceling watches
Triggers a race that causes a write to a closed watch stream channel.
2017-08-28 17:06:32 -07:00
86d15d1b1c Merge pull request #8457 from mitake/fix-false-groutine-leaks
integration: clean up resources in error paths of TestV3WatchFromCurr…
2017-08-28 12:21:54 -07:00
3fefac17b2 integration: clean up resources in error paths of TestV3WatchFromCurrentRevision
Current error paths of TestV3WatchFromCurrentRevision don't clean the
used resources including goroutines. Because go's tests are executed
continuously in a single process, the leaked goroutines makes error
logs bloated like the below case:
https://jenkins-etcd-public.prod.coreos.systems/job/etcd-coverage/2143/

This commit lets the error paths clean the resources.
2017-08-28 16:31:36 +09:00
9b92e1b2d0 flag: improve StringFlags by support set default value when init (#8447)
* flag: improve StringFlags by support set default value when init

when init flagSet, set default value should be moved to StringFlags init
func, which is more friendly

personal proposal

* flag: code improved for StringFlags
2017-08-28 00:02:11 -07:00
60d46a3626 Merge pull request #8453 from heyitsanthony/fix-ctlcov
etcdctl: unset ETCDCTL_ARGS on cov builds
2017-08-27 19:34:11 -07:00
fec145f086 Merge pull request #8454 from lorneli/master
pkg/wait: change list's lock to RWMutex
2017-08-27 10:44:50 -07:00
54fcdb4b5c pkg/wait: change list's lock to RWMutex
Change list's lock from Mutex to RWMutex, which allows concurrent
access for list.IsRegistered function.
2017-08-27 18:23:18 +08:00
1dea4c688e etcdctl: unset ETCDCTL_ARGS on cov builds
The stricter warnings on pkg/flags generates extra output that
break coverage tests. Unset the ETCDCTL_ARGS environment variable
so the warnings aren't printed.
2017-08-25 22:43:14 -07:00
c9f677c0ea Merge pull request #8452 from gyuho/badge
clientv3: fix godoc badge link
2017-08-25 17:47:29 -07:00
e441c57972 clientv3: fix godoc badge link
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-08-25 17:44:36 -07:00
ef5e77e361 Merge pull request #8442 from heyitsanthony/oldrev-test
integration: check concurrent auth ops don't cause old rev errors
2017-08-25 12:03:32 -07:00
d76b29c4d7 Merge pull request #8449 from gyuho/go1.9
*: bump up to Go 1.9 in tests
2017-08-25 09:48:44 -07:00
52855bac49 *: bump up to Go 1.9 in tests
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-08-24 19:29:26 -07:00
4ec31f4f7f Merge pull request #8437 from fanminshi/no_outbound_limit_size
v3rpc: use MaxRecvMsgSize and MaxSendMsgSize to limit msg size
2017-08-24 09:52:15 -07:00
752c161ebf Merge pull request #8435 from gyuho/doc
Documentation/v2: remove implementation detail
2017-08-24 08:32:13 -07:00
d3c8f9e856 Documentation/v2: remove implementation detail
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-08-23 14:56:44 -07:00
dfed636e5a integration: check concurrent auth ops don't cause old rev errors 2017-08-23 14:29:38 -07:00
67d932154c testutil: don't panic on AssertNil on non-nil errors 2017-08-23 14:26:03 -07:00
897cadc88c Merge pull request #8436 from gyuho/bbolt
vendor: upgrade 'coreos/bbolt' to v1.3.1-coreos.1
2017-08-22 20:51:30 -07:00
8e7a0de114 Merge pull request #8439 from heyitsanthony/stm-serialized-snapshot
concurrency: retry snapshot serializable stm if writes since first header rev
2017-08-22 20:47:57 -07:00
b206afc4a7 concurrency: fix STM example to add to balance
Worked by coincidence; the txn would always retry and there
was a 1/10 chance it would pass by selecting the same to/from keys.
2017-08-22 19:39:22 -07:00
1d195521c7 concurrency: retry snapshot serializable stm if writes since first header rev
Was checking the rset key mod rev, which does not work.
2017-08-22 19:39:22 -07:00
b9ef49142c integration: test serializable snapshot STM with old readset revisions
Was hanging.
2017-08-22 19:39:22 -07:00
d2ca782277 v3rpc: limit recv size using MaxRecvMsgSize and send using MaxSendMsgSize
grpc 1.3 uses MaxMsgSize() to limit received message size. However, grpc 1.4 introduces a 4mb default limit on send message size. In etcd, server shouldn't be limit size of message that it can be sent. Hence, set maximum size of send message using MaxSendMsgSize().
2017-08-22 14:31:01 -07:00
af4957ead8 vendor: upgrade 'coreos/bbolt' to v1.3.1-coreos.1
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-08-22 11:03:24 -07:00
5c975fdb10 Merge pull request #8420 from heyitsanthony/corrupt-alarm
corruption alarm
2017-08-22 11:00:43 -07:00
603f84bb6d vendor: cockroachdb/cmux -> soheilhy/cmux
Official release is ahead of the fork.
2017-08-22 09:59:59 -07:00
35c5dcefc2 *: cockroachdb/cmux -> soheilhy/cmux
Has fixes not in fork. Includes SetReadTimeout.
2017-08-22 09:59:59 -07:00
6e02779c4f integration: add corruption test 2017-08-22 09:59:59 -07:00
5c611a493b integration: grpc on etcd peer ports 2017-08-22 09:59:59 -07:00
86aeaad924 etcdmain: support experimental-corrupt-check-time flag 2017-08-22 09:59:59 -07:00
1f734e0299 embed: support experimental-corrupt-check-time flag 2017-08-22 09:59:59 -07:00
31381da53a etcdserver: raise alarm on cluster corruption
Fixes #7125
2017-08-22 09:59:59 -07:00
35dffc7bc1 rpctypes,v3rpc: add Corrupt error code 2017-08-22 09:59:59 -07:00
153ba92830 embed: serve basic v3 grpc over peer port 2017-08-22 09:59:59 -07:00
b8bcc891a6 *: regenerate gRPC assets 2017-08-22 09:59:59 -07:00
6be5f9a841 etcdserverpb: add corrupt alarm 2017-08-22 09:59:59 -07:00
65c054003f Merge pull request #8429 from heyitsanthony/leasing-no-acquire-ttl
leasing: don't acquire lease on ttl'd keys
2017-08-21 14:21:26 -07:00
0bf404676d Merge pull request #8428 from heyitsanthony/mvcc-revisions
mvcc: Revisions() method for index to avoid key allocation
2017-08-21 13:30:27 -07:00
02c6f0d559 Merge pull request #8430 from gyuho/news
NEWS: add v3.2.6
2017-08-21 13:05:23 -07:00
94e80e5f57 NEWS: add v3.2.6
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-08-21 13:00:03 -07:00
5c03ade973 leasing: don't acquire lease on ttl'd keys
TTL'd keys may expire on cluster without lease holder's consent.
2017-08-21 12:12:53 -07:00
cf0a07be52 integration: test leasing client does not acuire lease on TTL'd keys 2017-08-21 12:11:19 -07:00
f58c0cfb66 mvcc: Revisions() method for index to avoid key allocation
Save another alloc on the one key path.
2017-08-21 11:30:02 -07:00
7e6a0a8f92 Merge pull request #8427 from gyuho/mvcc-patch-cherry-pick
mvcc: sending events after restore
2017-08-21 10:38:45 -07:00
13041c15ba mvcc: sending events after restore
Fixes: #8411
2017-08-21 10:32:49 -07:00
953c199b74 Merge pull request #8425 from heyitsanthony/bench-get
mvcc: benchmark Range() on a single key
2017-08-21 09:52:40 -07:00
ee5bdf458b Merge pull request #8426 from heyitsanthony/weaken-certs
test: weaken certs
2017-08-21 09:40:23 -07:00
d3f5109215 test: weaken certs
The penalty for TLS is non-trivial with race detection enabled.
Weakening the test certs from 4096-bit RSA to 2048-bit gives ~4x faster
runtimes for TestDoubleTLSClusterSizeOf3.
2017-08-21 03:23:47 -07:00
8b872196d0 backend: cache buckets in read tx
Saves an alloc and about 10% of Range() time.
2017-08-21 02:16:55 -07:00
10b65c97dd mvcc: benchmark Range() on a single key 2017-08-21 00:14:46 -07:00
a9e56e103c Merge pull request #8424 from heyitsanthony/pflag-v1.0.0
vendor: spf13/pflags v1.0.0
2017-08-19 19:20:01 -07:00
8a956459d8 vendor: spf13/pflags v1.0.0 2017-08-19 18:38:34 -07:00
bea33f65a4 Merge pull request #8423 from heyitsanthony/document-grpc-trace
op-guide: add /debug details
2017-08-19 10:58:00 -07:00
47d5ae4971 op-guide: add /debug details
Fixes #8418
2017-08-18 17:58:38 -07:00
3e32cd3877 Merge pull request #8422 from heyitsanthony/close-leasing
leasing, integration, etcdmain: closer function for leasing kv
2017-08-18 16:03:57 -07:00
126e91c449 leasing, integration, etcdmain: closer function for leasing kv
Semaphore was seeing goroutine leaks
2017-08-18 14:05:57 -07:00
2321835c47 Merge pull request #8415 from heyitsanthony/fix-resolv-unix
netutil: don't resolve unix socket URLs when comparing URLs
2017-08-18 13:24:34 -07:00
dc4ab898eb Merge pull request #8421 from heyitsanthony/doc-get-all
etcdctl: document getting all keys with etcdctl3
2017-08-18 12:23:58 -07:00
6fd37dd9a3 etcdctl: document getting all keys with etcdctl3
People keep asking
2017-08-18 09:49:55 -07:00
1f228e753d Merge pull request #8419 from gyuho/ctx
auth: replace NewContext with NewOutgoingContext
2017-08-17 20:32:38 -07:00
7734b97b57 e2e: test etcd boots with unix peers 2017-08-17 19:59:09 -07:00
6464574952 netutil: don't resolve unix socket URLs when comparing URLs
Was causing VerifyBootstrap() to hang on unix peers.
2017-08-17 19:58:24 -07:00
35b11bf438 auth: replace NewContext with NewOutgoingContext
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-08-17 19:46:19 -07:00
c1b7e78c60 Merge pull request #8414 from heyitsanthony/fix-multi-peer
embed: associate peer serve() listener with corresponding peer
2017-08-17 13:29:49 -07:00
15c511ea6a e2e: test booting etcd with multiple peer listeners 2017-08-17 11:25:40 -07:00
f4183c68cc embed: associate peer serve() listener with corresponding peer
Fixes #8383
2017-08-17 10:25:00 -07:00
f33d64a930 Merge pull request #8408 from gyuho/1
Documentation: Update to include Huawei (renamed Canal)
2017-08-16 16:30:55 -07:00
abe5c9c63e Merge pull request #8409 from gyuho/2
dev-guide: note v2 keys to v3 API incompatibility
2017-08-16 15:47:47 -07:00
46b42e3cf0 Merge pull request #8394 from chris-wagner/patch-1
Fix field names in Container Linux Config for etcd 3.x service
2017-08-16 15:45:19 -07:00
61fd39e5d7 dev-guide: note v2 keys to v3 API incompatibility
Update interacting_v3.md

Making it clear to the user that keys created via the v2 API are not readable by the etcdctl with the v3 API.  A etcdctl v3 get of a v2 key key exits with 0 and no data, which is quite confusing, hopefully this just makes that it a bit clearer if the user upgraded etcd 3 in the past (and forget some of the 2.3 to 3.0 to 3.1 to 3.2 upgrade details) but never updated the API they used as v2 was the default and happen to trying to figure out wtf, this is a further reminder of that backward incompatibility.
2017-08-16 15:43:58 -07:00
0c456df5c3 Documentation: Update to include Huawei (renamed Canal) 2017-08-16 15:42:03 -07:00
bfb1d9d6a6 Documentation/platforms: fix field names in configuration example 2017-08-16 09:59:51 +02:00
fa32a85e69 Merge pull request #8405 from joshgav/container-listen-ip
docs: use 0.0.0.0 to listen on container-local addrs
2017-08-15 14:35:18 -07:00
c9c20d93ac Documentation/op-guide: use 0.0.0.0 to listen on container-local addr
Since container is in a separate network namespace it can't bind to
host's IP address. Instead bind to all addresses via 0.0.0.0.
2017-08-15 16:25:01 -05:00
8060b9dd83 Merge pull request #8404 from gyuho/pprof
embed: add 'enable-pprof' tag for config file
2017-08-15 11:50:51 -07:00
e24de6c9ac embed: add 'enable-pprof' tag for config file
Fix https://github.com/coreos/etcd/issues/8402.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-08-15 11:22:10 -07:00
f1509a102c Merge pull request #8385 from gyuho/shadowed-environment-variables
pkg/flags: warns on shadowed environment variable flags
2017-08-14 16:59:50 -07:00
deb0098d33 Merge pull request #8358 from gyuho/lease-list
api: lease list
2017-08-14 14:32:03 -07:00
01f1013203 e2e: test 'lease list' command
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-08-14 14:18:57 -07:00
1f20d5d924 etcdctl/ctlv3: add 'lease list' command
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-08-14 14:18:57 -07:00
556c1a1fe0 integration,clientv3/integration: test LeaseLeases API
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-08-14 14:18:57 -07:00
f8141db2c7 proxy/grpcproxy: implement LeaseLeases API
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-08-14 14:18:56 -07:00
15ef98a4ee clientv3: implement LeaseLeases API
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-08-14 14:18:56 -07:00
d25ae50c02 etcdserver: implement LeaseLeases API
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-08-14 14:18:56 -07:00
8005f00bcf *: regenerate proto
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-08-14 14:18:56 -07:00
a7413bbf28 etcdserverpb: define LeaseLeases API
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-08-14 14:18:56 -07:00
099fbde809 lease: add 'Leases' method
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-08-14 14:18:53 -07:00
8df21326f9 Merge pull request #8384 from gyuho/advertise-url
embed: warns about empty hosts in advertise urls
2017-08-11 10:15:35 -07:00
135b7f78c9 Merge pull request #8392 from gyuho/bbolt
vendor: coreos/bbolt v1.3.1-coreos.0, add others in glide.yaml
2017-08-10 17:44:31 -07:00
2513e8c9ce integration: increase numPuts to write more than 1 page
For ppc64.
Reference: https://github.com/coreos/bbolt/issues/15#issuecomment-321700834.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-08-10 16:43:41 -07:00
6489084a51 vendor: coreos/bbolt v1.3.1-coreos.0, add others in glide.yaml 2017-08-10 15:02:58 -07:00
6c4d990c1a Merge pull request #8390 from heyitsanthony/reset-keysgauge-restore
mvcc: reset keys gauge on restore
2017-08-10 12:57:50 -07:00
fe344ef302 embed: warns about empty hosts in advertise urls
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-08-10 12:31:58 -07:00
ccd1bb1780 mvcc: test keys gauge is reloaded correctly on restore 2017-08-10 09:21:39 -07:00
32866572bf mvcc: reset keys gauge on restore
Fixes #8388
2017-08-10 08:37:50 -07:00
195744aea6 pkg/flags: warns on shadowed environment variable flags
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-08-09 15:58:48 -07:00
04413454ac Merge pull request #8370 from jiaxuanzhou/lock_cmd
etcdctl: add ttl flag for lock command
2017-08-09 10:04:32 -07:00
9c21eefd09 etcdctl: add ttl flag for lock command 2017-08-09 22:04:43 +08:00
754f454974 Merge pull request #8367 from jpbetz/defrag-file
etcdctlv3: Add option to defrag a data directory directly
2017-08-08 12:27:52 -07:00
921e0dbd72 Merge pull request #8374 from heyitsanthony/fix-leasing-reconn
leasing: retry on errors from acquire txn
2017-08-08 12:07:22 -07:00
39432ac31f etcdctlv3: Add option to defrag a data directory directly, for cases where etcd is not running. 2017-08-08 10:19:32 -07:00
2c958939bb Merge pull request #8378 from heyitsanthony/doc-tls-termination
op-guide: TLS termination with grpc-proxy
2017-08-08 10:19:00 -07:00
7ef41aa285 op-guide: TLS termination with grpc-proxy
Also made the etcdctl calls consistent across the file.
2017-08-08 09:33:51 -07:00
cf0eb3b7ce integration: increase timeout for TestLeasingReconnectOwnerRevoke
Adding retry to acquire on failure causes Get to now retry until a
connection can be reestablished to the etcd server, causing the
timeout to trigger and fail the test.
2017-08-07 15:51:27 -07:00
61ebb98e55 leasing: retry on errors from acquire txn
Gets should retry on transient failure, but the txn inserts a write, skipping
the retry logic in the client. Instead, check the error if the txn should be
retried.

Fixes #8372
2017-08-07 11:39:12 -07:00
a9b9ef5640 Merge pull request #8351 from gyuho/hash
*: add 'endpoint hashkv' command
2017-08-07 09:21:50 -07:00
c9cd3afa58 Merge pull request #8369 from gyuho/container
Documentation/op-guide: add gcr.io image as alternative
2017-08-07 09:13:22 -07:00
e4e61479f2 op-guide/v2-migration: endpoint hashkv post migration
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-08-06 13:50:22 -07:00
43ccc549fb e2e: test 'endpoint hashkv' command
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-08-05 18:17:06 -07:00
5176b63fa0 ctlv3: add 'endpoint hashkv' command
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-08-05 18:17:06 -07:00
9982cd0528 clientv3/integration: add 'TestMaintenanceHashKV'
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-08-05 18:17:06 -07:00
8c32cd96fb clientv3: add 'HashKV' to 'Maintenance' interface
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-08-05 18:17:06 -07:00
b39891eb45 Merge pull request #8341 from visheshnp/leasing-pr
clientv3: Disconnected Linearized Reads
2017-08-05 17:03:48 -07:00
6ca928c669 dev-internal/release: add gcr.io image commands
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-08-04 19:56:17 -07:00
7d4b470397 Documentation/op-guide: add gcr.io image as alternative
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-08-04 19:49:23 -07:00
4aa528c58e Merge pull request #8368 from gyuho/news
NEWS: add v3.2.5
2017-08-04 18:25:45 -07:00
da7f5725e0 NEWS: add v3.2.5
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-08-04 13:24:25 -07:00
d3716b86ae clientv3: s/ToOpResponse/OpResponse
Closer to idiomatic go.
2017-08-04 11:35:36 -07:00
8fe94356f4 clientv3: more Op accessors 2017-08-04 11:35:36 -07:00
b402ea8590 test: increase clientv3/integration time to accomodate leasing tests 2017-08-04 11:35:36 -07:00
9be715bb66 etcdmain: support key leasing in grpcproxy 2017-08-04 11:35:36 -07:00
468078ffcd integration: leasing tests 2017-08-04 11:35:36 -07:00
a425e98a7e leasing: KV leasing 2017-08-04 11:35:36 -07:00
366f5381e0 Merge pull request #8366 from heyitsanthony/prevkey-proxy
grpcproxy: forward PrevKv flag in Put
2017-08-04 07:31:27 -07:00
6a4194c556 grpcproxy: forward PrevKv flag in Put 2017-08-03 21:38:20 -07:00
c3ae033f25 integration: test Put with PrevKey=true
Was missing in proxy.
2017-08-03 21:37:06 -07:00
faa4a62410 Merge pull request #8355 from heyitsanthony/expect-fd
e2e: remove SIGQUIT debugging for elect and lock
2017-08-03 17:18:17 -07:00
71a706509e Merge pull request #8364 from gyuho/fixtures
integration/fixtures: fix base64 flag, add wildcard.json
2017-08-03 15:55:16 -07:00
107c18f19f Merge pull request #8356 from heyitsanthony/election-example
concurrency: add examples
2017-08-03 15:43:08 -07:00
5072530a80 e2e: remove SIGQUIT debugging for elect and lock
Causes etcdctl to hang with pending SIGQUIT signals according to
/proc/pid/status. The debugging wasn't very useful on travis
either; just totally remove it to get CI working again.
2017-08-03 15:38:06 -07:00
a3ef719598 integration/fixtures: fix base64 flag, add wildcard.json
MacOS base64 uses -D and linux uses -d, while --decode
works on both platforms. And add missing server-ca-csr-wildcard.json.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-08-03 15:31:29 -07:00
b7b31e5770 concurrency: add examples 2017-08-02 21:09:05 -07:00
033c0cbdd8 Merge pull request #8346 from javaforfun/shawnsli/reset-votes-when-become-pre-candidate
raft: reset votes when becomePreCandidate
2017-08-02 19:52:17 -07:00
e77ecb593c Merge pull request #8360 from heyitsanthony/fix-osx-fmt
test: fix PASSES=fmt for OSX
2017-08-02 18:12:21 -07:00
322e6ff022 test: fix PASSES=fmt for OSX
OSX dirname doesn't support multiple arguments; use a for loop instead.

Fixes #8359
2017-08-02 14:43:15 -07:00
42cc64a9e5 raft: add TestPreVoteWithSplitVote 2017-08-02 17:59:28 +08:00
ae748716e6 Merge pull request #8350 from gyuho/fix-typo
ctlv3/command: remove double-quote typos in fields printer
2017-08-01 17:24:41 -07:00
9040b3eb2b ctlv3/command: remove double-quote typos in fields printer
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-08-01 17:21:15 -07:00
d543870966 Merge pull request #8347 from heyitsanthony/use-from-grpc-md
clientv3: use FromOutgoingContext to bucket watches
2017-08-01 17:05:56 -07:00
98adbbf031 Merge pull request #8321 from zbwright/revise-readme
docs: revising to match sidebar structure.
2017-08-01 16:55:33 -07:00
45e6b658dd Merge pull request #8349 from gyuho/fix-lease-test
clientv3/integration: match context canceled on client close
2017-08-01 14:53:31 -07:00
9f1bfd9e4b Merge pull request #8335 from heyitsanthony/test-put-atmostonce
clientv3: put at most once
2017-08-01 14:52:04 -07:00
b89ef7e295 clientv3/integration: match context canceled on client close
Fix https://github.com/coreos/etcd/issues/8329.

Different behavior from https://github.com/grpc/grpc-go/pull/1369,
in grpc-go transportMonitor.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-08-01 13:25:13 -07:00
7de417d745 clientv3/integration: use grpc metadata to create unique watch ctxs 2017-08-01 13:14:31 -07:00
fdba9e5fb1 clientv3/integration: test Put succeeds following SetEndpoint
Still gets transport closing errors, but no unavailable endpoint errors.
2017-08-01 12:59:37 -07:00
10db0319d1 ordering: use default clients to populate etcd data
Switching endpoints on the same client was triggering balancer
reconnect errors that should be tested in clientv3/integration.
2017-08-01 12:56:04 -07:00
4669aaa9a2 clientv3: only retry mutable KV RPCs if no endpoints found
Was retrying when it shouldn't, causing multiple puts
2017-08-01 12:55:51 -07:00
8385c6682a clientv3/integration: test client puts at most once on bad connection 2017-08-01 10:31:13 -07:00
585b1d7bdc Merge pull request #8333 from fanminshi/retrieve_keep_from_index
mvcc: fix TestHashKVWhenCompacting hash mismatch
2017-08-01 09:57:08 -07:00
1c75c383a1 clientv3: use FromOutgoingContext to bucket watches
Watches were bucketed on string(ctx) for historical reasons;
metadata.FromOutgoingContext should be enough to key watches now.

Fixes #8338
2017-08-01 09:26:07 -07:00
3740793b42 raft: reset votes when becomePreCandidate 2017-08-01 22:42:09 +08:00
df5a3d15ce mvcc: increase rev for TestHashKVWhenCompacting 2017-07-31 17:59:49 -07:00
bb86c327e2 mvcc: HashKV gets keep from kvindex.Keep 2017-07-31 17:59:49 -07:00
4c2c5b0084 mvcc: add tests for Keep 2017-07-31 17:59:42 -07:00
e0843c691b Merge pull request #8322 from gyuho/health-grpc-proxy
*: add /health endpoint to grpc-proxy
2017-07-31 15:45:42 -07:00
073fa562d8 Merge pull request #8342 from gyuho/ep-exit
ctlv3: exit non-zero on unhealty ep command
2017-07-31 15:45:30 -07:00
cd142a0d1c Merge pull request #8324 from heyitsanthony/txn-cmp-lease
api: lease comparison target
2017-07-31 14:52:14 -07:00
6603a77561 ctlv3: exit non-zero on unhealty ep command 2017-07-31 14:17:01 -07:00
661da1e609 e2e: test /metrics, /health endpoint in grpc-proxy
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-07-31 14:07:59 -07:00
b8fd5c3dba etcdmain: add '/health' endpoint to grpc-proxy
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-07-31 14:07:59 -07:00
cd37ef2c1b *: expose etcdhttp.Health, define proxy health handler
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-07-31 14:07:54 -07:00
7b8fb3cf0a mvcc: add and implement Keep api to index
Keep finds all revisions to be kept for a Compaction at the given rev.
2017-07-31 14:04:03 -07:00
341664f7b6 integration: test txn lease comparisons 2017-07-31 13:00:04 -07:00
79660db61b etcdctl: add lease comparison to txn command 2017-07-31 13:00:04 -07:00
52b031cfa2 clientv3: accept Compare_LEASE in Compare() 2017-07-31 13:00:04 -07:00
ec4ca4408f etcdserver: support lease txn comparison 2017-07-31 13:00:04 -07:00
71e56a44b7 *: regenerate protobuf assets 2017-07-31 13:00:04 -07:00
d8ca2bbffb etcdserverpb: add lease to txn comparison targets
Also shifts down fields following target_union in case there's any more
reason to expand. OK since range_end is still pre-release.
2017-07-31 13:00:04 -07:00
2951faf770 Merge pull request #8315 from heyitsanthony/experimental-ordering
add experimental serializable ordering feature to grpcproxy
2017-07-28 14:48:53 -07:00
f216165aad Merge pull request #8332 from gyuho/peer-url
ctlv3: print 'ETCD_INITIAL_ADVERTISE_PEER_URLS' in 'member add'
2017-07-28 14:21:21 -07:00
98fc5e5769 ctlv3: print 'ETCD_INITIAL_ADVERTISE_PEER_URLS' in 'member add'
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-07-28 13:53:13 -07:00
ca586147bd Merge pull request #8323 from fanminshi/fix_TestV3HashKV_Hash_MisMatch
integeration: fix TestV3HashKV hash mismatch
2017-07-28 10:45:43 -07:00
451b062184 mvcc/backend: add TestBackendWritebackForEach to backend_test.go 2017-07-28 09:39:48 -07:00
785deebd62 mvcc/backend: enforce ordering for UnsafeForEach in read_tx.go
This pr changes  UnsafeForEach to traverse on boltdb before on the buffer.
This ordering guarantees that UnsafeForEach traverses in the same order
before or after the commit of buffer.
2017-07-28 09:30:23 -07:00
b36463efe5 Merge pull request #8312 from gyuho/health-lists
api/etcdhttp: serve error information in '/health', marshal health in JSON
2017-07-27 15:46:39 -07:00
8c7b639f81 Documentation/v2: update /health response
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-07-27 15:37:04 -07:00
4267d368df api/etcdhttp: serve error information in '/health', marshal health in JSON
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-07-27 15:36:59 -07:00
ff1c8c2191 docs: revising to match sidebar structure. 2017-07-27 15:06:59 -07:00
8365233d2a Merge pull request #8296 from gyuho/grpc
vendor: upgrade grpc/grpc-go to v1.5.1
2017-07-27 13:21:20 -07:00
f6acd0316c etcdmain: add --experimental-serializable-ordering to grpc proxy
Connect to another endpoint on stale reads.
2017-07-27 12:39:30 -07:00
9fee4b77de bill-of-materials: update 'grpc' LICENSE
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-07-27 10:47:24 -07:00
8a589d2d73 grpcproxy/cluster_test: serve grpc server after register service
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-07-27 10:47:24 -07:00
be794d586c vendor: upgrade grpc-go to v1.5.1
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-07-27 10:47:17 -07:00
fca56f132a ordering: use x/net/context and add doc.go
Compilation troubles when using the "context" package.
2017-07-26 20:58:41 -07:00
5088ae3e67 docs: add ordering wrapper as experimental feature 2017-07-26 20:58:41 -07:00
2a348fb8e9 Merge pull request #8263 from fanminshi/hash_by_rev
api: hash by rev
2017-07-26 11:22:33 -07:00
ee1c340126 Merge pull request #8309 from gyuho/test-timeout
integration: increase dial timeout in testTLSReload
2017-07-26 10:04:48 -07:00
8609521ce2 mvcc: add TestHashKVWhenCompacting to kvstore_test 2017-07-26 09:48:29 -07:00
766c2540ae integration: add TestV3HashKV in v3_grpc_test.go 2017-07-26 09:48:24 -07:00
9b6799a5b6 integration: increase dial timeout in testTLSReload 2017-07-26 09:37:51 -07:00
ff7a021c8f Merge pull request #8282 from gyuho/metrics-port
*: serve '/metrics' in insecure port
2017-07-26 09:27:37 -07:00
411ab276b0 e2e: test /metrics, /health endpoints
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-07-26 06:23:55 -07:00
74c8050adc *: use etcdhttp.Handle* for health, prometheus handlers
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-07-26 06:23:55 -07:00
78432e3bd2 etcdhttp: add metrics.go for metrics, health handler
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-07-26 06:23:55 -07:00
16943f04e2 Merge pull request #8283 from heyitsanthony/cancel-compact-rpc
v3rpc: set Canceled=true on compacted watch
2017-07-25 19:15:18 -07:00
8b1177194e Merge pull request #8306 from heyitsanthony/v3server-raftreq
etcdserver: consolidate error checking for v3_server functions
2017-07-25 19:14:01 -07:00
a6ae677d8f proxy: support HashKV in grpcproxy 2017-07-25 17:00:56 -07:00
deca9879c2 mvcc: add HashByRev to kv.go
HashByRev computes the hash of all MVCC keys up to a given revision.
2017-07-25 17:00:46 -07:00
478ba2c4f2 etcdserver: consolidate error checking for v3_server functions
Duplicated error checking code moved into raftRequest/raftRequestOnce.
2017-07-25 14:28:39 -07:00
05603c4908 Merge pull request #8291 from zbwright/upgrade-index
docs: adding an index for upgrade pages.
2017-07-25 12:40:52 -07:00
9581f7676c grpcproxy: forward Canceled field when broadcasting watch responses 2017-07-25 12:36:01 -07:00
318caeee7e clientv3: return CompactRevision wresp when set with Canceled 2017-07-25 12:36:01 -07:00
6fb08672d8 v3rpc: set canceled=true when stream is compacted
Fixes #8231
2017-07-25 12:36:01 -07:00
ebcfdd1a3d integration: check Canceled is true in compacted watch response 2017-07-25 12:36:01 -07:00
ffa54929ea docs: adding an index for upgrade pages. 2017-07-25 10:53:02 -07:00
d2654f8522 Merge pull request #8092 from mangoslicer/kv-ordering-wrapper
Added initial kv order caching functionality
2017-07-24 22:28:40 -07:00
26bf8c0524 Merge pull request #8292 from zbwright/why-tweak
docs: slight rearranging of top two sections.
2017-07-24 21:08:45 -07:00
93826f2f78 Merge pull request #8288 from irfansharif/pre-vote
raft: introduce/fix TestNodeWithSmallerTermCanCompleteElection
2017-07-24 21:05:42 -07:00
fe33bd1879 Merge pull request #8294 from mitake/proxy-cachemiss
proxy: don't inc a cache miss count in a case of linearizable range
2017-07-24 20:47:19 -07:00
986e98418d Merge pull request #8300 from heyitsanthony/proxy-self-cert
etcdmain: create self-signed certs when listening on https for httpproxy
2017-07-24 18:30:34 -07:00
51d7786050 etcdmain: create self-signed certs when listening on https for httpproxy
Fixes failures from TestCtlV3PutClientAutoTLS in proxy coverage tests.
2017-07-24 15:37:05 -07:00
dfd3ef42cf Merge pull request #8297 from fanminshi/fix_txn_ctl
etcdctl:  print "del" instead of "delete" in txn interactive mode
2017-07-24 14:05:14 -07:00
09f67a0d5e e2e: change expectatation string in ctlTxn 2017-07-24 10:51:31 -07:00
e9a7f3551b Merge pull request #8281 from heyitsanthony/san-rdns
transport: use reverse lookup to match wildcard DNS SAN
2017-07-22 08:02:57 -07:00
e9d5f75323 e2e/docker: docker image for testing wildcard DNS 2017-07-21 17:14:50 -07:00
52dd13fa35 fixtures: generate wildcard DNS SAN cert
DNS: *.etcd.local
2017-07-21 16:43:26 -07:00
b1aa962233 transport: use reverse lookup to match wildcard DNS SAN
Fixes #8268
2017-07-21 16:43:25 -07:00
bb0e144b43 etcdctl: print "del" instead of "delete" in txn interactive mode 2017-07-21 14:31:39 -07:00
2eb9353019 Merge pull request #8277 from heyitsanthony/test-e2e-grpcproxy
e2e grpcproxy tests
2017-07-21 12:57:25 -07:00
954ec4d1a5 e2e: fix range indexing for args2env conversion
Was dropping the last argument in the slice.
2017-07-21 11:00:23 -07:00
107828d777 test: support -tags cluster_proxy for e2e tests 2017-07-21 11:00:22 -07:00
1dcae41b20 grpcproxy: return nil on receiving snapshot EOF
Gets "code = OutOfRange desc = EOF" errors otherwise.
2017-07-21 11:00:22 -07:00
c5447c2ec9 etcdmain: support crl in grpcproxy 2017-07-21 11:00:22 -07:00
efbee9d8c7 etcdmain: support --auto-tls and --insecure-skip-verify in grpcproxy 2017-07-21 11:00:22 -07:00
1365f87d40 etcdmain: cleanup grpcproxy; support different certs for proxy/etcd
Enables TLS termination in grpcproxy.
2017-07-21 11:00:22 -07:00
d5a0d4d696 etcdmain, embed: --auto-peer-tls and --auto-tls for v2 proxy
Fixes #7930
2017-07-21 11:00:22 -07:00
5d6c6ad20e etcdmain: use client tls info for v2 proxy client connections
Was defaulting to PeerTLSInfo for client connections to the etcd cluster.
Since proxy users may rely on this behavior, only use the client tls
info if given, and fall back to peer tls otherwise.
2017-07-21 11:00:22 -07:00
426ad25924 transport: include InsecureSkipVerify in TLSInfo
Some functions take a TLSInfo to generate a tls.Config and there was no
way to force the InsecureSkipVerify flag.
2017-07-21 11:00:22 -07:00
7c22d35dff etcdmain: support grpc-proxy/gateway compiled with -tags cov 2017-07-21 11:00:22 -07:00
5c6a6bdc5a e2e: refactor to support -tags cluster_proxy 2017-07-21 11:00:22 -07:00
a92ceeec25 raft: introduce/fix TestNodeWithSmallerTermCanCompleteElection
TestNodeWithSmallerTermCanCompleteElection tests the scenario where a
node that has been partitioned away (and fallen behind) rejoins the
cluster at about the same time the leader node gets partitioned away.
Previously the cluster would come to a standstill when run with PreVote
enabled.

When responding to Msg{Pre,}Vote messages we now include the term from
the message, not the local term. To see why consider the case where a
single node was previously partitioned away and it's local term is now
of date. If we include the local term (recall that for pre-votes we
don't update the local term), the (pre-)campaigning node on the other
end will proceed to ignore the message (it ignores all out of date
messages).
The term in the original message and current local term are the same in
the case of regular votes, but different for pre-votes.

NB: Had to change TestRecvMsgVote to include pb.Message.Term when
sending MsgVote messages. The new sanity checks on MsgVoteResp
(m.Term != 0) would panic with the old test as raft.Term would be equal
to 0 when responding with MsgVoteResp messages.
2017-07-21 02:26:02 -04:00
488df4db34 proxy: don't inc a cache miss count in a case of linearizable range
Requests of linearizable range don't touch the cache of grpcproxy. So
incrementing the miss count wouldn't be meaningful.
2017-07-20 21:51:10 -07:00
a64d15eeed Merge pull request #8286 from heyitsanthony/wal-check-locks
wal: fall back to closing wal if locked dir rename fails
2017-07-20 18:52:08 -07:00
2c4e22fd43 docs: link fix. 2017-07-20 13:35:55 -07:00
fe1ddab714 wal: fall back to closing wal if locked dir rename fails
Detecting windows at compile time isn't enough since etcd might be
on linux but the fs is backed by windows.

Fixes: #8178
Fixes: #6984
2017-07-20 13:30:41 -07:00
fb717aec9b Merge pull request #8280 from jpbetz/compaction-metrics
mvcc: Add metric for count of db key revisions compacted.
2017-07-20 13:16:39 -07:00
01a49a9f7e docs: slight rearranging of top two sections. 2017-07-20 12:04:05 -07:00
c06953ae08 mvcc: Add metric for count of db key revisions compacted.
When digging into etcd/boltdb "storage space exceeded" issues, this metric may help answer questions about if/when compactions occured and how much data was freed.
2017-07-20 10:07:56 -07:00
46ee06a85c Merge pull request #8284 from heyitsanthony/whitelist-close
testutil: whitelist os.(*file).close
2017-07-19 21:32:55 -07:00
887df72d13 clientv3/ordering: kv order caching 2017-07-19 21:40:50 -04:00
cfbf666dd4 Merge pull request #8285 from gyuho/news
NEWS: add v3.2.4
2017-07-19 14:51:36 -07:00
55d445b891 NEWS: add v3.2.4
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-07-19 14:39:43 -07:00
bb42d2b40e testutil: whitelist os.(*file).close
Leak detector is catching goroutines trying to close files which appear
runtime related:

1 instances of:
syscall.Syscall(...)
	/usr/local/golang/1.8.3/go/src/syscall/asm_linux_386.s:20 +0x5
syscall.Close(...)
	/usr/local/golang/1.8.3/go/src/syscall/zsyscall_linux_386.go:296 +0x3d
os.(*file).close(...)
	/usr/local/golang/1.8.3/go/src/os/file_unix.go:140 +0x62

It's unlikely a user goroutine will leak on file close; whitelist it.
2017-07-19 13:28:15 -07:00
608df0fc90 Merge pull request #8272 from gyuho/health
/health reports unhealthy when alarm is raised
2017-07-18 16:15:08 -07:00
9dc65936b1 Merge pull request #8279 from gyuho/aaa
contrib/raftexample: use bytes.Buffer.String (no 'string()')
2017-07-18 16:09:17 -07:00
f78498b42a contrib/raftexample: use bytes.Buffer.String (no 'string()')
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-07-18 16:06:22 -07:00
91470a8a54 e2e: test '/health' when alarm is raised 2017-07-18 15:51:30 -07:00
61a736a068 etcdserver: check alarms in health handler
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-07-18 15:51:28 -07:00
d8481c9fda Merge pull request #8278 from gyuho/cherry-pick
Documentation/integrations: add 'networking-vpp', raft lib users
2017-07-18 15:50:03 -07:00
45206b6edf Documentation/integrations: add link to etcd raft lib users 2017-07-18 15:47:42 -07:00
21232017fa Documentation/integrations: add 'networking-vpp' 2017-07-18 15:44:39 -07:00
82126a742e Merge pull request #8274 from lclarkmichalek/patch-2
Add lclarkmichalek/etcdhcp to integrations list
2017-07-18 09:25:09 -07:00
ebb7649e3d Documentation: Add lclarkmichalek/etcdhcp to integrations list 2017-07-18 17:01:28 +01:00
9ce7bb6a1c Merge pull request #8267 from gyuho/close-server
embed: wait up to request-timeout for pending RPCs when closing
2017-07-14 18:51:54 -07:00
fbb75d24a4 v3rpc: add HashKV to server rpc 2017-07-14 16:44:00 -07:00
3dcd2cdcb4 doc: update rpc swagger for HashKV rpc and its req/resp 2017-07-14 16:42:04 -07:00
ed052ce9a3 proto: add HashKV grpc
HashKV rpc hash of all MVCC keys up to a given revision for a given node.
2017-07-14 16:41:23 -07:00
34fd848a4f integration: test embed.Etcd.Close with watch
Ensure 'Close' returns in time when there are open
connections (watch streams).

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-07-14 15:32:08 -07:00
334554f655 embed: wait up to request timeout for pending RPCs when closing
Both grpc.Server.Stop and grpc.Server.GracefulStop close the listeners
first, to stop accepting the new connections. GracefulStop blocks until
all clients close their open transports(connections). Unary RPCs
only take a few seconds to finish. Stream RPCs, like watch, might never
close the connections from client side, thus making gRPC server wait
forever.

This patch still calls GracefulStop, but waits up to 10s before manually
closing the open transports.

Address https://github.com/coreos/etcd/issues/8224.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-07-14 15:31:40 -07:00
d28334831d Merge pull request #8242 from gyuho/ppp
*: support additional '/metrics' endpoints
2017-07-14 15:06:15 -07:00
c47d4450c7 etcdmain/grpc-proxy: add 'metrics-addr' option
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-07-14 11:14:09 -07:00
8463b377d9 etcdmain: add 'listen-metrics-urls' option
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-07-14 11:14:09 -07:00
9bb5ede659 embed: configure 'ListenMetricsUrls'
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-07-14 11:14:05 -07:00
511f4d5c99 Merge pull request #8266 from heyitsanthony/fix-contributing-irc
Documentation: point contributing irc channel to #etcd
2017-07-14 11:06:39 -07:00
89e4b62a01 Documentation: point contributing irc channel to #etcd 2017-07-14 10:56:09 -07:00
5133d8e993 Merge pull request #8265 from gyuho/news
NEWS: add v3.1.10, v3.2.3
2017-07-14 10:55:03 -07:00
fe0941426d NEWS: add v3.1.10, v3.2.3
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-07-14 09:57:20 -07:00
858938e32d Merge pull request #8259 from heyitsanthony/etcdctl-err-space
etcdctl: remove extra space in error message
2017-07-14 09:55:06 -07:00
7ff1e8f3bb Merge pull request #8261 from heyitsanthony/fix-test-leasettl
integration: sync lapi server after puts in TestLeaseTimeToLive
2017-07-13 21:31:18 -07:00
755270fa6a integration: sync lapi server after puts in TestLeaseTimeToLive
Linearized read to ensure the keys have committed.
2017-07-13 14:55:43 -07:00
3614c5185d e2e: update tests to use single space for etcdctl errors 2017-07-13 14:27:46 -07:00
28b4dce4f1 etcdctl: remove extra space in error message
Fprintln will insert a space between arguments, so printing "Error: "
would lead to two spaces between the "Error:" and the error string.
2017-07-13 13:04:21 -07:00
3dd7de3908 Merge pull request #8252 from gyuho/test-functional
test: sync with etcd-agent start in functional_pass
2017-07-13 11:13:26 -07:00
14401021ee Merge pull request #8251 from heyitsanthony/whitelist-wg-done
testutil: whitelist WaitGroup.Done
2017-07-13 09:26:15 -07:00
02585157f6 test: sync with etcd-agent start in functional_pass
Fix https://github.com/coreos/etcd/issues/8211.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-07-13 09:17:42 -07:00
026e05518e testutil: whitelist WaitGroup.Done
Calling a WaitGroup.Done() in a defer will sometimes trigger the leak
detector since the WaitGroup.Wait() will unblock before the defer
block completes. If the leak detector runs before the Done() is
rescheduled, it will spuriously report the finishing Done() as a leak.
This happens enough in CI to be irritating; whitelist it and ignore.
2017-07-12 14:04:24 -07:00
17be3b551a Merge pull request #8250 from heyitsanthony/reorg-op-guide
Documentation, op-guide: reorganize etcd operation section
2017-07-12 13:28:00 -07:00
1b4f8d9904 Documentation, op-guide: reorganize etcd operation section
Reorganizes sections in README.md, slightly changes some titles, puts
sections at a consistent depth.
2017-07-12 12:13:06 -07:00
fd3516f283 Merge pull request #8249 from gyuho/patch
Documentation: refer to LeaseKeepAliveRequest for lease refresh
2017-07-12 09:50:25 -07:00
1e72ace38d Documentation: refer to LeaseKeepAliveRequest for lease refresh 2017-07-12 09:29:24 -07:00
0a2b580f73 Merge pull request #8238 from yudai/allow_more_streams
v3rpc: Let clients establish unlimited streams
2017-07-11 18:21:09 -07:00
148ed90b0d Merge pull request #8245 from heyitsanthony/doc-json-prefix-range
dev-guide: document using range_end for prefixes with json
2017-07-11 18:10:23 -07:00
ae33c5e82a Merge pull request #8244 from heyitsanthony/bridge-default-passthrough
bridge: make pass-through the default
2017-07-11 18:10:06 -07:00
52101e6e93 v3rpc: Let clients establish unlimited streams
From go-grpc v1.2.0, the number of max streams per client is set to 100
by default by the server side. This change makes it impossible
for third party proxies and custom clients to establish many streams.
2017-07-11 13:02:01 -07:00
da2f4bb25d dev-guide: document using range_end for prefixes with json
Lack of a range_end example has caused some confusion.
2017-07-11 11:23:07 -07:00
39f4502cc0 local-tester: use new bridge flags 2017-07-11 10:42:31 -07:00
07bc71b87c bridge: make pass-through the default
Setting only latency options is a pain since every fault must
be disabled on the command line. Instead, by default start
as a standard bridge without any fault injection.
2017-07-11 10:42:31 -07:00
1010b82de2 Merge pull request #8236 from heyitsanthony/v2http-split
*: move v2http handlers without /v2 prefix to etcdhttp
2017-07-10 09:08:03 -07:00
acfde8aba0 Merge pull request #8199 from sakshamsharma/clientv3-keep-alive
clientv3: add keep-alive to connection
2017-07-08 16:32:35 -07:00
e29db923bc *: move v2http handlers without /v2 prefix to etcdhttp
Lets --enable-v2=false configurations provide /metrics, /health, etc.

Fixes #8167
2017-07-07 18:35:57 -07:00
97f37e42e6 Merge pull request #8213 from heyitsanthony/nil-endrev
mvcc: don't allocate end revision while computing range
2017-07-07 15:56:08 -07:00
91dbebfeb2 Merge pull request #8233 from gyuho/version-bump
version: bump up to 3.2.0+git
2017-07-07 15:36:30 -07:00
e51c34124c version: bump up to 3.2.0+git
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-07-07 14:16:44 -07:00
69e8a9241a Merge pull request #8232 from gyuho/NEWS
NEWS: add v3.2.2
2017-07-07 13:49:22 -07:00
64840adf70 Merge pull request #8135 from radhikapc/local-cluster
dev-guide: clarify concepts in local_cluster doc
2017-07-07 09:56:31 -07:00
9391c06004 NEWS: add v3.2.2
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-07-07 09:32:39 -07:00
68eb96e985 dev-guide: clarify concepts in local_cluster doc 2017-07-07 09:28:08 -07:00
4e897529c2 Merge pull request #8229 from jseldess/link-update
Documentation/learning/why: Update link to CockroachDB
2017-07-07 09:02:47 -07:00
4caf9fc7fa Documentation/learning/why: Update link to CockroachDB
Since we implemented docs versioning, the default url is
https://cockroachlabs.com/docs/stable instead of
https://cockroachlabs.com/docs. We have a redirect in place
from /docs to /docs/stable, so existing links aren't broken,
but it's a better user experience to bypass the redirect.
2017-07-07 18:01:12 +02:00
67fa8b823f Merge pull request #8223 from heyitsanthony/ip-san-exit
transport: accept connection if matched IP SAN but no DNS match
2017-07-06 22:46:09 -07:00
e6f4563ea1 Merge pull request #8222 from heyitsanthony/fix-experimental-doc
dev-guide: update experimental APIs
2017-07-06 19:56:10 -07:00
eacb46bf50 Merge pull request #8221 from heyitsanthony/gateway-user-listen-address
embed: connect json gateway with user-provided listen address
2017-07-06 19:50:34 -07:00
00aede4a39 Merge pull request #8219 from heyitsanthony/test-times
test: bump grpcproxy timeout to 20m, print pass times
2017-07-06 19:46:23 -07:00
ab95eb0795 transport: accept connection if matched IP SAN but no DNS match
The IP SAN check would always do a DNS SAN check if DNS is given
and the connection's IP is verified. Instead, don't check DNS
entries if there's a matching iP.

Fixes #8206
2017-07-06 16:11:53 -07:00
e9d096ae6b mvcc: don't allocate end revision while computing range
Use 'nil' since it's only reading a single key. Also preallocates
the result slice based on limit / number of revisions fetched.

Fixes #8208
2017-07-06 15:59:27 -07:00
b8bc005e60 dev-guide: update experimental APIs
No experimental APIs at the moment.

Fixes #8212
2017-07-06 15:45:40 -07:00
63350f5ac1 embed: connect json gateway with user-provided listen address
net.Listener says its address is [::] when given 0.0.0.0, breaking
hosts that have ipv6 disabled.

Fixes #8151
Fixes #7961
2017-07-06 14:24:29 -07:00
2e7615281e Merge pull request #8210 from gyuho/bbolt
*: use 'coreos/bbolt' (replace 'boltdb/bolt')
2017-07-06 13:00:21 -07:00
a57405a958 Merge pull request #8153 from gyuho/leadership-transfer
*: expose Leadership Transfer API to clients
2017-07-06 13:00:08 -07:00
2a30a754e9 clientv3: add keep-alive to connection
this makes the grpc client connection use a keep-alive.
2017-07-06 12:55:52 -07:00
a2a80cb1bf test: bump grpcproxy timeout to 20m, print pass times 2017-07-06 12:51:24 -07:00
d48e59e389 Merge pull request #8201 from arthurkiller/master
concurrency: fix typo in Serializable godoc
2017-07-06 11:03:55 -07:00
4df1970188 concurrency: fix typo in Serializable godoc 2017-07-06 12:57:55 +08:00
870302afa6 mvcc/backend: enable 'NoFreelistSync' by default (linux)
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-07-05 16:10:04 -07:00
89ced7c0c9 bill-of-materials.json: regenerate with 'coreos/bbolt'
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-07-05 14:35:25 -07:00
2b9bfda1d5 vendor: regenerate
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-07-05 14:34:54 -07:00
318e9c766f *: replace 'boltdb' import paths with 'coreos/bbolt'
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-07-05 14:32:13 -07:00
75665c0fd0 glide.yaml: replace 'boltdb/bolt' with 'coreos/bbolt'
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-07-05 14:29:31 -07:00
894751ef44 Merge pull request #8164 from mitake/auth-granted-keys
allow users to know their roles and permissions
2017-07-05 12:26:59 -07:00
1408b337b6 Merge pull request #8200 from huikang/fix-typo-doc
Documentation: cleanup and fix some typo
2017-06-30 22:03:43 -07:00
663f8835cf Documentation: cleanup and fix some typo
Signed-off-by: Hui Kang <kangh@us.ibm.com>
2017-06-30 20:41:25 -04:00
b7cf080e2c Merge pull request #8198 from xiang90/n
NEWS: clarify the corruption problem
2017-06-30 15:01:35 -07:00
cc114caddd NEWS: clearify the corruption problem 2017-06-30 14:19:51 -07:00
673c6f0650 Merge pull request #8194 from gyuho/lease
lease: fix racey access to 'leaseRevokeRate'
2017-06-30 11:18:21 -07:00
8d41820741 lease: stop lessors after tests
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-30 10:13:36 -07:00
36c655f29b Merge pull request #8170 from gyuho/v2-docs
Documentation/v2: 'etcd v2' to the title
2017-06-29 16:24:31 -07:00
49fe77eea0 Documentation/v2: 'etcd v2' to the title
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-29 16:10:05 -07:00
7ab442f8c5 Merge pull request #8183 from yudai/fix_revision_compactor_test_race
compactor: Fix data race in revision compactor test
2017-06-27 14:33:08 -07:00
c678dcbd91 compactor: Fix data race in revision compactor test
Use atomic functions to manipulate `rev` of `fakeRevGetter`
so that the tester goroutine can update the
value without race with the compactor's goroutine.
2017-06-27 13:51:40 -07:00
4dd7ef0a60 Merge pull request #8176 from huikang/fixing-typo-faq
Documentation/faq: fix typo in flag names
2017-06-27 13:20:56 -07:00
625c67f5c5 Documentation/faq: fix typo in flag names
Signed-off-by: Hui Kang <kangh@us.ibm.com>
2017-06-27 16:04:03 -04:00
db595887cf e2e: add test cases for getting user and role information of user itself 2017-06-26 22:20:46 -07:00
e0c33ef881 auth, etcdserver: allow users to know their roles and permissions
Current UserGet() and RoleGet() RPCs require admin permission. It
means that users cannot know which roles they belong to and what
permissions the roles have. This commit change the semantics and now
users can know their roles and permissions.
2017-06-26 22:20:41 -07:00
86eced670c Merge pull request #8177 from gyuho/NEWS
NEWS: add v3.2.1
2017-06-26 13:13:56 -07:00
54a75f9431 NEWS: add v3.2.1
Highlights some important bug fixes + user facing
changes in debugging metrics.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-26 06:55:53 -07:00
703663d1f6 Merge pull request #8163 from huikang/stm-comment-update
Default stm isolation level is serializable snapshot isolation
2017-06-25 18:50:32 -07:00
204c4aa0b0 Merge pull request #7987 from smetro/disable_proposal_forwarding
raft: add DisableProposalForwarding option
2017-06-24 00:02:22 -07:00
6ea5676db4 Merge pull request #8145 from mitake/non-authorized-rpcs
integration: add a test case for non authorized RPCs
2017-06-24 11:51:47 +09:00
d4289588ac e2e: test 'move-leader' command
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-23 13:19:16 -07:00
6e9b776fce etcdctl/ctlv3: add 'move-leader' command
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-23 13:19:12 -07:00
581a83dfd9 clientv3/*: add 'MoveLeader' method to 'Maintenance'
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-23 13:07:17 -07:00
c5532dd2a2 integration: test 'MoveLeader' service
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-23 12:53:22 -07:00
403ba1dfa7 etcdserver: expose 'transferLeadership' as 'MoveLeader'
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-23 12:51:28 -07:00
3e263d5a4d proxy/*: add 'MoveLeader' RPC
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-23 12:51:27 -07:00
b1a0ae3a3e etcdserver/api/v3rpc: add 'MoveLeader' to 'maintenanceServer'
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-23 12:51:24 -07:00
939bbd77c0 etcdserver/*: add 'ErrNotLeader'
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-23 12:46:07 -07:00
265303c19a *: regenerate proto with 'MoveLeader' RPC
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-23 12:45:53 -07:00
d82f2572a4 etcdserver/etcdserverpb: define 'MoveLeader' RPC
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-23 12:43:29 -07:00
7fffd8b827 concurrency: comment the default stm isolation level is serializable snapshot
Default stm isolation level is serializable snapshot isolation, which
is different than snapshot isolation (SI)

Signed-off-by: Hui Kang <kangh@us.ibm.com>
2017-06-22 22:24:17 -04:00
47a8156851 Merge pull request #8161 from heyitsanthony/fix-watchcancel-test
clientv3/integration: wait for leader before trying to count watches
2017-06-22 18:12:30 -07:00
0fe8fdcb29 Merge pull request #8123 from yudai/revision_compactor
Compactor: Add Revisional compactor
2017-06-22 16:34:28 -07:00
4d6174f770 Merge pull request #8160 from gyuho/ggg
vendor: upgrade grpc-go to 1.4.2
2017-06-22 16:17:19 -07:00
4c43fb83df Merge pull request #8159 from heyitsanthony/crl-test-fix
e2e: accept more kinds of errors in CRL test
2017-06-22 15:59:26 -07:00
9e574afb84 clientv3/integration: wait for leader before trying to count watches
Fixes #8044
2017-06-22 15:02:41 -07:00
861ebe6950 vendor: upgrade grpc-go to 1.4.2
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-22 14:26:45 -07:00
f7df3c80d5 Merge pull request #8149 from heyitsanthony/lease-sort-promote
lessor: extend leases on promote if expires will be rate limited
2017-06-22 13:31:34 -07:00
e22d00a9f1 e2e: accept more kinds of errors in CRL test
Semaphore is failing with context exceeded errors and dial timeouts, only
returning an "Error: ..." from expect on etcdctl. So, only test for
"Error:" instead of grpc internal errors.
2017-06-22 13:27:36 -07:00
cdc7d77beb Merge pull request #8158 from gyuho/fix
etcdctl/ctlv3: remove unnecessary 'return'
2017-06-22 12:47:49 -07:00
f2d8929a09 etcdctl/ctlv3: remove unnecessary 'return'
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-22 12:24:00 -07:00
ac061671d5 Revert "integration: remove lease exist checking on randomized expiry"
This reverts commit 95bc33f37f. The new
lease extension algorithm should pass this test.
2017-06-22 11:25:45 -07:00
c38c00f7c3 lessor: extend leases on promote if expires will be rate limited
Instead of unconditionally randomizing, extend leases on promotion
if too many leases expire within the same time span. If the server
has few leases or spread out expires, there will be no extension.
2017-06-22 11:25:34 -07:00
310a09691f Merge pull request #8150 from heyitsanthony/update-db-size-defrag
mvcc: use GaugeFunc metric to load db size when requested
2017-06-22 09:38:00 -07:00
522e75cb4f mvcc: use GaugeFunc metric to load db size when requested
Relying on mvcc to set the db size metric can cause it to
miss size changes when a txn commits after the last write
completes before a quiescent period. Instead, load the
db size on demand.

Fixes #8146
2017-06-21 23:58:37 -07:00
4e6c77185b integration: test mvcc db size metric is updated following defrag 2017-06-21 22:59:48 -07:00
9cb12deca6 Merge pull request #8102 from heyitsanthony/txn-nested
api: nested txns
2017-06-21 19:56:43 -07:00
6fe2249bcd integration: add a test case for non authorized RPCs
This commit add a new test case which ensures that non authorized RPCs
failed with ErrUserEmpty. The case can happen in a schedule like
below:
1. create a cluster
2. create clients
3. enable authentication of the cluster
4. the clients issue RPCs

Fix https://github.com/coreos/etcd/issues/7770
2017-06-22 11:35:37 +09:00
23c816718a Merge pull request #8143 from heyitsanthony/endpoint-all
etcdctl: use cluster endpoints when passed --cluster
2017-06-21 16:11:13 -07:00
a3f8f47422 *: add Revision compactor 2017-06-21 15:41:07 -07:00
e461017ac5 raft: add DisableProposalForwarding option
this allows users to disable followers from forwarding proposals to the
leader.
2017-06-21 14:58:28 -07:00
b10ea20113 namespace: support nested txns 2017-06-21 14:33:16 -07:00
f465e3ea8a grpcproxy: support nested txns 2017-06-21 14:33:15 -07:00
f400010028 clientv3/integration: test clientv3 nested txns 2017-06-21 14:33:15 -07:00
f8dbcd86ec clientv3: support nested Txns with OpTxn 2017-06-21 14:33:15 -07:00
0dd4c2ac69 integration: test grpc nested txns 2017-06-21 14:33:15 -07:00
6ed51dc621 etcdserver, v3rpc: support nested txns 2017-06-21 14:33:15 -07:00
5c7efaa288 adt: Union for interval trees 2017-06-21 14:33:15 -07:00
822473bc31 etcdserverpb: add txns to requestop/responseop 2017-06-21 14:33:15 -07:00
8b09309c81 Merge pull request #8147 from gyuho/monitoring
Documentation: use 'etcd_disk_' metrics in monitoring
2017-06-21 14:07:18 -07:00
1a2be432c5 etcdctl: --cluster flag using cluster endpoints for endpoint commands
Queries the cluster for endpoints to use for the endpoint commands.

Fixes #8117
2017-06-21 13:55:23 -07:00
7ebcfcf871 Documentation: use 'etcd_disk_' metrics in monitoring
Rather than 'etcd_debugging_' ones that might change
in the future.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-21 12:35:08 -07:00
a40cdc7baa Merge pull request #8142 from gyuho/a
Documentation/release: sign *.aci files
2017-06-20 16:57:53 -07:00
20881bde05 Merge pull request #8128 from gyuho/functional-tester
*: run basic functional-tester cases to test script
2017-06-20 16:20:11 -07:00
6e31901108 test: run basic functional tests
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-20 16:04:51 -07:00
7689a2535e etcd-tester: add 'exit-on-failure'
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-20 16:04:48 -07:00
ca6d7bd836 Documentation/release: sign *.aci files
Thanks to
https://github.com/coreos/etcd/issues/8085#issuecomment-308232300.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-20 14:18:19 -07:00
1df8b90d67 Merge pull request #8121 from gyuho/health-check-service
*: add basic health check service
2017-06-20 13:07:52 -07:00
8ce2c79197 integration: add 'HealthClient.Check' test
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-20 13:02:11 -07:00
117a83c1bf Merge pull request #8140 from heyitsanthony/doc-curl-auth
dev-guide: add authentication example for grpc/json
2017-06-20 10:59:39 -07:00
30029c0019 Merge pull request #8124 from heyitsanthony/crl
reject connections based on CRL file
2017-06-20 10:52:41 -07:00
c1e3172e3a etcdserver/api/v3rpc: add default grpc health service 2017-06-20 10:48:06 -07:00
71e6fe183f vendor: add 'grpc/health/*' 2017-06-20 10:48:06 -07:00
ac62c6c811 Merge pull request #8133 from gyuho/release-test
test: 'FAIL' on release binary download failure
2017-06-20 10:46:11 -07:00
8837719a8d dev-guide: add authentication example for grpc/json 2017-06-20 10:12:17 -07:00
41e26f741b e2e: test rejecting CRL'd client certs 2017-06-19 15:23:41 -07:00
798b14979c fixtures: add gencerts.sh, generate CRL 2017-06-19 15:23:41 -07:00
87d16af2e2 embed: use transport TLS listener for client listener for CRLs 2017-06-19 15:23:41 -07:00
7d7d1ae6a0 etcdmain: configure CRL file through command line 2017-06-19 15:23:41 -07:00
322976bedc transport: CRL checking 2017-06-19 15:23:41 -07:00
a65e3c69a6 Merge pull request #8122 from yudai/fast_fail_proxy
grpcproxy: Disable fast fail on lease grant call to cluster
2017-06-19 15:04:25 -07:00
66f553a96b Merge pull request #8127 from heyitsanthony/fix-restore
mvcc: restore into tree index with one key index
2017-06-19 12:58:18 -07:00
8f8f550443 test: 'FAIL' on release binary download failure
I see CI is failing to download release binaries
but exit code doesn't trigger CI job failure.

We need 'FAIL' string.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-19 12:52:02 -07:00
51a568aa81 mvcc: restore into tree index with one key index
Clobbering the mvcc kvindex with new keyIndexes for each restore
chunk would cause index corruption by dropping historical information.
2017-06-19 12:04:01 -07:00
02164874d9 mvcc: test restore and deletes with small chunk sizes 2017-06-19 12:04:01 -07:00
45fbac5544 Merge pull request #8025 from heyitsanthony/txn-cmp-range
api: txn comparisons on ranges
2017-06-18 11:11:43 -07:00
df2cc4bc8c grpcproxy: Disable fast fail on lease grant call to cluster
Problem Observed
----------------

When there is no etcd process behind the proxy,
clients repeat resending lease grant requests without delay.
This behavior can cause abnormal resource consumption on CPU/RAM and
network.

Problem Detail
--------------

`LeaseGrant()` uses a bare protobuf client to forward requests.
However, it doesn't use `grpc.FailFast(false)`, which means the method returns
an `Unavailable` error immediately when no etcd process is available.
In clientv3, `Unavailable` errors are not considered the "Halt" error,
and library retries the request without delay.
Both clients and the proxy consume much CPU cycles to process retry requests.

Resolution
----------

Add `grpc.FailFast(false))` to `LeaseGrant()` of the `leaseProxy`.
This makes the proxy not to return immediately when no etcd process is
available. Clients will simply timeout requests instead.
2017-06-16 15:09:05 -07:00
e475a4ea71 Merge pull request #8120 from heyitsanthony/restore-set-size-metric
mvcc: set db size metric on restore
2017-06-16 12:37:08 -07:00
8f34d0c8b6 clientv3/integration: test compare on range 2017-06-16 12:13:27 -07:00
7ff6e62c56 namespace: prefix comparison range_end 2017-06-16 12:13:27 -07:00
aeb2dc03aa grpcproxy: invalidate cache on comparison range 2017-06-16 12:13:27 -07:00
fcf1abd23b clientv3: compare helper functions to set range/prefix 2017-06-16 12:13:27 -07:00
fafb054624 integration: test txn range comparisons 2017-06-16 12:13:27 -07:00
8d7c29c732 etcdserver, etcdserverpb: Txn.Compare range_end support 2017-06-16 12:13:27 -07:00
7f149d8fb6 mvcc: set db size metric on restore
Fixes #8080
2017-06-16 11:27:34 -07:00
a825709940 integration: test mvcc db size metric is set on restore 2017-06-16 11:27:07 -07:00
1acc8090e3 Merge pull request #8110 from heyitsanthony/fix-test-sync-timeout
etcdserver: use RecorderStream for TestSyncTimeout to avoid missing action
2017-06-15 20:49:10 -07:00
e962b0c849 Merge pull request #7909 from heyitsanthony/unptr-cfg
etcdserver, embed, integration: don't use pointer for ServerConfig
2017-06-15 20:47:30 -07:00
44a6c2121b Merge pull request #7999 from hexfusion/grpc-gateway-auth
auth: support "authorization" token for grpc-gateway
2017-06-15 19:22:00 -07:00
8fa96cb303 Merge pull request #8113 from heyitsanthony/code-of-conduct
*: add code of conduct
2017-06-15 19:18:24 -07:00
42584f84b4 *: add code of conduct
github community insights complains there isn't one
2017-06-15 17:04:45 -07:00
03ab4d9cc5 Merge pull request #8108 from radhikapc/building-qa
etcd/Documentation/dl_build.md: removed an extra step for testing etcd
2017-06-15 16:48:50 -07:00
5fedaf2dd7 Merge pull request #7896 from gyuho/metadata-grpc
*: gRPC v1.4.1, gateway v1.2.2, metadata Incoming/OutgoingContext
2017-06-15 16:42:55 -07:00
5e059fd8dc *: use metadata Incoming/OutgoingContext
Fix https://github.com/coreos/etcd/issues/7888.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-15 16:41:23 -07:00
0d0c0f3959 bill-of-materials: add google.golang.org/genproto
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-15 16:41:23 -07:00
5fe58228b4 vendor: update grpc-go v1.4.1, grpc-gateway v1.2.2
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-15 16:41:19 -07:00
b9a53db0c2 Merge pull request #8101 from gyuho/randomize-renew
lease: randomize expiry on initial refresh call
2017-06-15 16:29:47 -07:00
639687bb89 Merge pull request #8112 from gyuho/speakeasy-dep
vendor: use tagged release 'bgentry/speakeasy'
2017-06-15 16:10:21 -07:00
15b86d064d vendor: use tagged release 'bgentry/speakeasy'
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-15 16:09:46 -07:00
b6b56160cd Merge pull request #8111 from heyitsanthony/version-probing
vendor: update glide.yaml to use probing 0.0.1
2017-06-15 16:02:09 -07:00
703893f334 Merge pull request #8109 from heyitsanthony/faq-initial-peers
Documentation: update FAQ with entry about changing peer advertising
2017-06-15 16:01:19 -07:00
099952136a Merge pull request #8107 from heyitsanthony/lock-faster
concurrency: fetch current lock holder when creating waitlist key
2017-06-15 15:12:08 -07:00
52afc03d68 Documentation: removed an extra step for testing etcd
removed an extra step for testing etce build that might confuse the user of the flow. minimal editing to the doc
2017-06-15 14:39:10 -07:00
6e74c335e2 vendor: update glide.yaml to use probing 0.0.1
Also ignores appengine import from the grpc-gateway examples which
were causing glide errors on x/crypto when fetching imports.
2017-06-15 14:22:20 -07:00
aa0e6b26c0 etcdserver: use RecorderStream for TestSyncTimeout to avoid missing action 2017-06-15 13:43:53 -07:00
44422f3898 Documentation: update FAQ with entry about changing peer advertising
Been seeing this somewhat frequently.
2017-06-15 13:31:25 -07:00
dcf52bbfac etcdserver, embed, integration: don't use pointer for ServerConfig
ServerConfig is owned by etdcserver and unshared, so don't pass or store by
pointer. Also removes duplicated field 'snapCount'.
2017-06-15 13:02:13 -07:00
95bc33f37f integration: remove lease exist checking on randomized expiry
Lease with TTL 5 should be renewed with randomization,
thus it's still possible to exist after 3 seconds.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-15 12:57:55 -07:00
5bba05703c lease: randomize expiry on initial refresh call
Randomize the very first expiry on lease recovery
to prevent recovered leases from expiring all at
the same time.

Address https://github.com/coreos/etcd/issues/8096.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-15 12:57:49 -07:00
037e33e833 Merge pull request #8093 from gyuho/grafana
Documentation/op-guide: fix failed RPC rate, leader election metrics
2017-06-15 11:59:03 -07:00
1748fe3eda Documentation/op-guide: fix failed RPC rate, leader election metrics
This fixes failed RPC rate query, where we do not need
subtraction because we already query by the status code.
Also adds grpc_method to make it more specific. Most of the
time, the failure recovers within 10-second, which is our
Prometheus scrap interval, so 'rate' query might not cover
that time window, showing as 0s, but still shows up in the graph.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-15 11:54:18 -07:00
f5b96991a1 concurrency: fetch current lock holder when creating waitlist key
The uncontended path for a mutex would fetch the minimum
revision key on the prefix after creating its entry in
the wait list. This fetch can be rolled into the txn for
creating the wait key, eliminating a round-trip for immediately
acquiring the lock.
2017-06-15 11:29:34 -07:00
1f206c027a Merge pull request #8106 from heyitsanthony/clarify-watch-comment
clientv3: clarify Watch close conditions
2017-06-15 10:56:25 -07:00
3a37b68cda Merge pull request #8105 from nkovacs/its
Documentation: grammar fixes, it's -> its
2017-06-15 10:46:20 -07:00
c27634c215 e2e: test auth over grpc json 2017-06-15 13:41:47 -04:00
e5aa938fec scripts: generate swagger with authorization support 2017-06-15 13:41:43 -04:00
13d9438cf9 clientv3: clarify Watch close conditions
The "too slow" comment is rather vague. If the server closes
the watch for being too slow (it doesn't seem to any more), the
watch client should gracefully resume instead of forcing the
user to handle it.

Also removed the 'opts' comment since it wasn't being maintained.
2017-06-15 09:34:00 -07:00
66687da3ba *: grammar fixes, it's -> its 2017-06-15 18:23:16 +02:00
0caab26310 auth: support "authorization" token for grpc-gateway 2017-06-14 20:11:39 -04:00
ee0c805de2 Merge pull request #8099 from gyuho/rate-limit-lease-expiration
lease: rate limit revoke runLoop
2017-06-14 15:39:58 -07:00
0011b78bd5 lease: rate limit revoke runLoop
Fix https://github.com/coreos/etcd/issues/8097.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-14 14:22:16 -07:00
e6d26675e6 Merge pull request #8090 from glevand/for-merge-aci
build-aci: Fix ACI image name
2017-06-14 08:41:58 -07:00
e402606f02 build-aci: Fix ACI image name
The appc discovery spec states that the architecture specifier in the ACI
image file name will be an ACI architecture value.  Our build scripts were
using GOARCH in the image name, which is incorrect for arm64/aarch64.
See: https://github.com/appc/spec/blob/master/spec/discovery.md

Fixes errors like these on arm64 machines:

  $ rkt --debug --insecure-options=image fetch coreos.com/etcd:v3.2.0-rc.1
  image: remote fetching from URL "https://github.com/coreos/etcd/releases/download/v3.2.0-rc.1/etcd-v3.2.0-rc.1-linux-aarch64.aci"
  fetch: bad HTTP status code: 404

Signed-off-by: Geoff Levand <geoff@infradead.org>
2017-06-13 13:09:02 -07:00
750dc7f157 Merge pull request #8088 from jbowens/snap-example
contrib/raftexample: save snapshot to WAL first
2017-06-13 12:44:13 -07:00
74e020b715 contrib/raftexample: save snapshot to WAL first
Save the snapshot index to the WAL before saving the snapshot to the
filesystem. This ensures that we'll only ever call wal.Open with a
snapshot that was previously saved to the WAL.
2017-06-13 11:24:07 -07:00
3993f37a26 Merge pull request #8081 from WIZARD-CXY/master
Documentation: alert.rules. fix labels bug
2017-06-13 10:56:04 -07:00
e006e2dbcb Merge pull request #8087 from gyuho/bom
bill-of-materials: regenerate with multi licenses
2017-06-13 10:46:06 -07:00
a7c33d48de bill-of-materials: regenerate with multi licenses
Fix https://github.com/coreos/etcd/issues/8086.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-13 10:25:29 -07:00
4445996a38 Merge pull request #8084 from heyitsanthony/update-protobuf
vendor: update github.com/{gogo,golang}/protobuf
2017-06-12 19:09:49 -07:00
5ae04259c4 Documentation: alert.rules. fix labels bug 2017-06-13 09:33:13 +08:00
b7741c6ecf Merge pull request #8083 from heyitsanthony/initial-cluster-warning
etcdserver: better warning when initial-cluster doesn't match advertise urls
2017-06-12 15:15:08 -07:00
4ebeba0e18 *: regen protofiles with latest protobuf tools 2017-06-12 15:14:43 -07:00
2afd0a726f vendor: update github.com/gogo/protobuf and github.com/golang/protobuf 2017-06-12 14:26:15 -07:00
7ff5b05004 etcdserver: better warning when initial-cluster doesn't match advertise urls
The old error was not clear about what URLs needed to be added, sometimes
truncating the list. To make it clearer, print out the missing entries
for --initial-cluster and print the full list of initial advertise peers.

Fixes #8079 and #7927
2017-06-12 14:14:16 -07:00
933aa09b73 Merge pull request #8070 from heyitsanthony/etcdctl-cluster-health
ctlv2: report unhealthy in cluster-health if any node is unavailable
2017-06-09 14:57:03 -07:00
3fcb8336aa e2e: update cluster-health test for new etcdctl output 2017-06-09 13:55:16 -07:00
b194276289 Merge pull request #8075 from gyuho/upgrade-doc
Documentation/upgrades: link to previous guides
2017-06-09 13:02:57 -07:00
7f3127441b Documentation/upgrades: link to previous guides
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-09 12:33:39 -07:00
3a6180d490 Merge pull request #8072 from heyitsanthony/auth-proxy-test
integration: test auth layer in grpc proxy tests
2017-06-09 11:32:27 -07:00
bdddbcc414 Merge pull request #8074 from heyitsanthony/no-limit-snapshot
rafthttp: permit very large v2 snapshots
2017-06-09 11:12:25 -07:00
84e6aaff66 Merge pull request #7995 from gyuho/NEWS
NEWS: add v3.2.0
2017-06-09 11:08:29 -07:00
d5b917daad Merge pull request #8069 from heyitsanthony/fix-watch-bench
benchmark: refactor watch benchmark
2017-06-09 11:04:20 -07:00
ad0b3cfdab ctlv2: report unhealthy in cluster-health if any node is unavailable
Fixes #8061 and #7032
2017-06-09 10:57:17 -07:00
9543431aeb rafthttp: permit very large v2 snapshots
v2 snapshots were hitting the 512MB message decode limit, causing
sending snapshots to new members to fail for being too big.
2017-06-09 10:41:27 -07:00
d6750158fb NEWS: add v3.2.0
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-09 10:37:27 -07:00
56841bbc5f Merge pull request #8071 from heyitsanthony/txn-rev
etcdserver: use same ReadView for read-only txns
2017-06-09 09:43:18 -07:00
798119ed6f integration: test auth layer in grpcproxy tests 2017-06-09 09:36:16 -07:00
5bb0a091fc adapter: auth server to client adapter 2017-06-09 09:36:16 -07:00
d173b09a1b etcdserver: use same ReadView for read-only txns
A read-only txn isn't serialized by raft, but it uses a fresh
read txn for every mvcc access prior to executing its request ops.
If a write txn modifies the keys matching the read txn's comparisons,
the read txn may return inconsistent results.

To fix, use the same read-only mvcc txn for the duration of the etcd
txn. Probably gets a modest txn speedup as well since there are
fewer read txn allocations.
2017-06-09 09:20:38 -07:00
da48f1feaf mvcc: create TxnWrites from TxnRead with NewReadOnlyTxnWrite
Already used internally by mvcc, but needed by etcdserver txns.
2017-06-09 09:20:38 -07:00
ad22aaa354 integration: test txn comparison and concurrent put ordering 2017-06-09 09:20:38 -07:00
3b460506d9 Merge pull request #8067 from gyuho/docker-doc
Documentation/op-guide: do not use host network, fix indentation
2017-06-09 09:14:00 -07:00
56db7e56f9 benchmark: refactor watch benchmark 2017-06-08 21:14:08 -07:00
a8c073c51e Merge pull request #8066 from fanminshi/keepAlive_Close_to_close
clientv3: change Close() to close() for keepAlive and watchGrpcStream
2017-06-08 14:59:24 -07:00
762b2c625c clientv3: change watchGrpcStream Close() to close()
private struct shouldn't have public method.
2017-06-08 12:11:06 -07:00
74a2b2e873 Documentation/op-guide: do not use host network, fix indentation
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-08 12:09:12 -07:00
2caae60004 Merge pull request #8062 from heyitsanthony/revert-v2machines
v2http: put back /v2/machines and mark as non-deprecated
2017-06-08 12:01:58 -07:00
4dff7aaa2a clientv3: change keepAlive Close() to close()
keepAlive is a private struct that belongs to clientv3 pkg and shouldn't expose a public Close() method.
2017-06-08 11:53:59 -07:00
9ffdb3a59e Merge pull request #8064 from gyuho/lease-expiration-metrics
etcdserver: add leaseExpired metrics
2017-06-08 11:13:52 -07:00
300feea177 Merge pull request #8052 from heyitsanthony/watch-victim-test
mvcc: test watch victim/delay path
2017-06-08 11:10:33 -07:00
45fd8279f0 etcdserver: add leaseExpired debugging metrics
Fix https://github.com/coreos/etcd/issues/8050.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-08 10:36:25 -07:00
d335821c51 Merge pull request #8063 from gyuho/met
Documentation/op-guide: fix 'grpc_code' field in metrics
2017-06-08 10:15:42 -07:00
c6330d86f1 Documentation/op-guide: fix 'grpc_code' field in metrics
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-08 09:43:30 -07:00
c2dadbd9f8 v2http: put back /v2/machines and mark as non-deprecated
This reverts commit 2bb33181b6. python-etcd
seems to depend on /v2/machines and the maintainer vanished. Plus, it is
prefixed with /v2/ so it probably can't be deprecated anyway.
2017-06-08 09:39:11 -07:00
eb3622942b Merge pull request #8055 from gyuho/aaa
Documentation/op-guide: fix markdown highlight syntax
2017-06-08 07:33:04 -07:00
fa4903c83c Merge pull request #8031 from mitake/lease-revoke-auth
protecting lease revoking with auth
2017-06-08 13:34:14 +09:00
aaa9e1735a Documentation/op-guide: fix markdown highlight syntax
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-07 20:36:22 -07:00
3df9352c00 Merge pull request #8054 from heyitsanthony/txn-metric
mvcc: count range/put/del operations for txns
2017-06-07 19:19:32 -07:00
8f8f79db56 Merge pull request #8053 from heyitsanthony/jwt-test
auth: JWT tests
2017-06-07 19:15:18 -07:00
7b68318284 integration: add test cases for lease revoking with auth 2017-06-07 17:46:14 -07:00
0c655902f2 auth, etcdserver: protect revoking lease with auth
Currently clients can revoke any lease without permission. This commit
lets etcdserver protect revoking with write permission.

This commit adds a mechanism for generating internal token. It is used
for indicating that LeaseRevoke was issued internally so it should be
able to delete any attached keys.
2017-06-07 17:46:14 -07:00
83b2ea2f60 mvcc: test watch victim/delay path
Current tests don't normally trigger the watch victim path because the
constants are too large; set the constants to small values and hammer
the store to cause watch delivery delays.
2017-06-07 17:02:00 -07:00
0352ce79b8 mvcc: count range/put/del operations for txns
Txns were previously only bumping the txn counter; now bumps all operation
counters.
2017-06-07 16:53:50 -07:00
8d8d1d225a auth: add JWT tests 2017-06-07 16:49:02 -07:00
fe727f3106 auth: reject empty signing method for JWT token provider 2017-06-07 16:49:02 -07:00
a36d62a30c Merge pull request #8049 from heyitsanthony/flock-base-test
fileutil: test some fallback functionality
2017-06-07 16:12:38 -07:00
29911195de Merge pull request #8046 from heyitsanthony/fix-falloc-0
fileutil: return immediately if preallocating 0 bytes
2017-06-07 11:55:27 -07:00
c3fcf0f339 fileutil: test some fallback functionality
syscall.Flock fallback and preallocExtendTrunc
2017-06-07 11:22:40 -07:00
09abea5784 Merge pull request #8047 from heyitsanthony/extra-cov
mvcc, v3rpc: minor coverage improvements
2017-06-07 10:50:30 -07:00
87a3c87e45 fileutil: return immediately if preallocating 0 bytes
fallocate will return EINVAL, causing zeroing to the end of a
0 byte file to fail.

Fixes #8045
2017-06-07 09:57:14 -07:00
fb086ef13f v3rpc: dedup resp.Header == nil checks 2017-06-07 09:25:42 -07:00
fd71da47d1 mvcc: remove unused store.Equals function 2017-06-07 09:25:42 -07:00
4c5f9e0910 Merge pull request #8043 from heyitsanthony/grpc-error
v3rpc: use map for translating errors to grpc errors
2017-06-07 09:13:17 -07:00
e12c7f6dd4 Merge pull request #8042 from heyitsanthony/auth-tests
e2e: add role get and role list e2e tests
2017-06-06 21:51:41 -07:00
8542f2e673 v3rpc: use map for translating errors to grpc errors
Switch statement had poor coverage, use a map instead
2017-06-06 16:55:44 -07:00
d83d7e8262 Merge pull request #8041 from heyitsanthony/fix-test-split
test: fix package splitting when appending REPO_PATH to tests
2017-06-06 16:39:41 -07:00
d8935903a2 e2e: add role get and role list e2e tests
Wasn't being covered
2017-06-06 16:21:00 -07:00
9a367a39d0 test: fix package splitting when appending REPO_PATH to tests 2017-06-06 15:20:39 -07:00
7350525937 Merge pull request #8039 from heyitsanthony/client-example-sort
client: sort nodes in example
2017-06-06 12:29:12 -07:00
0989780a77 Merge pull request #8038 from heyitsanthony/txn-alloc
mvcc: don't use pointer for storeTxnRead in storeTxnWrite
2017-06-06 11:31:42 -07:00
1711fdba32 client: sort nodes in example 2017-06-06 10:56:24 -07:00
f5a5abf8ad Merge pull request #8029 from heyitsanthony/shellcheck
test: shellcheck
2017-06-06 10:35:19 -07:00
402fa8a827 Merge pull request #8034 from heyitsanthony/client-examples
client: add golang examples for KeysAPI
2017-06-06 10:06:40 -07:00
ef63abdf7f mvcc: don't use pointer for storeTxnRead in storeTxnWrite
Saves an allocation when creating a storeTxnWrite.
2017-06-06 09:51:57 -07:00
85f433232a *: clear rarer shellcheck errors on scripts
Clean up the tail of the warnings
2017-06-06 09:36:25 -07:00
17ad275124 travis: add shellcheck 2017-06-06 09:36:25 -07:00
42104fd44b test: shellcheck 2017-06-06 09:36:25 -07:00
2332afe877 Merge pull request #8037 from kragniz/patch-2
doc: python-etcd3 is pretty stable now
2017-06-06 07:49:32 -07:00
e3ff4bf095 doc: python-etcd3 is pretty stable now 2017-06-06 15:45:38 +01:00
1561eb612c client: add golang examples for KeysAPI 2017-06-05 23:05:17 -07:00
8fbf7ce744 Merge pull request #8035 from heyitsanthony/fix-e2e-cov-sig
test, osutil: disable setting SIG_DFL on linux if built with cov tag
2017-06-05 22:48:50 -07:00
88a3bb74b3 test, osutil: disable setting SIG_DFL on linux if built with cov tag
Was causing etcd to terminate before finishing writing its
coverage profile.
2017-06-05 21:09:35 -07:00
f5fc6649fe Merge pull request #8033 from gyuho/grafana
Documentation/op-guide: fix typo in grafana.json
2017-06-05 16:47:59 -07:00
aefd3eb4cf Documentation/op-guide: fix typo in grafana.json
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-05 15:56:16 -07:00
9c2bbc51ca Merge pull request #8027 from connor4312/patch-1
doc: add mixer/etcd3 as a Node.js client integration
2017-06-05 05:35:23 -07:00
3cbbb54927 Merge pull request #8026 from heyitsanthony/document-cn
op-guide: document CN certs in security.md
2017-06-04 18:31:09 -07:00
ace1760628 Merge pull request #8028 from heyitsanthony/govet-more
test: speedup and strengthen go vet checking
2017-06-03 22:29:49 -07:00
887db5a3db *: fix go tool vet -all -shadow errors 2017-06-03 21:32:36 -07:00
9b33aa1967 test: speedup and strengthen go vet checking
Was iterating over every file, reloading everything. Instead,
analyze the package directories. On my machine, the time for
vet checking goes from 34s to 3s. Scans more code too.
2017-06-03 21:31:49 -07:00
591443d838 doc: add mixer/etcd3 as a Node.js client integration 2017-06-03 09:54:03 -07:00
68e0e4abc1 op-guide: document CN certs in security.md 2017-06-02 11:32:12 -07:00
cdb722123a Merge pull request #8024 from heyitsanthony/fix-swagger
scripts, Documentation: fix swagger generation
2017-06-02 11:04:23 -07:00
1be245269e scripts, Documentation: fix swagger generation
Changes to the genproto to support splitting out the grpc-gateway broke
swagger generation.
2017-06-02 10:54:05 -07:00
97519cf79f Merge pull request #8023 from heyitsanthony/protodoc-update
Documentation, scripts: update RPC API docs
2017-06-02 10:26:12 -07:00
156612bb25 Documentation, scripts: regen RPC docs
Was missing the new cancel_reason field. Also includes updated protodoc
sha to fix generating documentation for upcoming txn compare range patchset.
2017-06-02 10:15:12 -07:00
4301f49988 rafthttp: configurable stream reader retry timeout
rafthttp.Transport.DialRetryTimeout field alters the frequency of dial attempts
+ minor changes after code review
2017-06-02 08:53:17 -07:00
c578ac4a1a Merge pull request #8017 from heyitsanthony/doc-gateway-flags
op-guide: document configuration flags for gateway
2017-06-01 15:50:46 -07:00
1cbc7cc274 op-guide: document configuration flags for gateway 2017-06-01 15:46:12 -07:00
f80be42a55 Merge pull request #8012 from heyitsanthony/cov-corruption
test: incrementally merge coverage files
2017-06-01 11:51:49 -07:00
82153e8840 Merge pull request #8015 from heyitsanthony/fix-ctlv2getrole
e2e: make CtlV2GetRoleUser non-quorum
2017-06-01 11:19:24 -07:00
e0653043ff e2e: make CtlV2GetRoleUser non-quorum
GetUser doesn't go through quorum, so issuing a user get to any member
of a cluster may fetch stale data from a slow member. Instead, use a
single member cluster for the test.

Fixes #7993
2017-06-01 10:13:47 -07:00
0c923bdf11 Merge pull request #8010 from heyitsanthony/json-txn
e2e: test txn over grpc json
2017-06-01 10:01:41 -07:00
085bea5c5a Merge pull request #8013 from heyitsanthony/fix-tls-dial
clientv3: use Endpoints[0] to initialize grpc creds
2017-06-01 09:45:44 -07:00
166ae10ca3 integration: use unixs:// if client port configured for tls 2017-05-31 15:51:48 -07:00
ea8561c35c clientv3: support unixs:// scheme
For using TLS without giving a TLSConfig to the client.
2017-05-31 15:51:48 -07:00
1b48d6e5df clientv3/integration: test dialing to TLS without a TLS config times out
etcdctl was getting ctx errors from timing out trying to issue RPCs to
a TLS endpoint but without using TLS for transmission. Client should
immediately bail out with a time out error.
2017-05-31 15:51:03 -07:00
00e581754b test: incrementally merge coverage files
Don't throw away all coverage data if some profiles are corrupted.
2017-05-31 15:46:35 -07:00
8effbda3a7 clientv3: use Endpoints[0] to initialize grpc creds
Dialing out without specifying TLS creds but giving https uses some
default behavior that depends on passing an endpoint with https to
Dial(), so it's not enough to completely rely on the balancer to supply
endpoints.

Fixes #8008

Also ctx-izes grpc.Dial
2017-05-31 15:01:11 -07:00
d8210da505 v3rpc: treat nil txn request op as error
Fixes #7889
2017-05-31 12:39:52 -07:00
1467b456ae dev-guide: add txn json example 2017-05-31 12:08:13 -07:00
85095760ff e2e: test txn over grpc json 2017-05-31 12:08:06 -07:00
f03ed33c87 Merge pull request #7761 from YuleiXiao/xyl_get_transfer_leader_status
return leaderTransferee at raft status
2017-05-31 07:30:49 -07:00
7acd43e8bb Merge pull request #7862 from mitake/benchmark-mvcc-batch
benchmark, pkg: a new option of mvcc --batch for enlarging a single txn
2017-05-30 19:50:44 -07:00
a20e667c5b Merge pull request #7967 from heyitsanthony/purge-snapdb
etcdserver: purge old snap.db files
2017-05-30 16:15:11 -07:00
3748e3cf28 Merge pull request #8006 from heyitsanthony/clientv3-test-nocluster
clientv3: do not launch cluster on go test without explicit -run
2017-05-30 15:33:06 -07:00
119bca6ce7 Merge pull request #8005 from heyitsanthony/more-vendoring
vendor: ghodss/yaml v1.0.0, kr/pty v1.0.0
2017-05-30 14:09:03 -07:00
c250e7be9e clientv3: do not launch cluster on go test without explicit -run
There's a workaround by running -run=Test but this periodically
comes up as an issue, so have `go test` only run Test* to stem
the complaints.

Fixes #8000
2017-05-30 12:23:12 -07:00
0970fe78a0 vendor: ghodss/yaml v1.0.0 2017-05-30 10:33:27 -07:00
5d837e5ab3 vendor: kr/pty v1.0.0 2017-05-30 10:33:25 -07:00
c3879e3776 Merge pull request #8004 from gyuho/doc
Documentation: add 'yaml.NewConfig' change in 3.2
2017-05-30 10:13:57 -07:00
84226a722c Documentation: add 'yaml.NewConfig' change in 3.2
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-05-30 10:02:48 -07:00
1de75d2035 Merge pull request #7997 from heyitsanthony/version-go-semver
vendor: use v0.2.0 of go-semver
2017-05-30 09:24:54 -07:00
ee45c948ac vendor: use v0.2.0 of go-semver 2017-05-26 16:15:10 -07:00
e42d5174ef Merge pull request #7994 from heyitsanthony/update-perf-doc-3.2
op-guide: update performance.md
2017-05-26 15:00:38 -07:00
e66a1439db op-guide: update performance.md
It's been a year, time to refresh with 3.2.0 data.
2017-05-26 14:11:40 -07:00
6846e49edf Merge pull request #7859 from heyitsanthony/cache-consistent-get
mvcc: cache consistent index
2017-05-26 10:52:53 -07:00
3e1eb1a2e7 Merge pull request #7872 from heyitsanthony/break-boltdb-lock-readtx
backend: don't hold boltdb read txn lock on cursor scanning
2017-05-26 10:25:33 -07:00
ac4855e911 mvcc: benchmark ConsistentIndex 2017-05-26 09:49:40 -07:00
73dee0bec4 mvcc: cache consistentIndex
Called on every entry apply and boltdb requests aren't free.
2017-05-26 09:49:40 -07:00
0506f49f9e backend: don't hold boltdb read txn lock on cursor scanning
Large fetches hold the lock when they do not need to do so.
2017-05-26 09:28:08 -07:00
343a018361 Merge pull request #7900 from heyitsanthony/chunk-restore
mvcc: chunk reads for restoring
2017-05-26 09:21:59 -07:00
57de98f132 Merge pull request #7991 from heyitsanthony/faq-space-exceeded
Documentation: add FAQ entry for "database space exceeded" errors
2017-05-26 09:10:34 -07:00
99366c6b42 benchmark: a new option of mvcc --txn-ops for enlarging a single txn
This commit adds a new option --txn-ops to `benchmark mvcc put`. A
number specified with this option will be used as a number of written
keys in a single transaction. It will be useful for checking the
effect of the batching.
2017-05-26 11:10:24 +09:00
384a84ceee Merge pull request #7990 from heyitsanthony/fix-cov-authfromkeyperm
etcdctl, e2e: use 0xe7cd as argument separator in cov-enabled etcdctl
2017-05-25 18:22:36 -07:00
dac2c10ce9 etcdctl, e2e: use 0xe7cd as argument separator in cov-enabled etcdctl
Fixes #7980
2017-05-25 16:11:52 -07:00
9b6c8d216f Documentation: add FAQ entry for "database space exceeded" errors
Also moves miscategorized cluster id mismatch entry from "performance"
to "operation".
2017-05-25 16:08:58 -07:00
2f84f3d8d8 Merge pull request #7968 from fanminshi/make_maxRequestBytes_configurable
etcd: make max request bytes configurable
2017-05-25 15:54:24 -07:00
212a1efd47 Merge pull request #7965 from heyitsanthony/shared-grpc-conn
embed: share grpc connection for grpc json services
2017-05-25 14:35:33 -07:00
68a72c6b6e v3rpc: change grpc max recv size as needed. 2017-05-25 11:01:51 -07:00
9e7740011b etcdserver: add --max-request-bytes flag 2017-05-25 11:01:38 -07:00
b003734be6 Merge pull request #7976 from fanminshi/make_maxOpsPerTxn_configurable
etcdserver: add --max-txn-ops flag
2017-05-25 10:34:17 -07:00
967fc70173 Merge pull request #7983 from heyitsanthony/etcdctl-lock-exec
etcdctl: support exec on lock
2017-05-25 10:26:48 -07:00
4a8d32eaa6 Merge pull request #7984 from gyuho/3.2
*: bump up test Go runtime, etcd versions before 3.2 release
2017-05-24 17:20:48 -07:00
643c2a310d etcdctl: support exec on lock
The lock command is clumsy to use from the command line, needing mkfifo,
wait, etc. Instead, make like consul and support launching a command if
one is given.
2017-05-24 16:47:00 -07:00
c3a191b38d e2e: use version.Cluster for release test
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-05-24 15:20:18 -07:00
e9f464debc integration: creation of cluster now takes maxTxnOps 2017-05-24 14:48:44 -07:00
83efd2c745 ROADMAP: make 'release-3.2' stable branch
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-05-24 14:31:43 -07:00
307331cc31 test: release tests with v3.2+
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-05-24 14:31:30 -07:00
2abd22a13b travis: run tests with Go 1.8.3
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-05-24 14:28:33 -07:00
2a4db4307f Merge pull request #7982 from heyitsanthony/watch-latency-clients
benchmark: support multiple clients/conns in watch-latency benchmark
2017-05-24 13:23:07 -07:00
ebd6e8c4b1 benchmark: support multiple clients/conns in watch-latency benchmark 2017-05-24 11:31:43 -07:00
8c1ab62bc5 Merge pull request #7975 from raoofm/patch-11
doc: modify vonage usecase, adding kubernetes and vault
2017-05-24 10:40:47 -07:00
ae7ddfb483 etcdserver: add --max-txn-ops flag
--max-txn-ops allows users to define the maximum transaction operations
for each txn request. it defaults at 128.

Fixes #7826
2017-05-24 10:32:32 -07:00
8d2b340629 Merge pull request #7966 from heyitsanthony/close-kv-err
etcdserver: close mvcc.KV on init error path
2017-05-23 12:59:20 -07:00
0b449a24bb Merge pull request #7956 from gyuho/container-linux
Documentation: add systemd, Container Linux guide
2017-05-23 12:38:37 -07:00
a1804390b1 doc: modify usecase
adding kubernetes and vault
2017-05-23 14:57:10 -04:00
8b290c680a Documentation: add systemd, Container Linux guide
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-05-23 11:27:27 -07:00
c1c9a2c96c etcdserver: close mvcc.KV on init error path
Scheduled compaction will panic if KV is not stopped before
closing the backend.
2017-05-23 10:41:37 -07:00
ab16fa1f07 etcdserver: purge old snap.db files
Lots of garbage db files in #7957. Should purge.
2017-05-22 15:44:21 -07:00
db7ab961bf embed: share grpc connection for grpc json services 2017-05-22 12:59:13 -07:00
f75e333264 Merge pull request #7958 from heyitsanthony/perm-prefix
etcdctl: improve role --prefix flag
2017-05-22 12:19:16 -07:00
378bac79e1 Merge pull request #7963 from tlossen/patch-1
documentation: fixed typo
2017-05-22 08:29:25 -07:00
20a747ea09 Documentation/learning: fixed typo
(repeated word)
2017-05-22 17:26:34 +02:00
4cd5e7ebb2 Merge pull request #7809 from mitake/auth-watch
protect watch with auth
2017-05-20 13:23:30 +09:00
881903b6d3 e2e: add a new test case for protecting watch with auth 2017-05-20 11:34:45 +09:00
939912c425 clientv3, etcdserver: support auth in Watch() 2017-05-20 11:34:45 +09:00
cbd3807b30 Merge pull request #7959 from heyitsanthony/regen-protodoc
Documentation, scripts: regenerate protobuf docs with updated protodoc
2017-05-19 15:20:44 -07:00
10b1ba7886 Documentation, scripts: regenerate protobuf docs with updated protodoc 2017-05-19 14:57:16 -07:00
2f1467cb27 etcdctl: sync README with etcdctl role command, add prefix example, fix typo
Fixes #7951
2017-05-19 13:53:46 -07:00
bd680c3302 ctlv3: add --prefix support to role revoke-permission, cleanup role flag handling 2017-05-19 13:53:46 -07:00
fd7de051a4 version: bump up to 3.2.0-rc.1+git
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-05-19 12:39:23 -07:00
9d7ed0e63a version: bump up to 3.2.0-rc.1
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-05-19 11:46:15 -07:00
b82ef007f5 Merge pull request #7955 from gyuho/timeout
integration: bump up 'TestV3LeaseRequireLeader' timeout to 5-sec
2017-05-18 17:11:23 -07:00
29bbcdd110 integration: bump up 'TestV3LeaseRequireLeader' timeout to 5-sec
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-05-18 16:44:57 -07:00
0afc51c762 Merge pull request #7939 from gyuho/test
etcd-tester: add '-failpoints' to configure gofail
2017-05-18 12:53:07 -07:00
4a8fbb9d5d Merge pull request #7954 from gyuho/m
*: remove unused, fix typos
2017-05-18 12:36:24 -07:00
d690634bd6 *: remove unused, fix typos
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-05-18 12:11:18 -07:00
62b44a85f8 etcd-tester: add '-failpoints' to configure gofail
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-05-18 11:59:07 -07:00
e7d705b25f Merge pull request #7953 from gyuho/aaa
etcd-tester: use 'debugutil.PProfHandlers'
2017-05-18 11:26:40 -07:00
e1640cc72f etcd-tester: use 'debugutil.PProfHandlers'
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-05-18 11:21:24 -07:00
a6a1eb8378 Merge pull request #7949 from heyitsanthony/godocs
*: fill out missing package godocs
2017-05-18 10:23:26 -07:00
33c375dc44 *: fill out blank package godocs
Mostly one-liner short descriptions, but also includes some typo fixes
and some examples.
2017-05-18 09:41:13 -07:00
1f2dcbb935 Merge pull request #7948 from heyitsanthony/remove-proxy-alpha
op-guide: remove alpha from grpc proxy
2017-05-18 09:31:34 -07:00
c6cf88ef7f op-guide: remove alpha from grpc proxy 2017-05-17 22:27:06 -07:00
4e84bd2e3c Merge pull request #7946 from heyitsanthony/report-weighted
report: add NewWeightedReport
2017-05-17 21:04:53 -07:00
c09f0ca9d4 report: add NewWeightedReport
Reports with weighted results.
2017-05-17 16:07:20 -07:00
218ee40f11 Merge pull request #7945 from xiang90/snapshot_error
etcdserver: more logging on snapshot close path
2017-05-17 15:36:53 -07:00
32c252f003 etcdserver: more logging on snapshot close path 2017-05-17 14:48:52 -07:00
f4641accc3 Merge pull request #7943 from heyitsanthony/tcpproxy-init-msg
tcpproxy: display endpoints, not pointers, in ready to proxy string
2017-05-17 12:20:46 -07:00
b7cda38653 Merge pull request #7935 from heyitsanthony/bridge-latency
bridge: add tx-delay and rx-delay
2017-05-17 11:07:22 -07:00
5bd9b9614f tcpproxy: display endpoints, not pointers, in ready to proxy string
The switch to *net.SRV for endpoints caused the ready string to emit
pointers instead of endpoint strings.

Fixes #7942
2017-05-17 10:51:35 -07:00
201fd70afc Merge pull request #7934 from heyitsanthony/bench-rpc-mutex
benchmark: add rpc mutexes to stm benchmark
2017-05-17 10:44:00 -07:00
1763f7d4d1 Merge pull request #7919 from gyuho/log-dir
functional-tester: use log-dir as data-dir in etcd-agent
2017-05-16 13:46:57 -07:00
271785cd55 Merge pull request #7937 from heyitsanthony/e2e-close-timeout
e2e: Stop() lock/elect etcdctl process if Close times out
2017-05-16 12:34:36 -07:00
8f0d4092c3 e2e: Stop() lock/elect etcdctl process if Close times out
Gets backtrace by sending SIGQUIT if Close hangs after sending a SIGINT.
2017-05-16 11:31:23 -07:00
c6219a209d Merge pull request #7933 from gyuho/travis
travis: test builds in other OSes
2017-05-15 22:25:52 -07:00
22db11f876 bridge: add tx-delay and rx-delay
Injects transmit and receive latencies.
2017-05-15 17:02:27 -07:00
d826f95c77 travis: test builds in other OSes
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-05-15 16:55:27 -07:00
b6e4858a25 benchmark: add rate limiting to stm 2017-05-15 15:42:54 -07:00
6526097bfc benchmark: add rpc locks to stm benchmark 2017-05-15 15:42:26 -07:00
3e7feb4033 Merge pull request #7931 from gyuho/aaa
pkg/osutil: fix missing 'syscall' import
2017-05-15 14:47:46 -07:00
fba225cee5 pkg/osutil: fix missing 'syscall' import
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-05-15 14:11:54 -07:00
95078c296d Merge pull request #7932 from gyuho/vet
*: remove unnecessary fmt.Sprint
2017-05-15 14:01:23 -07:00
e15020055e *: remove unnecessary fmt.Sprint
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-05-15 13:23:31 -07:00
74fd7709ad Merge pull request #7904 from heyitsanthony/osutil-exit
osutil: force SIG_DFL before resending terminating signal
2017-05-15 12:14:37 -07:00
31e3899663 Merge pull request #7925 from heyitsanthony/fix-windows-mmap
backend: force initial mmap size to 0 for windows
2017-05-13 21:42:58 -07:00
8516d8ccc5 backend: force initial mmap size to 0 for windows
boltdb on windows allocates a file with the full mmap size even if the
db is empty. Force the initial mmap size to 0 so there's no huge initial
db file on windows.

Fixes #7910
2017-05-12 14:34:07 -07:00
6ce9aed8c5 Merge pull request #7881 from heyitsanthony/testctl-logging
e2e: more debugging output for lock and elect tests
2017-05-12 12:01:08 -07:00
7a1739a3e8 osutil: force SIG_DFL before resending terminating signal
The go runtime won't always reinstall the default signal handler on the
SIGTERM path, so it's possible the signal won't terminate the process.
Instead, force SIG_DFL for the signal.
2017-05-12 11:56:27 -07:00
5b4677b7d7 integration: reset default logging level in TestRestartRemoved 2017-05-12 10:22:29 -07:00
b9f5a00b13 e2e: more debugging output for lock and elect etcdctl tests
Meant to debug #6464 and #6934

Dumps the output from the etcd/etcdctl servers and SIGQUITs to get a
golang backtrace in case of a hanged process.
2017-05-12 10:22:29 -07:00
90893735cf Merge pull request #7917 from heyitsanthony/refactor-backend-paths
snap, etcdserver: tighten up snapshot path handling
2017-05-12 09:33:37 -07:00
2e3d27e910 functional-tester: use log-dir as data-dir in etcd-agent
Persistent data should be configured in agent side.
There is no need to specify the data-dir in tester side.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-05-12 08:30:46 -07:00
f337754e72 Merge pull request #7914 from fanminshi/doc_snap_warning
*: faq for snapshot warning and dynamically determining snapshotWarningTimeout
2017-05-11 16:48:12 -07:00
aa58aff18c Merge pull request #7918 from gyuho/archive-path
etcd-agent: store failure_archive in log dir
2017-05-11 16:34:43 -07:00
0bcab05465 etcd-agent: store failure_archive in log dir
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-05-11 16:30:04 -07:00
71d7c85b6b expect: reload DEBUG_EXPECT for each process
Lets e2e test cases selectively turn on expect debugging to get
full application output written to stdout.
2017-05-11 16:09:31 -07:00
16e92d1379 faq: explains "snapshotting is taking more..." warning 2017-05-11 15:25:44 -07:00
8468b38631 backend: dynamically set snapshotWarningTimeout based on db size 2017-05-11 15:25:35 -07:00
7a65cb5847 Merge pull request #7916 from heyitsanthony/snip-extra-doc
clientv3: remove duplicate documentation for Do()
2017-05-11 14:45:35 -07:00
f6cd4d4f5b snap, etcdserver: tighten up snapshot path handling
Computing the snapshot file path is error prone; snapshot recovery was
constructing file paths missing a path separator so the snapshot
would never be loaded. Instead, refactor the backend path handling
to use helper functions where possible.
2017-05-11 13:46:59 -07:00
63c7e9f840 clientv3: remove duplicate documentation for Do() 2017-05-11 13:25:26 -07:00
f63eb2f6a4 Merge pull request #7913 from gyuho/srv
pkg/srv: fix error checks from resolveTCPAddr
2017-05-11 12:12:01 -07:00
3505c254e1 pkg/srv: fix error checks from resolveTCPAddr
So that 'terr' can be returned later.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-05-11 10:53:03 -07:00
44a49ff45a raft: return leaderTransferee at raft status 2017-05-11 12:45:56 +08:00
386374a6d0 Merge pull request #7908 from heyitsanthony/concurrency-proxy
grpcproxy: forward v3lock and v3election requests
2017-05-10 16:41:06 -07:00
066062a5e0 Merge pull request #7902 from fanminshi/fix_runner
etcd-runner: remove mutex on validate() and release() in global.go
2017-05-10 13:12:09 -07:00
00da3ca725 integration: add lock and election services to proxy tests 2017-05-10 13:06:27 -07:00
713e006bc6 adpater: adapters for lock and election services 2017-05-10 12:51:05 -07:00
fd01db9e60 grpcproxy, etcdmain: add lock and election services to proxy 2017-05-10 12:19:09 -07:00
b44bd6d2a9 etcd-runner: fix race on nextc 2017-05-10 11:21:17 -07:00
1aca63e9e0 mvcc: time restore in restore benchmark
This never worked.
2017-05-09 20:14:58 -07:00
163fd2d76b mvcc: chunk reads for restoring
Loading all keys at once would cause etcd to use twice as much
memory than it would need to serve the keys, causing RSS to spike on
boot. Instead, load the keys into the mvcc by chunk. Uses pipelining
for some concurrency.

Fixes #7822
2017-05-09 20:14:58 -07:00
47f5b7c3ad Merge pull request #7876 from fanminshi/fix_7628
etcdserver: renaming db happens after snapshot persists to wal and snap files
2017-05-09 16:15:41 -07:00
87d99fe038 etcd-runner: remove mutex on validate() and release() in global.go
election runner can deadlock in atomic release().

suppose election runner has two clients A and B.
if A is a leader and B is a follower, B obtains lock
for release() and waits for A to close(nextc) which signal
next round is ready. However, A can only close(nextc) if it
obtains lock for release(); hence deadlock.

this pr removes atomicity of validate() and release() in global.go
and gives the responsibility of locking to each runner.

FIXES #7891
2017-05-09 15:38:13 -07:00
dfdaf082c5 etcdserver: add a test to ensure renaming db happens before persisting wal and snap files 2017-05-09 14:00:22 -07:00
8b7b7222dd etcdserver: renaming db happens after snapshot persists to wal and snap files
In the case that follower recieves a snapshot from leader
and crashes before renaming xxx.snap.db to db but after
snapshot has persisted to .wal and .snap, restarting
follower results loading old db, new .wal, and new .snap.
This will causes a index mismatch between snap metadata index
and consistent index from db.

This pr forces an ordering where saving/renaming db must
happen after snapshot is persisted to wal and snap file.
this guarantees wal and snap files are newer than db.
on server restart, etcd server checks if snap index > db consistent index.
if yes, etcd server attempts to load xxx.snap.db where xxx=snap index
if there is any and panic other wise.

FIXES #7628
2017-05-09 14:00:12 -07:00
a53a9e167e Merge pull request #7898 from yudai/nit_remove_dup
v3rpc: remove duplicated error case for lease.ErrLeaseNotFound
2017-05-09 12:35:31 -07:00
b8875515a4 Merge pull request #7890 from yudai/keep_ka_loop_running
clientv3: Do no stop keep alive loop by server side errors
2017-05-09 11:00:21 -07:00
01a985eda5 Merge pull request #7897 from gyuho/bom
scripts: add 'BOM' update script
2017-05-09 10:52:42 -07:00
010ffc0692 v3rpc: remove duplicated error case for lease.ErrLeaseNotFound 2017-05-08 20:09:41 -07:00
8c9f01ef53 scripts: add 'BOM' update script
Need this script when we add external dependencies.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-05-08 17:59:11 -07:00
aa85b0cea7 clientv3: Do no stop keep alive loop by server side errors 2017-05-08 15:47:34 -07:00
aac2292ab5 Merge pull request #7882 from heyitsanthony/srv-priority
gateway: DNS SRV priority
2017-05-08 14:17:04 -07:00
3a2e7653f2 Merge pull request #7879 from gyuho/http-server
embed: gracefully close peer handler
2017-05-08 14:00:45 -07:00
c232814003 etcdmain, tcpproxy: srv-priority policy
Adds DNS SRV weighting and priorities to gateway.

Partially addresses #4378
2017-05-08 11:35:18 -07:00
2655540481 Merge pull request #7892 from fanminshi/add_snashot_duration_metric
backend: add prometheus metric for large snapshot duration.
2017-05-08 11:22:51 -07:00
25eef5a6e4 Merge pull request #7893 from philips/readme-tagline
README: use the same tagline from github
2017-05-08 09:11:08 -07:00
7d21d6c894 embed: gracefully close peer handlers on shutdown
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-05-06 07:47:23 -07:00
af7d051019 Merge pull request #7885 from luedigernet/fix-TestEvent
Fix watch_test.go TestEvent
2017-05-05 23:31:59 -07:00
90af2ff302 README: use the same tagline from github
Just be consistent with the messaging and use of etcd
2017-05-05 18:07:26 -07:00
230106dd3c backend: add prometheus metric for large snapshot duration.
FIXES #7878
2017-05-05 17:27:33 -07:00
8b081ce9b3 clientv3: check IsModify
Fix watch_test.go TestEvent

Prior to This fix the isModify case of the table driven test was never checked.
2017-05-05 19:39:59 +02:00
07ad18178d pkg/srv: package for SRV utilities
Trying to decouple the v2 client from SRV code. Can't move
into discovery/ since that creates a circular dependency. So,
give up and move all the SRV code into a new package.
2017-05-05 09:27:59 -07:00
db6f45e939 Merge pull request #7830 from aaronlehmann/new-nodes-start-active
raft: Set the RecentActive flag for newly added nodes
2017-05-05 08:59:25 -07:00
1f8de1aab0 Merge pull request #7877 from fanminshi/warning_on_snapshotting
backend: print snapshotting duration warning every 30s
2017-05-04 18:03:47 -07:00
f7f30f2361 backend: print snapshotting duration warning every 30s
FIXES #7870
2017-05-04 16:41:03 -07:00
9451fa1f9c raft: Add unit test TestAddNodeCheckQuorum
This test verifies that adding a node does not cause the leader to step
down until at least one full ElectionTick cycle elapses.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2017-05-04 15:04:30 -07:00
c3b96f8a69 Merge pull request #7875 from yudai/compact_every_time
compactor: Make periodic compactor runs every hour
2017-05-04 13:24:27 -07:00
60dbad5a85 compactor: Make periodic compactor runs every hour
Closes #7868.
2017-05-04 10:32:51 -07:00
505bf8c708 Merge pull request #7864 from gyuho/doc-link-fixes
*: run 'marker' in CI
2017-05-04 09:14:06 -07:00
2e32d2142d Merge pull request #7869 from heyitsanthony/fix-lease-require-leader-test
clientv3/integration: drain keepalives before waiting for leader loss
2017-05-04 08:29:16 -07:00
282c6fd17d Documentation: remove '[]' from '[DEPRECATED]'
To make 'marker' pass the tests

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-05-04 08:26:01 -07:00
c2959c998f test: run 'marker' to find broken links
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-05-04 08:26:00 -07:00
e9a63473a0 scripts,travis: install 'marker' for CI tests
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-05-04 08:26:00 -07:00
7f05e220a4 Merge pull request #7874 from gyuho/scripts
integration/fixtures-expired: do not force 'rm'
2017-05-03 19:39:00 -07:00
4edbae4a91 integration/fixtures-expired: do not force 'rm'
To make gencerts.sh script safer.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-05-03 18:45:44 -07:00
3b251b0ed3 Merge pull request #7871 from gyuho/fix-doc-2
*: fix broken links in markdown
2017-05-03 16:58:38 -07:00
4203320d04 *: fix other broken links in markdown
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-05-03 16:57:44 -07:00
feb930e357 Documentation/v3: fix broken links
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-05-03 16:57:38 -07:00
e4e057f8f7 Documentation/v2: fix broken links
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-05-03 15:37:53 -07:00
9fee35b02d Merge pull request #7842 from heyitsanthony/fix-switch-race
clientv3: don't race on upc/downc/switch endpoints in balancer
2017-05-03 13:48:00 -07:00
f6d0dda187 clientv3/integration: drain keepalives before waiting for leader loss
500ms keepalive delay on proxy side causes client to sometimes send
a second keepalive since it waits more than 500ms for the first response.

Fixes #7658
2017-05-03 13:22:45 -07:00
8f40517adb integration: close proxy's lease client 2017-05-03 13:22:24 -07:00
61c5a0c6ae Merge pull request #7867 from gyuho/fix-tls-test
integration: clean up TLS reload tests, fix no-file while renaming
2017-05-03 12:43:41 -07:00
85fa594265 integration: clean up TLS reload tests, fix no-file while renaming
Fix https://github.com/coreos/etcd/issues/7865.

It is also possible to have mis-matched key file
while renaming directories.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-05-03 11:59:09 -07:00
c2d6a92b01 Merge pull request #7853 from gyuho/revert
Documentation/upgrades: revert KeepAlive interface change
2017-05-03 11:04:15 -07:00
24e85b2454 Merge pull request #7852 from heyitsanthony/revert-lease-err-ka
Revert "Merge pull request #7732 from heyitsanthony/lease-err-ka"
2017-05-03 11:03:17 -07:00
27b3bf230b Merge pull request #7863 from heyitsanthony/stm-apis
concurrency: provide old STM functions as deprecated
2017-05-03 10:19:13 -07:00
de2e959b27 Merge pull request #7856 from fanminshi/fix_consistent_index_update
etcdserver: apply() sets consistIndex for any entry type
2017-05-03 09:07:16 -07:00
31d5d610fc concurrency: provide old STM functions as deprecated
semver
2017-05-03 02:07:01 -07:00
e33b10a666 etcdserver: add a test to ensure config change also update ConsistIndex 2017-05-02 16:51:40 -07:00
61abf25859 integration: close accepted connection on stopc path
Connection pausing added another exit condition in the listener
path, causing the bridge to leak connections instead of closing
them when signalled to close. Also adds some additional Close
paranoia.

Fixes #7823
2017-05-02 16:46:43 -07:00
43e5f892f6 clientv3: don't race on upc/downc/switch endpoints in balancer
If the balancer update notification loop starts with a downed
connection and endpoints are switched while the old connection is up,
the balancer can potentially wait forever for an up connection without
refreshing the connections to reflect the current endpoints.

Instead, fetch upc/downc together, only caring about a single transition
either from down->up or up->down for each iteration

Simple way to reproduce failures: add time.Sleep(time.Second) to the
beginning of the update notification loop.
2017-05-02 16:43:24 -07:00
5533c3058a etcdserver: apply() sets consistIndex for any entry type
previously, apply() doesn't set consistIndex for EntryConfChange type.
this causes a misalignment between consistIndex and applied index
where EntryConfChange entry results setting applied index but not consistIndex.

suppose that addMember() is called and leader reflects that change.
1. applied index and consistIndex is now misaligned.
2. a new follower node joined.
3. leader sends the snapshot to follower
	where the applied index is the snapshot metadata index.
4. follower node saves the snapshot and database(includes consistIndex) from leader.
5. restarting follower loads snapshot and database.
6. follower checks snapshot metadata index(same as applied index) and database consistIndex,
	finds them don't match, and then panic.

FIXES #7834
2017-05-02 14:57:36 -07:00
72d2adca62 Merge pull request #7854 from gyuho/lease-retry
integration: ensure revoke completes before TimeToLive
2017-05-02 12:56:56 -07:00
01b6cdf13d integration: ensure revoke completes before TimeToLive
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-05-02 12:56:26 -07:00
24f0423088 Merge pull request #7855 from tessr/master
raft: add chain core to notable users list
2017-05-02 11:30:03 -07:00
3d504737e4 add chain core to raft users list 2017-05-02 11:23:25 -07:00
bb42ba5f4e Documentation/upgrades: revert KeepAlive interface change
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-05-02 09:45:06 -07:00
6dd8fb6f24 Revert "Merge pull request #7732 from heyitsanthony/lease-err-ka"
This reverts commit fbbc4a4979, reversing
changes made to f254e38385.

Fixes #7851
2017-05-02 09:36:16 -07:00
fdf445b5a0 Merge pull request #7848 from gyuho/close-grpcc
embed: fix blocking Close before gRPC server start
2017-05-01 18:44:20 -07:00
f065d8e258 Merge pull request #7845 from heyitsanthony/single-node-docker
Documentation: add documentation for single node docker etcd
2017-05-01 16:42:19 -07:00
b0e9d24fb6 embed: fix blocking Close before gRPC server start
If 'StartEtcd' returns before starting gRPC server
(e.g. mismatch snapshot, misconfiguration),
receiving from grpcServerC blocks forever. This patch
just closes the channel to not block on grpcServerC,
and proceeds to next stop operations in Close.

This was masking the issues in https://github.com/coreos/etcd/issues/7834

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-05-01 16:41:13 -07:00
b1720b779c Merge pull request #7846 from heyitsanthony/build-aci-annotate
scripts: annotate with acbuild with supports-systemd-notify
2017-05-01 16:04:03 -07:00
6c1ce697a6 scripts: annotate with acbuild with supports-systemd-notify
Fixes #7840
2017-05-01 12:59:08 -07:00
3f1f5e5215 Merge pull request #7844 from heyitsanthony/v2-docker-tag
Documentation/v2: pin docker guide to use latest 2.3.x
2017-05-01 12:54:03 -07:00
b8f08d400d Documentation: add documentation for single node docker etcd
Fixes #7843
2017-05-01 12:36:16 -07:00
066f9bf7e3 Documentation/v2: pin docker guide to use latest 2.3.x 2017-05-01 11:46:39 -07:00
f0ca65a95d version: bump up to 3.2.0-rc.0+git 2017-04-28 11:06:53 -07:00
7e6d876385 version: bump up to 3.2.0-rc.0 2017-04-28 10:09:39 -07:00
7239249155 Merge pull request #7837 from gyuho/tls-errors
integration: match more TLS errors for wrong certs
2017-04-28 10:08:34 -07:00
cfeab9324e integration: match more TLS errors for wrong certs
Fix https://github.com/coreos/etcd/issues/7835.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-28 10:03:29 -07:00
77fd369b1c Merge pull request #7832 from gyuho/doc-for-3.2
Documentation: add upgrade to 3.2 doc
2017-04-27 21:27:26 -07:00
cbd7ef4ee6 Documentation: add upgrade to 3.2 doc
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-27 14:39:42 -07:00
747993de08 Merge pull request #7829 from gyuho/certs
pkg/transport: reload TLS certificates for every client requests
2017-04-27 14:36:53 -07:00
96d6f05391 Merge pull request #7831 from gyuho/cc
pkg/wait: add comment and make List private
2017-04-27 13:45:25 -07:00
22943e7e06 integration: test TLS reload
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-27 13:32:09 -07:00
d818ef2c76 pkg/wait: add comment and make List private 2017-04-27 13:25:02 -07:00
4e21f87e3d pkg/transport: reload TLS certificates for every client requests
This changes the baseConfig used when creating tls Configs to utilize
the GetCertificate and GetClientCertificate functions to always reload
the certificates from disk whenever they are needed.

Always reloading the certificates allows changing the certificates via
an external process without interrupting etcd.

Fixes #7576

Cherry-picked by Gyu-Ho Lee <gyuhox@gmail.com>
Original commit can be found at https://github.com/coreos/etcd/pull/7784
2017-04-27 11:22:03 -07:00
52613b262b raft: Set the RecentActive flag for newly added nodes
I found that enabling the CheckQuorum flag led to spurious leader
elections when new nodes joined. It looks like in the time between a new
node joining the cluster, and that node first communicating with the
leader, the quorum check could fail because the new node looks inactive.
To solve this, set the RecentActive flag when nodes are first added.
This gives a grace period for the node to communicate before it causes
the quorum check to fail.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2017-04-27 11:19:29 -07:00
c309d745a6 Merge pull request #7819 from heyitsanthony/fix-elect-compact
concurrency: use current revisions for election
2017-04-27 11:01:44 -07:00
2a3229c00a Merge pull request #7808 from heyitsanthony/auto-bom
CI BOM checking
2017-04-27 09:24:59 -07:00
3e7bd47cd5 travis: add bill-of-materials checking
Fixes #7780
2017-04-26 16:29:48 -07:00
2059c8e9e7 vendor: revendor speakeasy to include unix license file
updates BOM
2017-04-26 16:29:48 -07:00
b77de97136 test: bill of materials check pass 2017-04-26 16:29:47 -07:00
633a0a847b Merge pull request #7824 from gyuho/certs
*: test expired certs in client
2017-04-26 13:31:17 -07:00
f674a1b583 clientv3/integration: test client dial with expired certs
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-26 12:32:46 -07:00
7cb860a31b integration/fixtures: add expired certs
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-26 12:22:54 -07:00
d2e69b339f Merge pull request #7816 from heyitsanthony/v3client-blankctx
v3client: wrap watch ctxs with blank ctx
2017-04-25 21:53:14 -07:00
41e77c9db6 Merge pull request #7818 from gyuho/doc
Documentation: require Go 1.8+ for build
2017-04-25 21:46:07 -07:00
50f29bd661 concurrency: use current revisions for election
Watching from the leader's ModRevision could cause live-locking on
observe retry loops when the ModRevision is less than the compacted
revision. Instead, start watching the leader from at least the store
revision of the linearized read used to detect the current leader.

Fixes #7815
2017-04-25 20:15:50 -07:00
6486be673b integration: test Observe can read leaders set prior to compaction 2017-04-25 20:03:49 -07:00
4959663f90 Documentation: require Go 1.8+ for build
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-25 17:04:54 -07:00
c49a87bd04 Merge pull request #7672 from fanminshi/integrate_runner_to_tester
etcd-tester: integrate etcd runner into etcd tester
2017-04-25 15:22:29 -07:00
60b9adc267 Merge pull request #7812 from fanminshi/refactor_runner
etcd-runner: fix runner and minor refactoring.
2017-04-25 15:21:57 -07:00
3ce31acda4 v3client: wrap watch ctxs with blank ctx
Printing the values in ctx.String() will data race if the value
is mutable and doesn't implement String(), which seems to be common.
Instead, just return a fixed string instead of computing it; v3client
watches don't need as much flexibility for creating separate strings,
so separate ctx strings probably aren't necessary at this point.

Fixes #7811
2017-04-25 15:03:06 -07:00
96aaeee4f5 Merge pull request #7814 from gyuho/aaa
etcdserver: do not block on raft stopping
2017-04-25 15:00:06 -07:00
a9e04061b1 etcd-runner: integrate etcd runner in to etcd tester
etcd tester runs etcd runner as a separate binary.
it signals sigstop to the runner when tester wants to stop stressing.
it signals sigcont to the runner when tester wants to start stressing.
when tester needs to clean up, it signals sigint to runner.

FIXES #7026
2017-04-25 14:53:23 -07:00
77fbe10dfc etcd-runner: add --prefix flag, allows inf round, and minor vars refactoring in watch runner. 2017-04-25 14:18:42 -07:00
debc69e1f2 etcd-runner: pass in lock name as a command arg for lock_racer. 2017-04-25 14:18:42 -07:00
72fb756af3 etcd-runner: add lease ttl as a flag and fatal when err in lease-runner. 2017-04-25 14:18:42 -07:00
d57ad8ec8d etcd-runner: add barrier, observe !ok handling, and election name arg to election-runner. 2017-04-25 14:17:59 -07:00
fa85445ef8 etcd-runner: add rate limiting in doRounds() 2017-04-25 14:00:52 -07:00
327f09fcb4 etcdserver: do not block on raft stopping
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-25 13:35:43 -07:00
2af1605db3 Merge pull request #7810 from gyuho/sync-with-apply
etcdserver: ensure waitForApply sync with applyAll
2017-04-25 13:21:30 -07:00
91f6aee4f2 etcdserver: ensure waitForApply sync with applyAll
Problem is:

`Step1`: `etcdserver/raft.go`'s `Ready` process routine sends config-change entries via `r.applyc <- ap` (https://github.com/coreos/etcd/blob/master/etcdserver/raft.go#L193-L203)

`Step2`: `etcdserver/server.go`'s `*EtcdServer.run` routine receives this via `ap := <-s.r.apply()` (https://github.com/coreos/etcd/blob/master/etcdserver/server.go#L735-L738)

`StepA`: `Step1` proceeds without sync, right after sending `r.applyc <- ap`.

`StepB`: `Step2` proceeds without sync, right after `sched.Schedule(s.applyAll(&ep,&ap))`.

`StepC`: `etcdserver` tries to sync with `s.applyAll(&ep,&ap)` by calling `rh.waitForApply()`.

`rh.waitForApply()` waits for all pending jobs to finish in `pkg/schedule`
side. However, the order of `StepA`,`StepB`,`StepC` is not guaranteed. It
is possible that `StepC` happens first, and proceeds without waiting on
apply. And the restarting member comes back as a leader in single-node
cluster, when there is no synchronization between apply-layer and
config-change Raft entry apply. Confirmed with more debugging lines below,
only reproducible with slow CPU VM (~2 vCPU).

```
~:24.005397 I | etcdserver: starting server... [version: 3.2.0+git, cluster version: to_be_decided]
~:24.011136 I | etcdserver: [DEBUG] 29b2d24047a277df waitForApply before
~:24.011194 I | etcdserver: [DEBUG] 29b2d24047a277df starts wait for 0 pending jobs
~:24.011234 I | etcdserver: [DEBUG] 29b2d24047a277df finished wait for 0 pending jobs (current pending 0)
~:24.011268 I | etcdserver: [DEBUG] 29b2d24047a277df waitForApply after
~:24.011348 I | etcdserver: [DEBUG] [0] 29b2d24047a277df is scheduling conf change on 29b2d24047a277df
~:24.011396 I | etcdserver: [DEBUG] [1] 29b2d24047a277df is scheduling conf change on 5edf80e32a334cf0
~:24.011437 I | etcdserver: [DEBUG] [2] 29b2d24047a277df is scheduling conf change on e32e31e76c8d2678
~:24.011477 I | etcdserver: [DEBUG] 29b2d24047a277df scheduled conf change on 29b2d24047a277df
~:24.011509 I | etcdserver: [DEBUG] 29b2d24047a277df scheduled conf change on 5edf80e32a334cf0
~:24.011545 I | etcdserver: [DEBUG] 29b2d24047a277df scheduled conf change on e32e31e76c8d2678
~:24.012500 I | etcdserver: [DEBUG] 29b2d24047a277df applyConfChange on 29b2d24047a277df before
~:24.013014 I | etcdserver/membership: added member 29b2d24047a277df [unix://127.0.0.1:2100515039] to cluster 9250d4ae34216949
~:24.013066 I | etcdserver: [DEBUG] 29b2d24047a277df applyConfChange on 29b2d24047a277df after
~:24.013113 I | etcdserver: [DEBUG] 29b2d24047a277df applyConfChange on 29b2d24047a277df after trigger
~:24.013158 I | etcdserver: [DEBUG] 29b2d24047a277df applyConfChange on 5edf80e32a334cf0 before
~:24.013666 W | etcdserver: failed to send out heartbeat on time (exceeded the 10ms timeout for 11.964739ms)
~:24.013709 W | etcdserver: server is likely overloaded
~:24.013750 W | etcdserver: failed to send out heartbeat on time (exceeded the 10ms timeout for 12.057265ms)
~:24.013775 W | etcdserver: server is likely overloaded
~:24.013950 I | raft: 29b2d24047a277df is starting a new election at term 4
~:24.014012 I | raft: 29b2d24047a277df became candidate at term 5
~:24.014051 I | raft: 29b2d24047a277df received MsgVoteResp from 29b2d24047a277df at term 5
~:24.014107 I | raft: 29b2d24047a277df became leader at term 5
~:24.014146 I | raft: raft.node: 29b2d24047a277df elected leader 29b2d24047a277df at term 5
```

I am printing out the number of pending jobs before we call
`sched.WaitFinish(0)`, and there was no pending jobs, so it returned
immediately (before we schedule `applyAll`).

This is the root cause to:

- https://github.com/coreos/etcd/issues/7595
- https://github.com/coreos/etcd/issues/7739
- https://github.com/coreos/etcd/issues/7802

`sched.WaitFinish(0)` doesn't work when `len(f.pendings)==0` and
`f.finished==0`. Config-change is the first job to apply, so
`f.finished` is 0 in this case.

`f.finished` monotonically increases, so we need `WaitFinish(finished+1)`.
And `finished` must be the one before calling `Schedule`. This is safe
because `Schedule(applyAll)` is the only place adding jobs to `sched`.
Then scheduler waits on the single job of `applyAll`, by getting the
current number of finished jobs before sending `Schedule`.

Or just make it be blocked until `applyAll` routine triggers on the
config-change job. This patch just removes `waitForApply`, and
signal `raftDone` to wait until `applyAll` finishes applying entries.

Confirmed that it fixes the issue, as below:

```
~:43.198354 I | rafthttp: started streaming with peer 36cda5222aba364b (stream MsgApp v2 reader)
~:43.198740 I | etcdserver: [DEBUG] 3988bc20c2b2e40c waitForApply before
~:43.198836 I | etcdserver: [DEBUG] 3988bc20c2b2e40c starts wait for 0 pending jobs, 1 finished jobs
~:43.200696 I | integration: launched 3169361310155633349 ()
~:43.201784 I | etcdserver: [DEBUG] [0] 3988bc20c2b2e40c is scheduling conf change on 36cda5222aba364b
~:43.201884 I | etcdserver: [DEBUG] [1] 3988bc20c2b2e40c is scheduling conf change on 3988bc20c2b2e40c
~:43.201965 I | etcdserver: [DEBUG] [2] 3988bc20c2b2e40c is scheduling conf change on cf5d6cbc2a121727
~:43.202070 I | etcdserver: [DEBUG] 3988bc20c2b2e40c scheduled conf change on 36cda5222aba364b
~:43.202139 I | etcdserver: [DEBUG] 3988bc20c2b2e40c scheduled conf change on 3988bc20c2b2e40c
~:43.202204 I | etcdserver: [DEBUG] 3988bc20c2b2e40c scheduled conf change on cf5d6cbc2a121727
~:43.202444 I | etcdserver: [DEBUG] 3988bc20c2b2e40c applyConfChange on 36cda5222aba364b (request ID: 0) before
~:43.204486 I | etcdserver/membership: added member 36cda5222aba364b [unix://127.0.0.1:2100913646] to cluster 425d73f1b7b01674
~:43.204588 I | etcdserver: [DEBUG] 3988bc20c2b2e40c applyConfChange on 36cda5222aba364b (request ID: 0) after
~:43.204703 I | etcdserver: [DEBUG] 3988bc20c2b2e40c applyConfChange on 36cda5222aba364b (request ID: 0) after trigger
~:43.204791 I | etcdserver: [DEBUG] 3988bc20c2b2e40c applyConfChange on 3988bc20c2b2e40c (request ID: 0) before
~:43.205689 I | etcdserver/membership: added member 3988bc20c2b2e40c [unix://127.0.0.1:2101113646] to cluster 425d73f1b7b01674
~:43.205783 I | etcdserver: [DEBUG] 3988bc20c2b2e40c applyConfChange on 3988bc20c2b2e40c (request ID: 0) after
~:43.205929 I | etcdserver: [DEBUG] 3988bc20c2b2e40c applyConfChange on 3988bc20c2b2e40c (request ID: 0) after trigger
~:43.206056 I | etcdserver: [DEBUG] 3988bc20c2b2e40c applyConfChange on cf5d6cbc2a121727 (request ID: 0) before
~:43.207353 I | etcdserver/membership: added member cf5d6cbc2a121727 [unix://127.0.0.1:2100713646] to cluster 425d73f1b7b01674
~:43.207516 I | etcdserver: [DEBUG] 3988bc20c2b2e40c applyConfChange on cf5d6cbc2a121727 (request ID: 0) after
~:43.207619 I | etcdserver: [DEBUG] 3988bc20c2b2e40c applyConfChange on cf5d6cbc2a121727 (request ID: 0) after trigger
~:43.207710 I | etcdserver: [DEBUG] 3988bc20c2b2e40c finished scheduled conf change on 36cda5222aba364b
~:43.207781 I | etcdserver: [DEBUG] 3988bc20c2b2e40c finished scheduled conf change on 3988bc20c2b2e40c
~:43.207843 I | etcdserver: [DEBUG] 3988bc20c2b2e40c finished scheduled conf change on cf5d6cbc2a121727
~:43.207951 I | etcdserver: [DEBUG] 3988bc20c2b2e40c finished wait for 0 pending jobs (current pending 0, finished 1)
~:43.208029 I | rafthttp: started HTTP pipelining with peer cf5d6cbc2a121727
~:43.210339 I | rafthttp: peer 3988bc20c2b2e40c became active
~:43.210435 I | rafthttp: established a TCP streaming connection with peer 3988bc20c2b2e40c (stream MsgApp v2 reader)
~:43.210861 I | rafthttp: started streaming with peer 3988bc20c2b2e40c (writer)
~:43.211732 I | etcdserver: [DEBUG] 3988bc20c2b2e40c waitForApply after
```

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-25 10:22:27 -07:00
b94b8b5707 etcd-runner: move root cmd into command package
this allows easier sharing of global variable for sub commands.
2017-04-25 10:19:20 -07:00
fbbc4a4979 Merge pull request #7732 from heyitsanthony/lease-err-ka
clientv3: don't halt lease client if there is a lease error
2017-04-25 07:06:31 -07:00
2fd6df922a integration: close proxy's lease client 2017-04-24 23:49:45 -07:00
cb8524fbec benchmark: use new lease interface 2017-04-24 23:49:45 -07:00
78afc853f4 etcd-runner: update to use new lease interface 2017-04-24 23:49:45 -07:00
b5384ac1c0 grpcproxy: use new lease interface 2017-04-24 23:49:44 -07:00
70f0bbe38c etcdcdtl: use new lease interface 2017-04-24 23:49:44 -07:00
f3053265ae clientv3/integration: use new interfaces in lease tests 2017-04-24 23:49:44 -07:00
f224d74ed7 concurrency: use new lease interface in session 2017-04-24 23:49:44 -07:00
d5f414f69b clientv3: don't halt lease client if there is a lease error
Fixes #7488
2017-04-24 23:49:44 -07:00
f254e38385 Merge pull request #7806 from heyitsanthony/testutil-assert
testutil: assert functions
2017-04-23 01:30:39 -07:00
2ef3eac5ca vendor: remove testify
Fixes #7805
2017-04-22 20:29:58 -07:00
76fb6ebcbb scripts: remove testify hack in updatedep 2017-04-22 20:29:58 -07:00
978cf804ca store: replace testify asserts with testutil asserts 2017-04-22 20:29:58 -07:00
6f06e1cb47 testutil: add assert functions 2017-04-22 20:29:58 -07:00
c5d4f3e7db Merge pull request #7804 from heyitsanthony/current-watch-fix
clientv3: set current revision to create rev regardless of CreateNotify
2017-04-22 14:09:17 -07:00
7f159b6a8d Merge pull request #7803 from heyitsanthony/snip-deprecated-machines
v2http: remove deprecated /v2/machines path
2017-04-22 14:08:55 -07:00
ca4acceb1e clientv3: set current revision to create rev regardless of CreateNotify
Turns out the optimization to ignore setting the init rev for
current revision watches breaks some ordering assumptions. Since
Watch only returns a channel once it gets a response, it should
bind the revision at the time of the first create response.

Was causing TestWatchReconnInit to fail.
2017-04-22 13:04:38 -07:00
94f6a11bbf Merge pull request #7756 from heyitsanthony/weaken-v3elect-test
integration: permit dropping intermediate leader values on observe
2017-04-22 12:13:51 -07:00
c1300c81b3 concurrency: clarify Observe semantics; only fetches subsequence 2017-04-22 11:26:11 -07:00
e6a789d541 integration: permit dropping intermediate leader values on observe
Weaken TestV3ElectionObserve so it only checks that it observes a strictly
monotonically ascending leader transition sequence following the first
observed leader. First, the Observe will issue the leader channel before
getting a response for its first get; the election revision is only bound
after returning the channel. So, Observe can't be expected to always
return the leader at the time it was started.  Second, Observe fetches
the current leader based on its create revision, but begins watching on its
ModRevision; this is important so that elections still work in case the
leader issues proclamations following a compaction that exceeds its
creation revision. So, Observe can't be expected to return the entire
proclamation sequence for a single leader.

Fixes #7749
2017-04-22 11:26:11 -07:00
2bb33181b6 v2http: remove deprecated /v2/machines path 2017-04-22 03:11:21 -07:00
7da451640f Merge pull request #7795 from heyitsanthony/dont-force-initrev
clientv3: only update initReq.rev == 0 with watch revision
2017-04-22 02:50:55 -07:00
4ab818a856 clientv3: only update initReq.rev == 0 with creation watch revision
Always updating the initReq.rev on watch create will resume from the wrong
revision if initReq is ever nonzero.
2017-04-21 20:22:51 -07:00
ec470944f8 clientv3/integration: test watch resume with disconnect before first event 2017-04-21 20:22:51 -07:00
fe1ce3a2f0 integration: add pause/unpause to client bridge
Resetting connections sometimes isn't enough; need to stop/resume
accepting connections for some tests while keeping the member up.
2017-04-21 20:22:51 -07:00
91039bef7c Merge pull request #7799 from heyitsanthony/ctxize-resolve
netutil: use "context" and ctx-ize TCP addr resolution
2017-04-21 16:30:32 -07:00
a73950545a Merge pull request #7801 from heyitsanthony/s1027
*: clear redundant return statement warnings (S1027)
2017-04-21 15:18:40 -07:00
14d6ed9e5f *: clear redundant return statement warnings (S1027) 2017-04-21 14:01:00 -07:00
a9087ee659 Merge pull request #7714 from glevand/for-merge-cross
Add multi arch release support
2017-04-21 10:56:01 -07:00
bf987185a9 release.md: Update for multi arch release
Signed-off-by: Geoff Levand <geoff@infradead.org>
2017-04-21 10:04:41 -07:00
07c07cea25 release: Add multi arch support
Signed-off-by: Geoff Levand <geoff@infradead.org>
2017-04-21 10:04:41 -07:00
0c8988aa07 build-docker: Updates for multi-arch release
o Set -e to abort script if a command fails.
 o Allow custom docker 'TAG' from the environment.
 o Move arch suffix to version to allow all images to
   be put into a single repository.
 o Enable cross builds.  When doing cross builds where the
   host and target architectures are different 'RUN mkdir'
   will fail since the target container cannot be run on
   the host.  To work around this, create the directories
   in build-docker, then use ADD in the Dockerfile.
 o Add Dockerfile-release.arm64

Signed-off-by: Geoff Levand <geoff@infradead.org>
2017-04-21 10:04:41 -07:00
8309ca92d7 build-aci: Add multi arch support
Uses GOARCH to build for a targeted arch.

Usage: GOARCH=... BINARYDIR=... BUILDDIR=... ./scripts/build-aci version

Signed-off-by: Geoff Levand <geoff@infradead.org>
2017-04-21 10:04:41 -07:00
fb6287240f build-binary: Add arm64
Signed-off-by: Geoff Levand <geoff@infradead.org>
2017-04-21 10:04:41 -07:00
85e87e8f6b netutil: use "context" and ctx-ize TCP addr resolution 2017-04-21 10:01:53 -07:00
8bad78cb98 Merge pull request #7788 from gyuho/trace
vendor: use 'x/net/trace' with std 'context'
2017-04-20 18:18:33 -07:00
bfd5f38af3 vendor: use 'x/net/trace' with std 'context'
For https://github.com/coreos/etcd/issues/6174.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-20 17:28:59 -07:00
3a93928b07 Merge pull request #7779 from heyitsanthony/pkgize-gw
*: put gateway stubs in packages separate from pb stubs
2017-04-20 14:53:56 -07:00
82b7e4fd3b Merge pull request #7786 from gyuho/rate
vendor: update 'golang.org/x/time/rate' with context
2017-04-20 13:51:43 -07:00
da1bba8f39 vendor: update 'golang.org/x/time/rate' with context
Go just updated its import path c06e80d930

For https://github.com/coreos/etcd/issues/6174.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-20 11:18:34 -07:00
633a4e6b52 Merge pull request #7785 from heyitsanthony/printerize-lease
ctlv3: use printer for lease command results
2017-04-20 10:36:58 -07:00
cf8c66c9f0 ctlv3: use printer for lease command results
Fixes #7783
2017-04-20 09:41:04 -07:00
85c9ea92bb Merge pull request #7745 from heyitsanthony/bom
*: add bill of materials
2017-04-19 15:29:20 -07:00
a2b5444a26 test: ensure clientv3 has no grpc-gateway dependency 2017-04-19 13:09:23 -07:00
393e4335b7 *: put gateway stubs into their own packages
Fixes #7773
2017-04-19 13:09:06 -07:00
fd11523af9 scripts: move gateway stubs into gw/ packages 2017-04-19 12:50:04 -07:00
04fc57ac1d Merge pull request #7775 from heyitsanthony/fix-lease-print
ctlv3: keep lease as integer in fields printer
2017-04-19 09:08:17 -07:00
385e18bc6c Merge pull request #7768 from gyuho/close-serverc
embed: signal 'grpcServerC' before cmux serve
2017-04-19 08:24:22 -07:00
35dff4cbc3 Merge pull request #7769 from heyitsanthony/more-time-lease-test
clientv3/integration: sleep less in TestLeaseRenewLostQuorum
2017-04-19 00:57:49 -07:00
d24a763a12 Merge pull request #7771 from heyitsanthony/remove-2.0-version
etcdserver: remove 2.0 StatusNotFound version check
2017-04-19 00:57:19 -07:00
fcd4871e2a ctlv3: keep lease as integer in fields printer
Output was giving %!d(string=) instead of the expected lease ID
value.
2017-04-19 00:48:13 -07:00
d3456b5ecd Merge pull request #7759 from mitake/fix-7724
*: simply ignore ErrAuthNotEnabled in clientv3 if auth is not enabled
2017-04-19 16:07:18 +09:00
3d8e2e1171 etcdserver: remove 2.0 StatusNotFound version check 2017-04-18 20:22:56 -07:00
c654370d6d clientv3/integration: sleep less in TestLeaseRenewLostQuorum
Server Stop+Restart sometimes takes more than 500ms, so with a
one second window the lease client may not get a chance to issue
a keepalive and get a lease extension before the lease client
timer elapses. Instead, sleep for a shorter period of time (while
still guaranteeing a keepalive resend during quorum loss) and
skip the test if server restart takes longer than the lease TTL.

Fixes #7346
2017-04-18 19:35:20 -07:00
e1306bff8f *: simply ignore ErrAuthNotEnabled in clientv3 if auth is not enabled
Fix https://github.com/coreos/etcd/issues/7724
2017-04-19 11:27:14 +09:00
ba299bcaaf embed: signal 'grpcServerC' before cmux serve
CMux.Serve blocks, so grpcServerC was never closed.

Fix https://github.com/coreos/etcdlabs/issues/216.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-18 17:49:50 -07:00
8fa4b8da6e Merge pull request #7767 from heyitsanthony/transport-resolve-dnsnames
transport: resolve DNSNames when SAN checking
2017-04-18 17:28:01 -07:00
cb408ace21 Merge pull request #7757 from heyitsanthony/fix-speedy-close
etcdserver: initialize raftNode with constructor
2017-04-18 15:06:45 -07:00
05582ad5b2 transport: resolve DNSNames when SAN checking
The current transport client TLS checking will pass an IP address into
VerifyHostnames if there is DNSNames SAN. However, the go runtime will
not resolve the DNS names to match the client IP. Intead, resolve the
names when checking.
2017-04-18 13:21:26 -07:00
30552e28ed Merge pull request #7766 from gyuho/url
embed: use '*url.URL.Hostname(),Port()' for Go 1.8
2017-04-18 13:16:13 -07:00
f10a70401b embed: use '*url.URL.Hostname(),Port()' for Go 1.8
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-18 12:08:59 -07:00
94044cee4f Merge pull request #7765 from gyuho/mutex-profile
pkg/debugutil: add 'mutex' profiler (Go 1.8+)
2017-04-18 11:34:23 -07:00
5161b74799 pkg/debugutil: add 'mutex' profiler (Go 1.8+)
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-18 10:56:06 -07:00
dd0d590217 Merge pull request #7764 from gyuho/NEWS
NEWS: update v3.1.6
2017-04-18 10:31:13 -07:00
2511535ea0 NEWS: update v3.1.6
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-18 10:09:53 -07:00
714b48a4b4 etcdserver: initialize raftNode with constructor
raftNode was being initialized in start(), which was causing
hangs when trying to stop the etcd server since the stop channel
would not be initialized in time for the stop call. Instead,
setup non-configurable bits in a constructor.

Fixes #7668
2017-04-18 09:33:59 -07:00
8fdf8f752b Merge pull request #7752 from heyitsanthony/clientv3-fetch-keyspace-pfx
clientv3: translate WithPrefix() into WithFromKey() for empty key
2017-04-18 09:24:53 -07:00
6dd807481c Merge pull request #7758 from a-robinson/leak
raft: Avoid holding unneeded memory in unstable log's entries array
2017-04-18 08:27:40 -07:00
45406d8486 raft: Avoid holding unneeded memory in unstable log's entries array
Accumulation of old entries in the underlying array backing the
entries slice has been found to cause massive memory growth in
CockroachDB for workloads that do large (1MB) writes
(https://github.com/cockroachdb/cockroach/issues/14776)

This doesn't appear to have much consistent effect on the raft
benchmarks, although it's worth noting that they vary quite a bit
between runs so it's kind of tough to draw strong conclusions from them.
Let me know if there are any different benchmarks you'd like me to run!

Fixes #7746

benchmark              old ns/op     new ns/op     delta
BenchmarkOneNode-8     3283          3125          -4.81%

benchmark              old allocs     new allocs     delta
BenchmarkOneNode-8     6              6              +0.00%

benchmark              old bytes     new bytes     delta
BenchmarkOneNode-8     796           727           -8.67%

benchmark                     old ns/op     new ns/op     delta
BenchmarkProposal3Nodes-8     4269          4337          +1.59%

benchmark                     old allocs     new allocs     delta
BenchmarkProposal3Nodes-8     15             13             -13.33%

benchmark                     old bytes     new bytes     delta
BenchmarkProposal3Nodes-8     5839          4544          -22.18%
2017-04-18 10:55:16 -04:00
4fcea334ad Merge pull request #7737 from gyuho/aaa
*: clean up for Go 1.8+
2017-04-18 03:37:43 -07:00
8aaa1ed911 *: use '*tls.Config.Clone' in Go 1.8
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-17 20:08:27 -07:00
99a2d6c4b1 integration: use 'time.Until' in Go 1.8
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-17 20:08:27 -07:00
cbe37e5213 travis: bump up to Go 1.8.1
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-17 20:08:27 -07:00
e7e7451213 Merge pull request #7689 from mitake/bench-leader
benchmark: a new flag --target-leader for targetting a leader endpoint
2017-04-18 10:24:24 +09:00
e771c6042b Merge pull request #7743 from gyuho/shutdown-grpc-server
*: use gRPC server GracefulStop
2017-04-17 17:12:52 -07:00
c011e2ddd5 Merge pull request #7755 from gyuho/auth-test
clientv3/integration: add 'TestUserErrorAuth'
2017-04-17 17:12:24 -07:00
81291b23b1 clientv3/integration: add 'TestUserErrorAuth'
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-17 17:11:37 -07:00
c798f81398 Merge pull request #7753 from gyuho/helper
etcdserver: fill-in Auth API Header in apply layer
2017-04-17 15:18:46 -07:00
8a5f085a65 *: add bill of materials 2017-04-17 14:50:55 -07:00
cb979bc2cc vendor: update gopkg.in/yaml.v2 to reflect current license 2017-04-17 14:34:59 -07:00
253e5a90bb integration: test auth API response header revision
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-17 14:26:30 -07:00
ac69e63fa8 etcdserver: fill-in Auth API Header in apply layer
Replacing "etcdserver: fill a response header in auth RPCs"
The revision should be set at the time of "apply",
not in later RPC layer.

Fix https://github.com/coreos/etcd/issues/7691

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-17 14:26:26 -07:00
5000d29b4a mvcc: remove stopc select case in Hash
Revert change in 33acbb694b.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-17 14:19:48 -07:00
8ffd58fb3b mvcc/backend: remove t.tx.DB()==nil checks with GracefulStop
Revert https://github.com/coreos/etcd/pull/6662.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-17 14:17:00 -07:00
cd470f9ccd Revert "mvcc: test inflight Hash to trigger Size on nil db"
This reverts commit 994e8e4f40.

Since now etcdserver gracefully shuts down the gRPC server
2017-04-17 14:15:43 -07:00
472a536052 integration: test 'inflight' range requests
- Test https://github.com/coreos/etcd/issues/7322.
- Remove test case added in https://github.com/coreos/etcd/pull/6662.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-17 14:15:36 -07:00
c407e097e2 embed: gracefully shut down gRPC server
Fix https://github.com/coreos/etcd/issues/7322.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-17 14:12:40 -07:00
ea5f6dab6b etcdmain: trigger embed.Etcd.Close for OS interrupt
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-17 14:07:16 -07:00
0d52598fc1 Merge pull request #7754 from heyitsanthony/doc-check-v3-data
op-guide: add command for checking if there's any v3 data
2017-04-17 14:05:57 -07:00
cf8ab8c7a6 op-guide: add command for checking if there's any v3 data
Fixes #7681
2017-04-17 12:31:21 -07:00
6b030ed7db benchmark: a new flag --target-leader for targetting a leader endpoint
Current benchmark picks destinations of RPCs in a random
manner. However, it will result divergent benchmarking result because
RPCs other than serializable range must be forwarded to a leader node
when a follower node receives it. This commit adds a new flag
--target-leader for avoid the problem. If the flag is passed,
benchmark always picks an endpoint of a leader node.
2017-04-17 14:24:35 +09:00
6ad9d1609a Merge pull request #7717 from mitake/auth-output-fields
etcdctl: show responses of auth RPCs if --write-output=fields is passed
2017-04-17 14:12:59 +09:00
f92c11e1f2 clientv3: translate WithPrefix() into WithFromKey() for empty key 2017-04-16 20:47:18 -07:00
f0143916de clientv3/integration: test fetching entire keyspace 2017-04-16 20:47:18 -07:00
7e3dd74314 Merge pull request #7748 from darasion/master
clientv3/namespace: fix incorrect watching prefix-end
2017-04-15 15:17:35 -07:00
0e7fd4a37c clientv3/namespace: fix incorrect watching prefix-end
using "abc" will watch the wrong range when WithPrefix() specified.
2017-04-15 22:31:50 +08:00
e2d0db95eb Merge pull request #7744 from heyitsanthony/fix-auth-stop-race
auth: fix race on stopping simple token keeper
2017-04-14 12:38:47 -07:00
2951e7f6e4 Merge pull request #7733 from heyitsanthony/fix-client-foreign-dial
clientv3: let client dial endpoints not in the balancer
2017-04-14 10:45:17 -07:00
fdf7798137 auth: fix race on stopping simple token keeper
run goroutine was resetting a field for no reason and without holding a lock.
This patch cleans up the run goroutine management to make the start/stop path
less racey in general.
2017-04-14 09:50:33 -07:00
8efc42e25f etcdctl: show responses of auth RPCs if --write-output=fields is passed 2017-04-14 11:48:42 +09:00
cfbc5e5c3b Merge pull request #7706 from gyuho/wait-apply-conf-change
etcdserver: wait apply on conf change Raft entry
2017-04-13 16:54:06 -07:00
04354f32ab etcdserver: wait apply on conf change Raft entry
When apply-layer sees configuration change entry in
raft.Ready.CommittedEntries, the server should not proceed
until that entry is applied. Otherwise, follower's raft
layer advances, possibly election-timeouts, and becomes
the leader in single-node cluster, before add-node conf
change of other nodes is applied.

Fix https://github.com/coreos/etcd/issues/7595.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-13 15:59:24 -07:00
957c9cd1df Merge pull request #7734 from mitake/status-auth
etcdserver: let Status() not require authentication
2017-04-13 15:53:33 -07:00
8fdfac2843 Merge pull request #7730 from heyitsanthony/return-member-list
*: return updated member list in v3 rpcs
2017-04-13 15:39:38 -07:00
1153e1e7d9 Merge pull request #7687 from heyitsanthony/deny-tls-ipsan
transport: deny incoming peer certs with wrong IP SAN
2017-04-13 15:03:25 -07:00
7607ace95a Merge pull request #7735 from gyuho/grpc-shutdown
pkg/transport: add 'IsClosedConnError'
2017-04-13 13:16:57 -07:00
6c2fb5105d clientv3/integration: use 'transport.IsClosedConnError'
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-13 11:55:23 -07:00
56b111df0c rafthttp: use 'transport.IsClosedConnError'
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-13 11:55:22 -07:00
8ce579aac9 pkg/transport: add 'IsClosedConnError'
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-13 11:55:18 -07:00
9eb3e2c6b4 Merge pull request #7736 from gyuho/todo
embed: remove ReadTimeout TODO
2017-04-13 11:40:53 -07:00
0b19921ec0 Merge pull request #7729 from heyitsanthony/fix-auth-token-crash
auth: protect simpleToken with single mutex and check if enabled
2017-04-13 11:23:15 -07:00
537c7100b0 embed: remove ReadTimeout TODO
ref. https://github.com/golang/go/issues/9524#issuecomment-271937649

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-13 10:55:45 -07:00
2dd361aba5 Merge pull request #7694 from heyitsanthony/report-test
report: add test for Report interface
2017-04-13 10:39:55 -07:00
8077be93b8 Merge pull request #7728 from nokia/clients
Adding C++ bindings
2017-04-13 10:05:18 -07:00
b9f9d2e786 Documentation: Adding a separate v2 and a v3 API binding for C++
To draw the attention of the community to these.
2017-04-13 13:15:06 +02:00
67f2e41f20 etcdserver: let Status() not require authentication
The information that can be obtained with the RPC doesn't need to be
protected.

Fix https://github.com/coreos/etcd/issues/7721
2017-04-13 17:39:09 +09:00
4582a7e900 Merge pull request #7731 from heyitsanthony/remove-dead-srv-arg
discovery: remove dead token argument from SRVGetCluster
2017-04-12 20:09:11 -07:00
46971fa1db integration: test client can dial endpoints not in balancer 2017-04-12 20:07:04 -07:00
9b8e39e7ca clientv3: let client.Dial() dial endpoints not in the balancer 2017-04-12 20:07:03 -07:00
e58d39611a Merge pull request #7725 from heyitsanthony/platform-subsection
Documentation: reshuffle op-guide to include platforms and upgrading
2017-04-12 17:05:14 -07:00
780a7d359c discovery: remove dead token argument from SRVGetCluster
Can add the argument back when it's actually used something.
2017-04-12 16:49:44 -07:00
33a0496b5e report: add test for Report interface 2017-04-12 16:41:32 -07:00
d9ec6b4d22 *: return updated member list in v3 rpcs
Now it's possible to atomically know the new member configuration from
issuing a membership change RPC.
2017-04-12 16:24:51 -07:00
68837b9693 Documentation: reshuffle op-guide to include platforms and upgrading 2017-04-12 15:40:53 -07:00
2046d66927 Merge pull request #7715 from gyuho/fmt
tools/benchmark: fix misc gofmt warnings
2017-04-12 14:27:37 -07:00
2d97500e64 test: do not ignore 'tools/benchmark/cmd'
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-12 14:13:30 -07:00
373a04a181 tools/benchmark: fix misc gofmt warnings
ref. https://golang.org/cmd/gofmt/#hdr-The_simplify_command

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-12 14:12:05 -07:00
70a9929b5d transport: use actual certs for listener tests 2017-04-12 13:41:33 -07:00
cad1215b18 *: deny incoming peer certs with wrong IP SAN 2017-04-12 13:41:33 -07:00
18bccb4285 auth: protect simpleToken with single mutex and check if enabled
Dual locking doesn't really give a convincing performance improvement and
the lock ordering makes it impossible to safely check if the TTL keeper
is enabled or not.

Fixes #7722
2017-04-12 13:40:09 -07:00
712f6cb0e1 integration: test requests with valid auth token but disabled auth
etcd was crashing since auth was assuming a token implies auth is enabled.
2017-04-12 13:17:33 -07:00
817825d549 Merge pull request #7726 from smeruelo/fix-doc
Documentation: add missing link
2017-04-12 10:57:02 -07:00
79d27328e3 Documentation: add missing link 2017-04-12 19:50:27 +02:00
95c6c4b713 Merge pull request #7712 from heyitsanthony/stm-sersnap
*: rename Snapshot STM isolation to SerializableSnapshot
2017-04-12 09:03:13 -07:00
4f9aa276bd *: rename Snapshot STM isolation to SerializableSnapshot
Pure Snapshot isolation would permit read conflicts. Change the name
from Snapshot to SerializableSnapshot to reflect that it will also
reject read conflicts.
2017-04-11 17:17:50 -07:00
6ebadda395 Merge pull request #7711 from FranGM/master
Documentation: Add Hosted Graphite to prod users
2017-04-11 13:53:13 -07:00
e521a9116f Merge pull request #7693 from heyitsanthony/why-etcd-doc
Documentation/learning: finish why.md
2017-04-11 13:33:17 -07:00
7684bfdf65 Merge pull request #7704 from heyitsanthony/txn-bench
benchmark: add txn-put benchmark
2017-04-11 12:44:20 -07:00
ce2f65508d Documentation: Add Hosted Graphite to prod users 2017-04-11 20:13:57 +01:00
b4869cb03e Documentation/learning: finish why.md 2017-04-11 12:04:46 -07:00
216a6347b2 Merge pull request #7707 from gyuho/net
vendor: update 'golang.org/x/net'
2017-04-11 09:53:03 -07:00
fd5766bdf6 Merge pull request #7708 from gyuho/rkt
*: coreos/rkt -> rkt/rkt
2017-04-11 09:06:00 -07:00
7fb1f68ff8 *: coreos/rkt -> rkt/rkt
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-11 08:48:48 -07:00
a0dc471520 vendor: update 'golang.org/x/net'
There have been a few bug fixes in upstream.
Mainly for our grpc-go sub-dependencies

'idna' package introduces a new dependency 'golang.org/x/text'

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-11 08:46:07 -07:00
4d1b8b1e47 benchmark: add txn-put benchmark
Submits multiple put ops in a single txn.
2017-04-10 17:01:49 -07:00
7da79de74b Merge pull request #7703 from gyuho/rafthttp
rafthttp: move test-only functions to '_test.go'
2017-04-10 16:59:47 -07:00
b694cfc69f Merge pull request #7702 from heyitsanthony/rpc-swagger
v3lock, v3election: generate and serve grpc-gateway endpoints
2017-04-10 16:48:11 -07:00
d26bdbaf81 Merge pull request #7701 from heyitsanthony/cov-strip-generated
test: remove generated files from coverage statistics
2017-04-10 16:22:15 -07:00
8db8d01712 rafthttp: move test-only functions to '_test.go'
Not used in actual code base, only used in tests

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-10 16:07:31 -07:00
2030c85071 test: ignore v3electionpb and v3lockpb for static checks 2017-04-10 15:21:07 -07:00
93594006df embed: register grpc-gateway endpoints for v3lock and v3election 2017-04-10 15:21:07 -07:00
78a5eb79b5 *: add swagger and grpc-gateway assets for v3lock and v3election 2017-04-10 15:21:07 -07:00
b5dd41e625 test: remove generated files from coverage statistics
client/keys.generated.go has poor coverage but it's generated; other
generated files (e.g., pb stuff) are ignored, so this should be ignored too.
2017-04-10 14:30:15 -07:00
a1a72202ff Merge pull request #7666 from calebamiles/aws-platform-guide
Adds AWS platform guide
2017-04-10 14:14:52 -07:00
2a074523a4 Documentation: Adds AWS platform guide
Add guide for deployed etcd on AWS discussing resource planning and cluster design
2017-04-10 13:09:33 -07:00
25acdbf41b Merge pull request #7634 from heyitsanthony/election-rpc
Election RPC service
2017-04-07 20:03:09 -07:00
55e2355326 Merge pull request #7695 from heyitsanthony/upgrade-grpc-gateway
vendor: upgrade grpc-gateway to v1.2.0
2017-04-07 19:04:00 -07:00
5f366db7d1 etcd-runner: update election command to use new Leader() interface 2017-04-07 16:36:38 -07:00
78422eaa17 embed: add Election service 2017-04-07 16:36:38 -07:00
bf047ed9d5 integration: v3 election rpc tests 2017-04-07 16:36:38 -07:00
dc8115a534 v3election: Election RPC service
Fixes #7589
2017-04-07 16:36:38 -07:00
9ba69ff317 scripts: update genproto.sh to include v3election 2017-04-07 16:36:38 -07:00
135a40751e v3rpc: force RangeEnd=nil if length is 0
gRPC will replace empty strings with nil, but for the embedded case it's
possible for []byte{} to slip in and confuse the single key / >= key
watch logic.
2017-04-07 16:36:38 -07:00
4b4f5be74a concurrency: don't skip leader updates in Observe()
The Get for the leader key will fetch based on the latest revision
instead of the deletion revision, missing leader updates between
the delete and the Get.

Although it's usually safe to skip these updates since they're
stale, it makes testing more difficult and in some cases the
full leader update history is desirable.
2017-04-07 16:36:38 -07:00
80c1b9c13a concurrency: support resuming elections if leadership already held
If a client already knows it holds leadership, let it create an
election object with its leadership information.
2017-04-07 16:36:38 -07:00
d1ae4cd5bd concurrency: only delete on election resignation if create revision matches
Addresses a case where two clients share the same lease. A client resigns but
disconnects / crashes and doesn't realize it. Another client reuses the
lease and gets leadership with a new key. The old client comes back and
tries to resign again, revoking the new leadership of the new client.
2017-04-07 16:36:37 -07:00
4b5bb7f212 concurrency: return v3.GetResponse for Election.Leader()
The full information about the leader's key is necessary to
safely use elections with transactions. Instead of returning
only the value on Leader(), return the entire GetResposne.
2017-04-07 16:36:37 -07:00
a6cab69c88 concurrency: expose leader revision and proclaim headers for election 2017-04-07 16:36:37 -07:00
2769cae6bd vendor: upgrade grpc-gateway to v1.2.0 2017-04-07 16:36:14 -07:00
c0560be98a Merge pull request #7692 from heyitsanthony/upgrade-grpc
vendor: upgrade grpc to 1.2.1
2017-04-07 16:04:50 -07:00
9ba435d902 vendor: upgrade grpc to 1.2.1 2017-04-07 14:32:00 -07:00
63bb560820 Merge pull request #7688 from heyitsanthony/short-mask
test: fix fmt pass, shorten warnings, clear SA1016
2017-04-07 12:33:57 -07:00
88d4e7ebeb netutil: fix unused err staticcheck failure
Clears SA4006
2017-04-07 10:52:54 -07:00
7e05b33aa0 *: remove os.Kill from signal.Notify
Clears SA1016 in staticcheck
2017-04-07 10:52:54 -07:00
d31701bab5 test: fix fmt pass and shorten suppression warnings
If gosimple or staticcheck had no output, it no other passes would be
applied because they were using `continue`. Similarly, the suppression
check never worked at all since it wasn't the result data into egrep.

Fixes #7685
2017-04-06 21:33:03 -07:00
25ed908c18 Merge pull request #7684 from gyuho/a
clientv3/integration: fix minor typo in Fatalf
2017-04-06 19:15:51 -07:00
369d561350 clientv3/integration: fix minor typo in Fatalf
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-06 18:26:42 -07:00
7c5991c2e6 Merge pull request #7676 from fanminshi/add_dns_srv
etcdmain: support SRV discovery for gRPC proxy
2017-04-06 12:32:40 -07:00
bea4c62965 Merge pull request #7677 from heyitsanthony/fix-waitsubstream
clientv3: register waitCancelSubstreams closingc goroutine with waitgroup
2017-04-06 11:10:06 -07:00
2bc1dfd921 etcdmain: support SRV discovery for gRPC proxy
FIX #7562
2017-04-06 10:45:19 -07:00
e1cf766695 Merge pull request #7674 from gyuho/debug
ctlv3: add '--debug' flag (to enable grpclog)
2017-04-05 17:39:37 -07:00
7388911e0c ctlv3: add '--debug' flag (to enable grpclog)
By default, grpclog is disabled. It should be configurable
for debugging purposes, as we did in v2.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-05 17:11:31 -07:00
aab2eda7df clientv3: register waitCancelSubstreams closingc goroutine with waitgroup
Fixes #7598
2017-04-05 16:06:53 -07:00
408de4124b Merge pull request #7675 from gyuho/tls-min-version
clientv3/yaml: use TLS 1.2 in min version
2017-04-05 12:58:16 -07:00
dee467dc24 clientv3/yaml: use TLS 1.2 in min version
To be consistent with 'pkg/transport'

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-05 11:50:35 -07:00
83577a5d08 Merge pull request #7670 from heyitsanthony/fix-lease-be-race
lease: acquire BatchTx lock in fakeDeleter
2017-04-05 11:08:15 -07:00
d42c1f5131 Merge pull request #7646 from andelf/fix-unix-socket-url
*: fix a bug in handling unix socket urls
2017-04-05 09:24:38 -07:00
43f795a485 Merge pull request #7659 from gyuho/aaa
pkg/transport: remove port in Certificate.IPAddresses
2017-04-05 04:29:44 -07:00
4f27981c46 *: fix a bug in handling unix socket urls
Now use url.Host + url.Path as unix socket path

Fixes #7644
2017-04-05 14:33:13 +08:00
c7bdd7e2c5 Merge pull request #7669 from mitake/byte-affine
auth, adt: introduce a new type ByteAffineComparable
2017-04-05 15:19:08 +09:00
c4a45c5713 auth, adt: introduce a new type BytesAffineComparable
It will be useful for avoiding a cost of casting from string to
[]byte. The permission checker is the first user of the type.
2017-04-05 13:17:24 +09:00
42d56d5ef7 lease: acquire BatchTx lock in fakeDeleter
Revoke expects the BatchTx lock to be held when holding the TxnDeleter
because it updates the lease bucket. The tests don't hold the lock so
it may race with the backend commit loop.

Fixes #7662
2017-04-04 20:52:23 -07:00
d51d381eca Merge pull request #7656 from gyuho/more-adapter
*: add cluster API adapter
2017-04-04 20:10:24 -07:00
63355062dc Merge pull request #7649 from mitake/range-open-ended
etcdctl: add a new option --open-ended for unlimited range permission
2017-04-05 11:03:52 +09:00
f7c99208b5 Merge pull request #7667 from ElijahCaine/relative-links-1
Docs: replace absolute links with relative ones.
2017-04-04 18:33:02 -07:00
c0fc389c98 Merge pull request #7661 from heyitsanthony/cov-fail-report
test: generate coverage report even if some tests fail
2017-04-04 16:46:46 -07:00
31c1931b7b Docs: replace absolute links with relative ones. 2017-04-04 15:21:42 -07:00
6978471712 Merge pull request #7664 from gyuho/safe-revision-access
auth: use atomic access to 'authStore.revision'
2017-04-04 13:56:20 -07:00
3edd36315d auth: use atomic access to 'authStore.revision'
Fix https://github.com/coreos/etcd/issues/7660.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-04 13:16:02 -07:00
23e952ccfd test: generate coverage report even if some tests fail
The coverage data is still useful even if some tests fail. Instead of
terminating the coverage pass on any test failure, collect and pass
the failed tests, generate the coverage report, then report the failed
packages and exit with an error.
2017-04-04 11:12:18 -07:00
1e3274dfa2 integration: use cluster adapter in tests
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-04 10:08:51 -07:00
8a7a548a6d pkg/transport: remove port in Certificate.IPAddresses
etcd passes 'url.URL.Host' to 'SelfCert' which contains
client, peer port. 'net.ParseIP("127.0.0.1:2379")' returns
'nil', and the client on this self-cert will see errors
of '127.0.0.1 because it doesn't contain any IP SANs'

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-04 09:44:59 -07:00
d9069120bb Merge pull request #7657 from gyuho/auth-cleanup
clientv3: remove unused fields from 'auth'
2017-04-04 09:42:17 -07:00
972d8c55ab Merge pull request #7653 from xiang90/pprof
*: add pprof flag to grpc proxy
2017-04-04 09:22:50 -07:00
9bc3c0bd05 clientv3: remove unused fields from 'auth'
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-04 08:17:36 -07:00
7f2d6b3ef6 clientv3,v3client: add cluster embedded client
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-04 08:14:18 -07:00
7adf4d7c94 grpcproxy/adapter: add Cluster API support
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-04 08:13:30 -07:00
a204b14503 e2e: add a test case for the --open-ended option 2017-04-04 17:28:59 +09:00
0a7fc7cd34 etcdctl: add a new option --from-key for unlimited range permission
This commit adds a new option --from-key to the command etcdctl role
grant-permission. If the option is passed, an open ended permission
will be granted to a role e.g. from start-key to any keys those are
larger than start-key.

Example:
$ ETCDCTL_API=3 bin/etcdctl --user root:p role grant r1 readwrite a b
$ ETCDCTL_API=3 bin/etcdctl --user root:p role grant --from-key r1 readwrite c
$ ETCDCTL_API=3 bin/etcdctl --user root:p role get r1
Role r1
KV Read:
        [a, b) (prefix a)
        [c, <open ended>
KV Write:
        [a, b) (prefix a)
        [c, <open ended>

Note that a closed parenthesis doesn't follow the above <open ended>
for indicating that the role has an open ended permission ("<open
ended>" is a valid range end).

Fixes https://github.com/coreos/etcd/issues/7468
2017-04-04 17:28:59 +09:00
fd5984af56 *: add pprof flag to grpc proxy 2017-04-03 22:07:17 -07:00
d6efc0b22b Merge pull request #7651 from heyitsanthony/ivt-contains-intersects
*: support checking that an interval tree's keys cover an entire interval
2017-04-03 20:20:56 -07:00
f67bdc2eed *: support checking that an interval tree's keys cover an entire interval 2017-04-03 15:38:07 -07:00
63c6824905 Merge pull request #7650 from philips/add-dims-v3
Documentation: add dims v3 gateway API for python
2017-04-03 15:08:03 -07:00
7dbc4549d9 Merge pull request #7652 from heyitsanthony/fix-gofmt-clientv3
clientv3: fix go1.8 go fmt warning in test
2017-04-03 15:05:41 -07:00
a0149106b8 clientv3: fix go1.8 go fmt warning in test 2017-04-03 14:00:06 -07:00
8963cf2f8b Documentation: add dims v3 gateway API for python 2017-04-03 12:55:24 -07:00
e56e43064f Merge pull request #7637 from lumjjb/patch-2
Documentation: add encryption wrapper to integrations
2017-04-03 12:34:08 -07:00
f13bea0bb0 Merge pull request #7639 from heyitsanthony/fix-userflag-timeout
clientv3: respect dial timeout in auth
2017-04-03 09:30:48 -07:00
ea06ea41e5 Merge pull request #7641 from ggaaooppeenngg/fix-id-doc
idgen: correct comments for id generator
2017-04-03 09:17:55 -07:00
24e4c94d98 Merge pull request #7640 from heyitsanthony/etcdserver-ctx
etcdserver: ctx-ize server initiated requests
2017-04-03 09:07:28 -07:00
8dafaf390a Merge pull request #7642 from davissp14/integration-doc-update
Documentation: Adding new Ruby v3 client entry to integrations.md
2017-04-02 21:55:38 -07:00
8d07200bbf Documentation: Adding new Ruby v3 client entry to integrations.md 2017-04-02 23:54:07 -05:00
38a9149735 Merge pull request #7569 from mitake/interval
auth: store cached permission information in a form of interval tree
2017-04-03 02:41:31 +02:00
d204b6c3b7 idgen: correct comments for id generator
Comments for id generator format is out of
date, correct it.

Fixes #7636

Signed-off-by: Peng Gao <peng.gao.dut@gmail.com>
2017-04-02 20:56:10 +08:00
f5f4791023 integration: test cluster terminates quickly 2017-03-31 19:19:33 -07:00
8ad935ef2c etcdserver: use cancelable context for server initiated requests 2017-03-31 19:19:33 -07:00
5aebe1a52d clientv3: test dial timeout is respected when using auth 2017-03-31 15:14:46 -07:00
62d7bae496 clientv3: respect dial timeout when authenticating
Fixes #7627
2017-03-31 15:14:46 -07:00
e6b685b1ed Documentation: add encryption wrapper to integrations 2017-03-31 13:02:53 -04:00
512bac0ee9 Merge pull request #7630 from heyitsanthony/fix-lease-req-leader
clientv3: support WithRequireLeader in lease client
2017-03-31 09:52:17 -07:00
8024a0d15f clientv3: support WithRequireLeader in lease client
Unconditionally opens a WithRequireLeader stream in the lease client. Any
keep alive channels opened using WithRequireLeader will be closed when
the leader is lost.

Fixes #7275
2017-03-30 21:39:36 -07:00
7db7744737 clientv3/integration: test lease WithRequireLeader 2017-03-30 20:18:33 -07:00
833769f59f v3rpc: return leader loss error if lease stream is canceled
Canceling the stream won't cancel the receive since it's using the internal
grpc context, not the one assigned by etcd.
2017-03-30 20:18:33 -07:00
b55ea6a70b integration: test require leader for a lease stream 2017-03-30 20:18:33 -07:00
9ca7f22e84 Merge pull request #7614 from jsok/7516-default-initial-cluster
embed: Delay setting initial cluster
2017-03-30 18:01:51 -07:00
0472b2dc9f etcdmain: test config file clustering flags
A test to ensure that when clustering flags are correctly and
independently specified no errors are raised.
2017-03-31 10:01:46 +11:00
d0d4b1378b embed: Delay setting initial cluster for YAML
NewConfig() sets an initial cluster (potentially using a default name)
but we should clear it in the event another discovery option has been
specified.

PR #7517 attempted to address this however it only worked if the name
was left as "default".

(Completely) Fixes #7516
2017-03-31 10:01:42 +11:00
ca22c4c384 Merge pull request #7632 from xiang90/fix_periodic
compactor: fix TestPeriodic
2017-03-30 15:13:46 -07:00
ef3bd4ecc5 Merge pull request #7633 from heyitsanthony/protoc-3.2.0
*: use protoc 3.2.0
2017-03-30 15:10:14 -07:00
809e6110a0 compactor: fix TestPeriodic
Perviously, we advance checkCompactionInterval more than we should.
The compaction might happen nondeterministically since there is no
synchronization before we call clock.Advance().

The number of rg.Wait() should be equal to the number of Advance() if
compactor routine and test routine run at the same pace. However, in our current
test, we call Advance() more than rg.Wait().

It works OK when the compactor routine runs "slower" than the test routine, which
is the common case. However, when the speed changes, the compactor routine might
block rg.Rev() since there is not enough calls of rg.Wait().

This commit forces the compactor and test routine to run at the same pace. And we supply
the exact number of Advance() and wg.Wait() that compactor needs.
2017-03-30 15:00:49 -07:00
1ff0b71b30 *: use protoc 3.2.0
Fixes #7631
2017-03-30 13:43:10 -07:00
a0c97282c3 Merge pull request #7626 from akauppi/pr-doc-typos
Fixing small typos in documentation
2017-03-30 13:36:38 -07:00
dae2755253 Documentation: fix typos 2017-03-30 11:41:50 +03:00
36735d52a4 Merge pull request #7622 from heyitsanthony/faq-disk-leader
Documentation: add disk latency leader loss question to FAQ
2017-03-28 19:18:50 -07:00
eafab47f05 Merge pull request #7612 from gyuho/adapter-maintenance-API
*: adapter maintenance api
2017-03-28 16:38:20 -07:00
faad828c51 Documentation: add disk latency leader loss question to FAQ 2017-03-28 15:49:21 -07:00
6b784908ad Merge pull request #7621 from xiang90/c_d
compactor: make TestPeriodic die early
2017-03-28 15:38:59 -07:00
c90a4b96d1 integration: use maintenance API adapter in tests
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-28 14:12:47 -07:00
0bf110e27f clientv3,v3client: maintenance to embedded client
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-28 14:12:43 -07:00
a915ff8419 compactor: make TestPeriodic die early 2017-03-28 13:50:16 -07:00
5c642ae314 grpcproxy/adapter: add maintenance API support
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-28 09:09:06 -07:00
123b25845c Merge pull request #7610 from gyuho/news
NEWS: add v3.1.4, v3.1.5
2017-03-28 05:45:10 -07:00
65ad91b14d Merge pull request #7591 from xiang90/validate
etcdctl: add initial check perf command
2017-03-27 17:23:58 -07:00
60d3375599 etcdctl: add initial check perf command 2017-03-27 17:01:15 -07:00
a4ab5e55f9 Merge pull request #7611 from xiang90/auth_design
doc: link auth design in doc
2017-03-27 13:08:40 -07:00
4c7ffe4442 Merge pull request #7605 from gyuho/wrap-adapter
proxy/grpcproxy: add chanStream helper
2017-03-27 13:01:19 -07:00
fded83f111 doc: link auth design in doc 2017-03-27 11:58:32 -07:00
e70c8ac4a2 Merge pull request #7508 from mitake/auth-v3-design
auth: import design doc
2017-03-27 11:35:55 -07:00
caa73c176f proxy/grpcproxy: add chanStream helper
Prelimiary work for maintenance API in adapter

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-27 11:24:02 -07:00
5dea73860f NEWS: add v3.1.4, v3.1.5
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-27 10:54:51 -07:00
e6f72b4f42 Merge pull request #7603 from heyitsanthony/leak-check-grpc
testutil: check for grpc resources in AfterTest
2017-03-27 10:33:25 -07:00
9381b103bb Merge pull request #7601 from heyitsanthony/fix-proxy-compact
grpcproxy/cache: only check compaction revision for historical revisions
2017-03-27 09:23:17 -07:00
2e1e1c95bd auth: import design doc
This commit imports and refines the design doc of v3 auth:
https://goo.gl/fwBxz6
2017-03-27 07:53:32 -07:00
da6a035afb Merge pull request #7600 from raoofm/patch-10
op-guide: Remove guest role from v3 auth doc
2017-03-25 10:08:36 +09:00
997e83f8ea testutil: check for grpc resources in AfterTest
gRPC leaks only show up at the final leak check, making it difficult to
determine which test is causing the leak.
2017-03-24 16:09:38 -07:00
631f790689 Merge pull request #7574 from fanminshi/fix_mem_leak
raft: use rs.req.Entries[0].Data as the key for deletion in advance()
2017-03-24 15:50:17 -07:00
b2a465e354 grpcproxy/cache: only check compaction revision for historical revisions
Since the current revision is 0, it'll always be less than the compaction
revision. If the proxy sees a compaction, it would always reject the
current revision requests since it's less than the compaction revision.
Instead, check if the revision is historical before trying to reject on
compaction revision.

Fixes #7599
2017-03-24 13:20:46 -07:00
b9cfa4cef9 integration: add serialized range to TestV3CompactCurrentRev
To catch compaction bugs in the proxy key cache.
2017-03-24 13:13:38 -07:00
a26964c855 op-guide: Remove guest role from v3 auth doc 2017-03-24 16:09:58 -04:00
f18ae033a7 raft: use rs.req.Entries[0].Data as the key for deletion in advance()
advance() should use rs.req.Entries[0].Data as the context instead of
req.Context for deletion. Since req.Context is never set, there won't be
any context being deleted from pendingReadIndex; results mem leak.

FIXES #7571
2017-03-24 12:31:21 -07:00
608a2be9c5 Merge pull request #7596 from andelf/fix-typo-bucked
etcdserver: fix a typo in bucket name var
2017-03-24 09:51:05 -07:00
f763048156 Merge pull request #7592 from heyitsanthony/proxy-cov
test: add proxy to coverage tests
2017-03-24 09:42:57 -07:00
54efb460af etcdserver: fix a typo in bucket name var 2017-03-24 13:11:01 +08:00
ab1cf751a3 test: add proxy to coverage tests 2017-03-23 18:27:09 -07:00
ad2111a6f4 auth: store cached permission information in a form of interval tree
This commit change the type of cached permission information from the
home made thing to interval tree. It improves computational complexity
of permission checking from O(n) to O(lg n).
2017-03-24 09:36:14 +09:00
e9bfcc02ce Merge pull request #7590 from gyuho/test
integration: retry TestNetworkPartition5MembersLeaderInMajority
2017-03-23 17:02:32 -07:00
b81cb999fb integration: retry TestNetworkPartition5MembersLeaderInMajority
Fix https://github.com/coreos/etcd/issues/7587.

Retry for possible leader election in majority.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-23 16:30:38 -07:00
204335d304 Merge pull request #7560 from artem-panchenko/fix_container_resolving
Dockerfile-release: add nsswitch.conf into image
2017-03-23 15:20:14 -07:00
54928f5deb Merge pull request #7524 from mitake/del-and-revoke-role
auth: changes of managing roles and users
2017-03-23 15:10:10 -07:00
3f8eab8439 Merge pull request #7581 from heyitsanthony/ivt-sorted-visit
adt: Visit() interval trees in sorted order
2017-03-23 14:11:08 -07:00
21217c30f9 Merge pull request #7583 from krmayankk/prod-users
add Salesforce to prod users
2017-03-23 12:33:30 -07:00
37bdc94860 Documentation: add salesforce to prod users 2017-03-23 12:29:37 -07:00
36ece32a61 Merge pull request #7582 from heyitsanthony/fix-watch-stream-leak
clientv3: use waitgroup to wait for substream goroutine teardown
2017-03-23 12:24:06 -07:00
0256953b28 Merge pull request #7586 from gyuho/timeout
tools/etcd-tester: add timeout for 'defrag'
2017-03-23 10:23:42 -07:00
8afc468b64 tools/etcd-tester: add timeout for 'defrag'
etcd panic-ed, so defrag response just blocked for "days"
when the actual 'v3rpc' path never returned.

We should catch this earlier.

ref. https://github.com/coreos/etcd/issues/7526

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-23 10:22:20 -07:00
161c7f6bdf Merge pull request #7579 from gyuho/fix-defrage
*: fix panic during defrag operation
2017-03-23 10:08:33 -07:00
23719f99c6 Merge pull request #7563 from heyitsanthony/fix-testdialcancel-leak
clientv3: wait for Get goroutine in TestDialCancel
2017-03-23 10:07:23 -07:00
7ef75e373a Merge pull request #7525 from heyitsanthony/big-backend
etcdserver, backend: configure mmap size based on quota
2017-03-23 10:06:00 -07:00
9dcb975724 Merge pull request #7556 from brancz/prom-rules
Documentation: add Prometheus alerting rules
2017-03-23 09:58:57 -07:00
ed68bf89ff integration: test inflight range requests while defragmenting
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-23 09:48:04 -07:00
26abd25cd3 mvcc/backend: hold 'readTx.Lock' until completing bolt.Tx reset
Fix https://github.com/coreos/etcd/issues/7526.

When resetting `bolt.Tx` in `defrag` and `batchTxBuffered.commit`
operation, we do not hold `readTx` lock, so the inflight range
requests can trigger panic in `mvcc.Range` paths. This fixes by
moving mutexes out and hold it while resetting the `readTx`.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-23 09:47:43 -07:00
e7a0c9128a Documentation: add Prometheus alerting rules 2017-03-23 09:43:38 +01:00
8d0d942c47 e2e: add a test case for invalid management of root user and role 2017-03-23 16:47:58 +09:00
c40b86bcde auth, etcdserver: forbid invalid auth management
If auth is enabled,
1. deleting the user root
2. revoking the role root from the user root
must not be allowed. This commit forbids them.
2017-03-23 16:47:58 +09:00
0c87467f69 e2e: add a test case role delete and revoke 2017-03-23 16:47:44 +09:00
068d806bde *: revoke a deleted role
This commit resolves a TODO of auth store:
Current scheme of role deletion allows existing users to have the
deleted roles. Assume a case like below:
create a role r1
create a user u1 and grant r1 to u1
delete r1

After this sequence, u1 is still granted the role r1. So if admin
create a new role with the name r1, The new r1 is automatically
granted u1. In some cases, it would be confusing. So we need to
revoke the deleted role from all users.
2017-03-23 16:44:19 +09:00
25e3ce1feb adt: Visit() interval trees in sorted order and terminate early
For all intervals [x, y), Visit will visit intervals in ascending order
sorted by x. Also fixes a bug where Visit would not terminate the search
when requested by the visitor function.
2017-03-23 00:02:29 -07:00
a39107a3b8 clientv3: use waitgroup to wait for substream goroutine teardown
When a grpc watch stream is torn down, it will join on its logical substream
goroutines by waiting for each to close a channel. This doesn't guarantee
the substream is fully exited, though, but only about to exit and can be
waiting to resume even after Watch.Close finishes. Instead, use a
waitgroup.Done at the very end of the substream defer.

Fixes #7573
2017-03-22 23:27:26 -07:00
049ca8746a Merge pull request #7549 from heyitsanthony/namespace-proxy
namespace proxy
2017-03-22 23:26:52 -07:00
85f989ab3d Documentation, op-guide, clientv3: add documentation for namespacing 2017-03-22 16:45:38 -07:00
397a42efbe etcdmain: add prefixing support to grpc proxy
Fixes #6577
2017-03-22 16:45:38 -07:00
f35d7d9608 integration: test namespacing on proxy layer
Hardcode a namespace over the testing grpcproxy.
2017-03-22 16:45:38 -07:00
66d147766f clientv3/integration: simple namespace wrapper tests 2017-03-22 16:45:38 -07:00
facbb64090 Merge pull request #7578 from joshix/patch-1
etcd-2-1-0-bench: Fix an absolute bare link to resource outside of Doc dir
2017-03-22 15:45:58 -07:00
e0de6536c8 etcd-2-1-0-bench: Fix an absolute bare link to resource outside of Documentation dir 2017-03-22 15:27:21 -07:00
1f8c7b33e7 namespace: a wrapper for clientv3 to namespace requests 2017-03-22 14:09:09 -07:00
f9b6066dd6 clientv3: make ops and compares non-opaque and mutable
Fixes #7250
2017-03-22 14:08:59 -07:00
da10d5d057 Merge pull request #7572 from heyitsanthony/fix-restart-member
integration: wait on leader before progress check in TestRestartMember
2017-03-22 14:08:07 -07:00
9f34d3493d integration: wait on leader before progress check in TestRestartMember
In rare cases, the last member may not have the leader by the time the
final cluster progress check tries to open a watch, causing a timeout.
2017-03-22 12:48:31 -07:00
1a75165ed8 Merge pull request #7568 from heyitsanthony/clientv3-redundant-err
clientv3: remove redundant error handling code
2017-03-22 08:55:54 -07:00
dd465d0e40 clientv3: remove redundant error handling code 2017-03-22 01:08:23 -07:00
ff6d6867b0 Merge pull request #7523 from mitake/auth-v3-doc
Documentation: add a doc of v3 auth
2017-03-21 22:46:37 -07:00
5cda22a17d Documentation: add a doc of v3 auth
It is almost same to Documentation/v2/authentication.md because a
major part of its user interface is shared with the v2 auth. The newly
added doc includes some refinements for the v3 auth.
2017-03-22 11:26:54 +09:00
9e034f4b4b Merge pull request #7564 from gyuho/test
client/integration: use only digits in unix port
2017-03-21 17:40:47 -07:00
22c52b6d2e client/integration: use only digits in unix port
Fix https://github.com/coreos/etcd/issues/7558.

Same as https://github.com/coreos/etcd/issues/6959.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-21 17:10:59 -07:00
d1a9ccb2b9 clientv3: wait for Get goroutine in TestDialCancel 2017-03-21 16:43:39 -07:00
6511171725 Merge pull request #7561 from gyuho/travis
travis: always 'go get -u' in 'before_install'
2017-03-21 14:16:55 -07:00
e127214c6c travis: always 'go get -u' in 'before_install'
See https://github.com/dominikh/go-tools/issues/76#issuecomment-288189194.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-21 12:21:55 -07:00
327e255695 Merge pull request #7546 from gyuho/fix-blocking-etcd-process
*: fix blocking etcd process
2017-03-21 12:04:53 -07:00
7698a2a546 Merge pull request #7553 from xiang90/fix_defrag
backend: add FillPercent option
2017-03-21 11:16:17 -07:00
2d5f890091 integration: ensure 'StopNotify' on publish error
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-21 10:29:00 -07:00
17e2e762b1 etcdmain: handle StopNotify when ErrStopped aborted publish
Fix https://github.com/coreos/etcd/issues/7512.

If a server starts and aborts due to config error,
it is possible to get stuck in ReadyNotify waits.
This adds select case to get notified on stop channel.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-21 10:22:39 -07:00
cd70ea33ce Merge pull request #7552 from mitake/ordinary
e2e, etcdserver: fix wrong usages of ordinal
2017-03-21 09:42:27 -07:00
95870a21eb backend: add FillPercent option 2017-03-21 08:06:03 -07:00
5594f695bc e2e, etcdserver: fix wrong usages of ordinal
They must be "ordinary".
2017-03-21 23:50:16 +09:00
b9d91483d0 Dockerfile-release: add nsswitch.conf into image
The file '/etc/nsswitch.conf' is created in order to
take in account '/etc/hosts' entries while resolving
domain names.
2017-03-21 13:08:42 +02:00
004c1388fb Merge pull request #7541 from heyitsanthony/remove-legacy-range
etcdserver: remove legacy range/txn
2017-03-20 19:22:39 -07:00
27550b229a Merge pull request #7545 from gyuho/go1.7-go1.8
*: use 'io.Seek*' for go1.7+
2017-03-20 16:31:21 -07:00
effa6e0767 etcdserver: remove legacy range/txn
Needed for 3.0->3.1. Not needed for 3.1->3.2
2017-03-20 15:17:17 -07:00
aca2abd8fe *: use 'io.Seek*' for go1.7+
For https://github.com/coreos/etcd/issues/6174.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-20 15:15:24 -07:00
3a1368d4d2 Merge pull request #7543 from heyitsanthony/fix-timeseries
*: fix gosimple warning for fmt.Sprintf("%s")
2017-03-20 15:02:13 -07:00
ae7b4ee8ed *: fix gosimple warning for fmt.Sprintf("%s") 2017-03-20 13:26:39 -07:00
53ca03b655 Merge pull request #7539 from heyitsanthony/fix-protobuf-help
ctlv3: have "protobuf" in output help string instead of "proto"
2017-03-20 11:26:13 -07:00
cfdad38f4e Merge pull request #7531 from heyitsanthony/fix-mem-remove-again
e2e: force endpoint for member removal
2017-03-20 09:52:30 -07:00
432c19de61 ctlv3: have "protobuf" in output help string instead of "proto"
Fixes #7538
2017-03-20 09:40:21 -07:00
fba87558a6 Merge pull request #7529 from fanminshi/fix_closing_embedded_error
embed: don't return error when closing on embed etcd
2017-03-17 17:02:22 -07:00
21ac657e67 e2e: force endpoint for member removal
e2e tests use different invocations of etcdctl, so the endpoint used to get
the member list will not necessarily be the same to make the remove call.
Instead, select an endpoint that is not being remove, and connect with that.
2017-03-17 16:24:54 -07:00
8a3fee15a3 etcdserver, backend: only warn if exceeding max quota 2017-03-17 15:38:57 -07:00
5e4b008106 *: base initial mmap size on quota size 2017-03-17 15:38:49 -07:00
f292a4c953 embed: don't return error when closing on embed etcd
FIXES #7019
2017-03-17 13:41:05 -07:00
5015480e0c Merge pull request #7517 from jsok/7516-discovery-flags
embed: Delay setting initial cluster
2017-03-16 09:17:42 -07:00
79f4c196b8 Merge pull request #7518 from heyitsanthony/filepath
*: replace path.Join on files with filepath.Join
2017-03-16 08:59:49 -07:00
2f1542c06d *: use filepath.Join for files 2017-03-16 07:46:06 -07:00
1a91ed0e99 embed: Clear default initial cluster
NewConfig() should sets initial cluster from name but we should clear it
in the event that another discovery option has been specified.

Fixes #7516
2017-03-16 13:59:06 +11:00
d78b03fb27 Merge pull request #7515 from tessr/master
wal: use path/filepath instead of path
2017-03-15 19:25:08 -07:00
39c733ebe7 wal: use path/filepath instead of path
Use the path/filepath package instead of the path package. The
path package assumes slash-separated paths, which doesn't work
on Windows. But path/filepath manipulates filename paths in a way
that's compatible across OSes.
2017-03-15 17:30:23 -07:00
5856c8bce9 Merge pull request #7513 from gyuho/raft-applied-term
etcdserver: remove possibly compacted entry look-up
2017-03-15 13:35:36 -07:00
80c10e150f etcdserver: remove possibly compacted entry look-up
Fix https://github.com/coreos/etcd/issues/7470.

This patch removes unnecessary term look-up in
'createMergedSnapshotMessage', which can trigger panic
if raft entry at etcdProgress.appliedi got compacted
by subsequent 'MsgSnap' messages--if a follower is
being (in this case, network latency spikes), it
could receive subsequent 'MsgSnap' requests from leader.

etcd server-side 'applyAll' routine and raft's Ready
processing routine becomes asynchronous after raft
entries are persisted. And given that raft Ready routine
takes less time to finish, it is possible that second
'MsgSnap' is being handled, while the slow 'applyAll'
is still processing the first(old) 'MsgSnap'. Then raft
Ready routine can compact the log entries at future
index to 'applyAll'. That is how 'createMergedSnapshotMessage'
tried to look up raft term with outdated etcdProgress.appliedi.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-15 12:46:56 -07:00
902c676cdb Merge pull request #7397 from fanminshi/fix_SetEndpoints
clientv3/balancer: update eps if pinAddr is not included in updateAddrs
2017-03-15 12:16:15 -07:00
a23609efe6 clientv3: update eps if pinAddr is not included in updateAddrs
FIXES #7392
2017-03-15 11:03:25 -07:00
a2a6b693f1 Merge pull request #7511 from heyitsanthony/fix-v3client-embed
v3client: fix doc to use e.Server
2017-03-15 10:28:41 -07:00
dea2516177 v3client: fix doc to use e.Server
Was passing embed.Etcd instead of etcdserver.EtcdServer.
2017-03-15 09:17:17 -07:00
8f83d11724 Merge pull request #7499 from heyitsanthony/fix-etcdctl-add-member-env
ctlv3: ensure synced member list before printing env vars on member add
2017-03-15 08:59:04 -07:00
27960911af Merge pull request #7500 from heyitsanthony/fix-balancer-test-leak
clientv3: synchronize on goroutines in TestBalancerDoNotBlockOnClose
2017-03-15 08:58:03 -07:00
7a6b61cd6f Merge pull request #7504 from heyitsanthony/fix-watch-wait
clientv3: close open watch channel if substream is closing on reconnect
2017-03-15 08:57:14 -07:00
df839f3b7f Merge pull request #7497 from xiang90/fix_candidate
etcdserver: candidate should wait for applying all configuration changes
2017-03-14 20:10:02 -07:00
3e86779ad5 ctlv3: ensure synced member list before printing env vars on member add
In cases of multiple endpoints, it's possible member add would get a its
member list from a member that has not yet recognized the membership
update. Instead, confirm that the member list response is from the
member that acked the member add or from a member that has synced
with the cluster following the member add.

Fixes #7498
2017-03-14 20:01:44 -07:00
b36734f1d3 clientv3: synchronize on goroutines in TestBalancerDoNotBlockOnClose
Was leaking dialers.
2017-03-14 19:53:33 -07:00
18a813a9fe Merge pull request #7496 from heyitsanthony/v3client-doc
v3client: add example and godoc New
2017-03-14 19:50:01 -07:00
a087325452 clientv3: close open watch channel if substream is closing on reconnect
If substream is closing but outc is still open while reconnecting, then outc
would only be closed once the watch client would connect or once the watch
client is closed. This was leading to deadlocks in the proxy tests. Instead,
close immediately if the context is canceled.

Fixes #7503
2017-03-14 17:25:18 -07:00
7f0733cf46 etcdserver: candidate should wait for applying all configuration changes 2017-03-14 17:20:20 -07:00
eed4a3f035 Merge pull request #7502 from gyuho/scripts
test: mask go1.8 gosimple warnings
2017-03-14 17:00:01 -07:00
a9588952a0 test: mask go1.8 gosimple warnings 2017-03-14 15:10:32 -07:00
ace3a217b0 Merge pull request #7483 from fanminshi/add_tests_to_mutex
integration: add TestMutexWaitsOnCurrentHolder test
2017-03-14 13:01:47 -07:00
276039e835 integration: add TestMutexWaitsOnCurrentHolder test
TestMutexWaitsOnCurrentHolder ensures a series of waiters
obtain lock only after the previous lock requests are gone.
2017-03-14 11:00:07 -07:00
01d1a579bc v3client: add example and godoc New 2017-03-14 10:50:41 -07:00
781196fa87 Merge pull request #7495 from heyitsanthony/more-cov
test: add coverage for more packages
2017-03-14 09:31:01 -07:00
e3218e2dd1 test: add coverage for more packages
Was only getting coverage for packages with test files. Instead, include
packages that don't have test files as well.
2017-03-14 01:08:07 -07:00
1a6be700d8 Merge pull request #7444 from heyitsanthony/lock-service
grpc lock service
2017-03-14 00:01:34 -07:00
148c923c72 Merge pull request #7492 from heyitsanthony/simpletokenttl-deadlock
auth: get rid of deadlocking channel passing scheme in simpleTokenTTL
2017-03-14 14:01:23 +09:00
4409932132 auth: test concurrent authentication 2017-03-13 21:11:35 -07:00
1b1fabef8f auth: get rid of deadlocking channel passing scheme in simpleTokenTTL
Just use the mutex instead.

Fixes #7471
2017-03-13 21:11:35 -07:00
3a61fe596b Merge pull request #7423 from purpleidea/feat/clientv3util-examples
clientv3util: Add KeyExists and KeyMissing examples
2017-03-13 17:26:57 -07:00
94d5936180 Update example_key_test.go 2017-03-13 16:54:26 -07:00
7b541f9003 Merge pull request #7491 from heyitsanthony/learning-api
doc/learning: complete the api guide
2017-03-13 15:39:04 -07:00
300323fa50 integration: test grpc lock service 2017-03-13 15:23:26 -07:00
ad1a790116 embed: serve lock api 2017-03-13 15:23:26 -07:00
c737bf3d2a scripts: generate lock service rpc stubs 2017-03-13 15:23:26 -07:00
47cd9d0277 v3lock: server-side api for locking 2017-03-13 15:23:26 -07:00
763a37d3f1 v3client: a bridge between an etcdserver and a clientv3 2017-03-13 15:23:26 -07:00
d51c8bb640 concurrency: support returning response header for mutex 2017-03-13 15:23:26 -07:00
a2cdd908dc clientv3: permit creating client without grpc connection
For creating client from etcdserver.
2017-03-13 15:23:26 -07:00
b025cdd097 adapter, integration: split out grpc adapters from grpcproxy package
Break cyclic dependency:
clientv3/naming <-> integration <-> v3client <-> grpcproxy <-> clientv3/naming
2017-03-13 15:23:26 -07:00
90b5f3587d doc/learning: complete the api guide
Fixes #7378
2017-03-13 14:34:12 -07:00
5193965005 Merge pull request #7481 from heyitsanthony/testafter-clientv3
clientv3: use CheckAfterTest after terminating cluster
2017-03-13 13:25:52 -07:00
34fca0caa9 Merge pull request #7476 from gyuho/NEWS
NEWS: update v3.1.3
2017-03-13 13:17:52 -07:00
312ac5824f Merge pull request #7486 from oberstet/doc-integr-add-txaio-etcd
add txaio-etcd to intergrations.md
2017-03-13 11:42:08 -07:00
d051b3b4e4 Documentation: add txaio-etcd to integrations 2017-03-13 18:24:46 +01:00
76aa7f6935 Merge pull request #7479 from heyitsanthony/auth-admin-nilcheck
auth: nil check AuthInfo when checking admin permissions
2017-03-11 23:30:33 -08:00
bf0aa68f89 Merge pull request #7480 from raoofm/patch-10
op-guide: update gateway routing policy
2017-03-11 23:29:59 -08:00
fbcc6db64c Merge pull request #7482 from gyuho/lll
discovery: fix print format
2017-03-10 17:05:40 -08:00
60bdc47fa0 discovery: fix print format
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-10 15:04:46 -08:00
38f27599b9 op-guide: update gateway routing policy
Update from single available endpoint to round robin.
2017-03-10 17:43:10 -05:00
593489d454 clientv3: use CheckAfterTest after terminating cluster
AfterTest() has a delay that waits for runtime goroutines to exit;
CheckLeakedGoroutine does not. Since the test runner manages the
test cluster for examples, there is no delay between terminating
the cluster and checking for leaked goroutines. Instead, apply
Aftertest checking before running CheckLeakedGoroutine to let runtime
http goroutines finish.
2017-03-10 12:23:46 -08:00
eb6a47f87e testutil: add CheckAfterTest for calling AfterTest without a testing.T 2017-03-10 12:18:24 -08:00
52bc997e0b auth: nil check AuthInfo when checking admin permissions
If the context does not include auth information, get authinfo will
return a nil auth info and a nil error. This is then passed to
IsAdminPermitted, which would dereference the nil auth info.
2017-03-10 11:07:11 -08:00
d0d3c768d9 Merge pull request #7478 from hubt/patch-2
doc: add branch.io use case into production users
2017-03-10 10:37:59 -08:00
9c9156b478 doc: add branch.io use case into production users 2017-03-10 10:01:05 -08:00
b744cecd20 NEWS: update v3.1.3
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-10 09:19:12 -08:00
0d851e49e3 Merge pull request #7475 from xiang90/baidu
doc: fix title size
2017-03-10 09:08:21 -08:00
debeccd605 doc: fix title size 2017-03-10 09:06:25 -08:00
c848ee9d86 Merge pull request #7473 from xiang90/baidu
doc: add Baidu Waimai
2017-03-10 09:05:21 -08:00
0a692b0524 Merge pull request #7443 from fanminshi/fix_balancer_deadlock
clientv3: serialize updating notifych in balancer
2017-03-10 07:48:47 -08:00
911ae60edf doc: add Baidu Waimai 2017-03-10 07:29:21 -08:00
0c38f1ff8d Merge pull request #7469 from gyuho/manual
Documentation: add huawei product user
2017-03-09 13:09:04 -08:00
0a9e2fe1f2 Documentation: add huawei product user 2017-03-09 13:06:20 -08:00
9afe4e87fd Merge pull request #7453 from allencloud/use-case-daocloud-io
add production user daocloud
2017-03-09 12:24:15 -08:00
310641630e clientv3: send frst down() func after recieving first notified addr
This ensures the ordering of down and up calls.
2017-03-09 12:20:36 -08:00
8baaa06cce clientv3: serialize updating notifych in balancer
FIXES #7283
2017-03-09 12:20:28 -08:00
5351953425 Merge pull request #7467 from gyuho/sd-notify
etcdmain: SdNotify when gateway, grpc-proxy are ready
2017-03-09 11:23:58 -08:00
01dd60c0f7 etcdmain: SdNotify when gateway, grpc-proxy are ready
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-09 10:10:21 -08:00
ad1d48b73d Merge pull request #7014 from gyuho/auto-sync-grpc-proxy
*: register grpc-proxy members
2017-03-09 09:35:59 -08:00
c8ea343a76 Merge pull request #7463 from heyitsanthony/cov-buildi
test: install packages when building coverage tests
2017-03-09 09:15:22 -08:00
4d69d9663b Documentation/op-guide: document grpcproxy sync
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-09 02:47:24 -08:00
095407df58 etcdmain: add register,resolver flags
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-09 02:47:12 -08:00
f862b47e92 grpcproxy: configure register to Cluster API
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-09 02:40:13 -08:00
5f4412996d clientv3: define error type for closed watcher 2017-03-09 02:29:54 -08:00
ddcf14102e Merge pull request #7105 from heyitsanthony/mvcc-txn
mvcc: txns and r/w views
2017-03-09 00:25:16 -08:00
889dd1b22f clientv3util: Add KeyExists and KeyMissing examples 2017-03-09 02:34:30 -05:00
dbf654cf77 test: install packages when building coverage tests
Lots of repeated compilation. Cache results with go build -i.
2017-03-08 22:24:16 -08:00
8bc6cea90c doc: Add daocloud.io to production users
Signed-off-by: allencloud <allen.sun@daocloud.io>
2017-03-09 13:30:53 +08:00
d1dcc828c8 etcdctl: support mvcc txn 2017-03-08 20:54:15 -08:00
0ed3c83e49 benchmark: support mvcc txn 2017-03-08 20:54:15 -08:00
58da8b17ee etcdserver: support mvcc txn 2017-03-08 20:54:15 -08:00
f0c184b3a2 lease: support mvcc txn 2017-03-08 20:54:15 -08:00
33acbb694b mvcc: txns and r/w views
Clean-up of the mvcc interfaces to use txn interfaces instead of an id.

Adds support for concurrent read-only mvcc transactions.

Fixes #7083
2017-03-08 20:52:59 -08:00
8d438c2939 backend: readtx
ReadTxs are designed for read-only accesses to the backend using a
read-only boltDB transaction. Since BatchTx's are long-running
transactions, all writes to BatchTx will writeback to ReadTx, overlaying
the base read-only transaction.
2017-03-08 20:52:59 -08:00
39dc5315ed Merge pull request #7461 from heyitsanthony/fix-member-remove
e2e: don't remove member used to connect to etcd cluster
2017-03-08 20:21:57 -08:00
cd7d68fed0 Merge pull request #7458 from reterVision/patch-1
Documentation: add Grab etcd use case
2017-03-08 19:59:31 -08:00
e4f40f6554 Merge pull request #7462 from gyuho/typo
*: fix minor typos
2017-03-08 16:41:18 -08:00
beb58c434c *: fix minor typos
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-08 16:21:52 -08:00
7f94afdb8c Documentation: add Grab etcd use case 2017-03-08 16:12:32 -08:00
13e36f963d e2e: don't remove member used to connect to etcd cluster
Fixes #7204
2017-03-08 15:58:45 -08:00
e016015196 Merge pull request #7455 from gyuho/release-doc
Documentation: sign source zip files
2017-03-08 15:57:30 -08:00
1bcbd82c8b Merge pull request #7457 from gyuho/lease-guard
lease: guard 'Lease.itemSet' from concurrent writes
2017-03-08 14:48:00 -08:00
7a25257fb2 clientv3: close balancer to avoid goroutine leak in balancer_test.go 2017-03-08 13:37:18 -08:00
9713b1f3ef Merge pull request #7454 from bdudelsack/gateway-dns-discovery
gateway: fix the dns discovery method
2017-03-08 13:07:59 -08:00
234c4b1685 Documentation: sign source zip files
For https://github.com/coreos/etcd/issues/7449

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-08 11:53:52 -08:00
6f0723f23f lease: guard 'Lease.itemSet' from concurrent writes
Fix https://github.com/coreos/etcd/issues/7448.

Affected if etcd builds with Go 1.8+.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-08 11:01:42 -08:00
0d48fc5511 gateway: fix the dns discovery method
strip the scheme from the endpoints to have a clean hostname for TCP proxy

Fixes #7452
2017-03-08 19:11:55 +01:00
7f43fdde74 Merge pull request #7438 from meitu/master
Add use case in Meitu Inc.
2017-03-08 06:59:30 -08:00
3fa3d7dac6 doc: Add use case in Meitu Inc. 2017-03-08 14:27:53 +08:00
320768b2e9 Merge pull request #7435 from gnawux/use_case_hyper_sh
Add hyper.sh to production users
2017-03-07 19:14:30 -08:00
4a7b27921d doc: Add hyper.sh to production users 2017-03-08 10:45:56 +08:00
3f515e1849 Merge pull request #7441 from gyuho/warning
Documentation: warn membership change while migration
2017-03-07 11:38:28 -08:00
43eca30a08 Documentation: warn membership change while migration
Fix https://github.com/coreos/etcd/issues/7429.

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-07 11:27:36 -08:00
1a3a345468 Merge pull request #7437 from hustcat/tx-case
Add Tencent Games user case
2017-03-07 09:21:19 -08:00
3eb2fdbd99 Merge pull request #6082 from mitake/auth-v3-jwt
*: support jwt token in v3 auth API
2017-03-07 16:21:57 +09:00
df657d4690 Documentation: Add Tencent Games to production users 2017-03-07 15:17:10 +08:00
7907936066 Merge pull request #7433 from nekto0n/add_production_user
Documentation: add production user
2017-03-06 22:38:01 -08:00
1fc0803840 doc: update use case of qiniu 2017-03-06 22:11:17 -08:00
382ffe679d Documentation: add production user 2017-03-07 11:10:21 +05:00
831abf82b1 doc: add usecase of qiniu 2017-03-06 21:58:02 -08:00
ed90481510 Documentation: add qingcloud to production user 2017-03-06 19:53:47 -08:00
f8a290e7ca *: support jwt token in v3 auth API
This commit adds jwt token support in v3 auth API.

Remaining major ToDos:
- Currently token type isn't hidden from etcdserver. In the near
  future the information should be completely invisible from
  etcdserver package.
- Configurable expiration of token. Currently tokens can be valid
  until keys are changed.

How to use:
1. generate keys for signing and verfying jwt tokens:
 $ openssl genrsa -out app.rsa 1024
 $ openssl rsa -in app.rsa -pubout > app.rsa.pub
2.  add command line options to etcd like below:
--auth-token-type jwt \
--auth-jwt-pub-key app.rsa.pub --auth-jwt-priv-key app.rsa \
--auth-jwt-sign-method RS512
3. launch etcd cluster

Below is a performance comparison of serializable read w/ and w/o jwt
token. Every (3) etcd node is executed on a single machine. Signing
method is RS512 and key length is 1024 bit. As the results show, jwt
based token introduces a performance overhead but it would be
acceptable for a case that requires authentication.

w/o jwt token auth (no auth):

Summary:
  Total:        1.6172 secs.
  Slowest:      0.0125 secs.
  Fastest:      0.0001 secs.
  Average:      0.0002 secs.
  Stddev:       0.0004 secs.
  Requests/sec: 6183.5877

Response time histogram:
  0.000 [1]     |
  0.001 [9982]  |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  0.003 [1]     |
  0.004 [1]     |
  0.005 [0]     |
  0.006 [0]     |
  0.008 [6]     |
  0.009 [0]     |
  0.010 [1]     |
  0.011 [5]     |
  0.013 [3]     |

Latency distribution:
  10% in 0.0001 secs.
  25% in 0.0001 secs.
  50% in 0.0001 secs.
  75% in 0.0001 secs.
  90% in 0.0002 secs.
  95% in 0.0002 secs.
  99% in 0.0003 secs.

w/ jwt token auth:

Summary:
  Total:        2.5364 secs.
  Slowest:      0.0182 secs.
  Fastest:      0.0002 secs.
  Average:      0.0003 secs.
  Stddev:       0.0005 secs.
  Requests/sec: 3942.5185

Response time histogram:
  0.000 [1]     |
  0.002 [9975]  |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  0.004 [0]     |
  0.006 [1]     |
  0.007 [11]    |
  0.009 [2]     |
  0.011 [4]     |
  0.013 [5]     |
  0.015 [0]     |
  0.016 [0]     |
  0.018 [1]     |

Latency distribution:
  10% in 0.0002 secs.
  25% in 0.0002 secs.
  50% in 0.0002 secs.
  75% in 0.0002 secs.
  90% in 0.0003 secs.
  95% in 0.0003 secs.
  99% in 0.0004 secs.
2017-03-06 19:46:03 -08:00
a7a93f54a4 vendor: import jwt-go for auth v3 2017-03-06 19:46:03 -08:00
7b1ccca373 Merge pull request #7428 from siddontang/patch-1
Documentation: add PD to production users
2017-03-06 19:31:17 -08:00
a4a84184e8 Documentation: add PD to production users 2017-03-07 09:04:52 +08:00
e5d94a296f Merge pull request #7347 from gyuho/static-check
*: add 'staticcheck' to 'test'
2017-03-06 16:20:25 -08:00
3d75395875 *: remove never-unused vars, minor lint fix
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-06 14:59:12 -08:00
bd6e6c11f8 test: run 'staticcheck'
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-06 14:59:12 -08:00
79de3be6a7 Merge pull request #7430 from heyitsanthony/lock-more-deps
vendor: lock down some soft dependencies
2017-03-06 14:54:45 -08:00
db560574dd Merge pull request #7416 from heyitsanthony/test-eschew-you
test: eschew you
2017-03-06 13:30:57 -08:00
317f3571ff Merge pull request #7420 from heyitsanthony/dial-timeout-report
clientv3: pass back dial error on dial timeout
2017-03-06 12:58:18 -08:00
3f187a103b vendor: lock down some soft dependencies
Locks down:
* go-rundewidth (via tablewriter)
* golang.org/x/sys
* prometheus/{common,procfs} (via prometheus-client)
2017-03-06 12:03:45 -08:00
c8a2c7f64f *: eschew you from documentation
Removed line wrapping in affected files as well.
2017-03-06 11:40:46 -08:00
270dc9427b clientv3: pass back dial error on dial timeout
Fixes #7419
2017-03-06 09:33:10 -08:00
4e1ce81e17 test: eschew you
Per https://github.com/coreos/docs/blob/master/STYLE.md#eschew-you
2017-03-06 09:16:03 -08:00
4e2fe050f5 Merge pull request #7425 from mitake/gosimple
contrib: suppress gosimple errors of raftexample
2017-03-06 09:09:49 -08:00
b6eedbacf9 contrib: suppress gosimple errors of raftexample
Travis claimed errors of gosimple like below
(https://travis-ci.org/coreos/etcd/jobs/208098545):
gosimple checking failed:
contrib/raftexample/raftexample_test.go:78:6: should write erri := <-clus.errorC[i] instead of erri, _ := <-clus.errorC[i]
contrib/raftexample/raftexample_test.go:114:10: should write err := <-eC instead of err, _ := <-eC

This commit fixes the errors.
2017-03-06 16:17:22 +09:00
5039c7b4ab Merge pull request #7417 from purpleidea/feat/key-exists
clientv3: Add KeyExists and KeyNotExists Cmp helpers
2017-03-05 17:50:34 -08:00
8a57b90e7f Merge pull request #7422 from tmjd/docs_fix_migrate_example
etcdctl: Fix migrate example in README.md
2017-03-04 18:17:01 -08:00
9ba658f59b etcdctl: Fix migrate example in README.md 2017-03-04 19:42:27 -06:00
b68416f735 Merge pull request #7394 from gyuho/fix-advertise-client-url-host
*: use machine default host only for default value, 0.0.0.0
2017-03-03 16:35:31 -08:00
71937151d0 clientv3: Add KeyExists and KeyNotExists Cmp helpers
This is quite useful for transactions.
2017-03-03 18:45:10 -05:00
4aa68e0231 etcdmain: log machine default host after update check
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-03 14:25:39 -08:00
b7ee8f4967 embed: use machine default host only for default value, 0.0.0.0
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-03 14:25:34 -08:00
2831b9dcfd Merge pull request #7415 from gyuho/etcd-tester-lease-check-with-ttl
etcd-tester: check expired lease with -1 TTL
2017-03-03 12:49:58 -08:00
fb81fb44fa etcd-tester: check expired lease with -1 TTL
Following the change at 2ca1823a96

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-03 11:41:53 -08:00
e16db3347a Merge pull request #7413 from philips/update-etcd-integrations-and-users
production-users: add Kubernetes
2017-03-03 14:12:39 -05:00
e52f41a6d1 production-users: add Kubernetes 2017-03-03 13:09:36 -05:00
bd6f1c9e48 libraries-and-tools: rename to integrations
I want to create a more consistent naming system across the repos. Some
of our projects won't have libraries or tools (like Clair) but others
have integrated their software with Clair in various ways.

So, use a generic term: integrations.
2017-03-03 13:09:36 -05:00
85c22f4562 Merge pull request #7408 from heyitsanthony/v3-capable
api: default to V3 capability
2017-03-02 16:53:01 -08:00
42c98123b3 Merge pull request #7411 from heyitsanthony/mirror-batch
etcdctl: correctly batch revisions in make-mirror
2017-03-02 16:09:50 -08:00
ad45958841 etcdctl: correctly batch revisions in make-mirror
Fixes #7410
2017-03-02 14:30:24 -08:00
1753623f87 integration: don't set v3 capability since now default 2017-03-02 14:02:09 -08:00
5da5b834e5 api: default to V3 capability
Fixes #7154
2017-03-02 14:02:09 -08:00
9cc013fec0 Merge pull request #7409 from heyitsanthony/doc-ionice
Documentation: suggest ionice for disk tuning
2017-03-02 14:00:05 -08:00
1e252f1feb Documentation: suggest ionice for disk tuning
Also cleaned up tuning.md newlines to conform with style.
2017-03-02 13:58:07 -08:00
763aef87b9 Merge pull request #7405 from heyitsanthony/fast-gosimple
test: run unused and gosimple over all packages at once
2017-03-02 10:40:26 -08:00
6092e1ad24 Merge pull request #7403 from gyuho/do
Documentation/op-guide: use exact certs dir for Container Linux
2017-03-02 10:33:42 -08:00
ae0c4b4c87 Documentation/op-guide: use exact certs dir for Container Linux
Use the one that works in Container Linux

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-02 10:20:59 -08:00
3296c15a32 test: run unused and gosimple over all packages at once
fmt pass went from ~20 CPU minutes to ~1 CPU minute.

Fixes #7377
2017-03-02 10:17:46 -08:00
5cdb557560 Merge pull request #7390 from fanminshi/put_ctl_warning
etcdctl: show warning if ETCDCTL_API is not set
2017-03-02 10:17:19 -08:00
db91277216 Merge pull request #7400 from heyitsanthony/fix-example-ctx
clientv3: bump example requestTimeout for slow CI
2017-03-01 21:57:34 -08:00
2eb8243d94 Merge pull request #7402 from heyitsanthony/fix-watchconnerr
grpcproxy: return closing error when stream is canceled from conn close
2017-03-01 21:56:36 -08:00
134d1cb4e0 Merge pull request #7404 from xiang90/nt
raft: make TestNodeTick reliable
2017-03-01 20:02:25 -08:00
931cf3454a raft: make TestNodeTick reliable
TestNodeTick relies on a unreliable func `waitForSchedule` when running
with GOMAXPROCS > 1. This commit changes the test to make sure we stop
the node afte it drains the tick chan. The test should be reliable now.
2017-03-01 17:35:58 -08:00
010cc287bb Merge pull request #7401 from gyuho/docker-guide
op-guide: add notes on mounting certs directory
2017-03-01 16:50:24 -08:00
28e9ba365a grpcproxy: return closing error when stream is canceled from conn close
Fixes #6630
2017-03-01 16:46:13 -08:00
d111c8fe3b op-guide: add notes on mounting certs directory
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-01 16:45:03 -08:00
cf547aa403 clientv3: bump example requestTimeout for slow CI
Fixes #7398
2017-03-01 14:37:40 -08:00
f76ca01aed etcdctl: show warning if ETCDCTL_API is not set in v2 --help
FIXES #7385
2017-03-01 11:29:59 -08:00
d3aebbf0ce Merge pull request #7387 from fanminshi/rework_coverage_ctl
e2e: rework coverage ctl
2017-03-01 10:01:13 -08:00
edd298f85a test: build test binary for etcdctl 2017-02-28 17:08:24 -08:00
1f413cff64 e2e: add etcdctl to e2e test 2017-02-28 17:08:17 -08:00
aca4ea2a29 etcdctl: modify etcdctl v2 and v3 for code coverage 2017-02-28 14:50:27 -08:00
17ae440991 Merge pull request #7379 from fanminshi/fix_TestRestartMember
integration: integration: ensure leader is up in waitLeader() and clusterMustProgress()
2017-02-28 10:57:49 -08:00
324d2383b8 integration: ensure leader is up in waitLeader() and clusterMustProgress()
The issue is caused by leader loss even after waitLeader() returns
which can happen if the test machine is flaky which triggers a leader loss
or the killed node is the leader since waitLeader() only scans followers in
TestRestartMember() and they can have the same older leader.
In those cases, clusterMustProgress() proceeds with no leader which triggers
the no leader error.

To get around that, use linearizable get in waitLeader() to ensure leader is up
and retries on kapi.create() in clusterMustProgress() to ensure it proceeds with
a leader.

FIX #7258
2017-02-28 09:17:03 -08:00
1a9cd7bf36 Merge pull request #7294 from mkumatag/ppc64le_docker
Build docker image for ppc64le
2017-02-28 09:04:03 -08:00
8f744fe46b Merge pull request #7384 from heyitsanthony/debug-grpc-tracing
etcdmain: enable grpc tracing with --debug
2017-02-27 16:05:04 -08:00
633cfbe241 script: Build docker image for ppc64le 2017-02-27 19:04:32 -05:00
bbd8f4e6f6 Merge pull request #7386 from heyitsanthony/doc-lease-coalesce
Documentation: add documentation for grpc lease stream coalescing
2017-02-27 15:30:45 -08:00
22f0386683 Documentation: add documentation for grpc lease stream coalescing 2017-02-27 14:45:01 -08:00
c4f1e64de7 embed: enable debug endpoint if Debug is set and add net.trace events
/debug/ was only being enabled for Pprof.
2017-02-27 11:34:58 -08:00
298d58841e etcdmain: enable grpc tracing with --debug 2017-02-27 11:18:13 -08:00
01557ebc8f Merge pull request #7376 from heyitsanthony/fix-example-metrics-port
clientv3: use any port for metrics example
2017-02-24 16:24:52 -08:00
c231950cdb clientv3: use any port for metrics example
Was getting bind conflicts causing failures on semaphore.
2017-02-24 14:33:08 -08:00
15d8ca7726 Merge pull request #7375 from heyitsanthony/fix-e2e-cov
e2e: fix -tags cov builds
2017-02-24 13:01:11 -08:00
2ec8572a8c e2e: fix -tags cov builds
Wasn't compiling.
2017-02-24 09:47:31 -08:00
833aa518d8 Merge pull request #7372 from gyuho/updates
*: miscellaneous updates on release 3.2 cycle
2017-02-23 17:42:35 -08:00
9fbdd0a84a Merge pull request #7373 from gyuho/news
NEWS: add v3.1.2 release notes
2017-02-23 17:19:31 -08:00
3eaf2f6558 *: remove trailing space, upgrade test on v3.1 2017-02-23 16:19:24 -08:00
119d0520c6 NEWS: add v3.1.2 release notes 2017-02-23 15:02:36 -08:00
3f756d502b travis: use Go 1.8 in master branch 2017-02-23 14:38:47 -08:00
9d74eb5c60 MAINTAINERS: add Fanmin 2017-02-23 14:38:14 -08:00
86c9bf5c3f Merge pull request #7371 from gyuho/grpc-proxy-register
grpcproxy: add 'register' address
2017-02-22 17:30:38 -08:00
72a531e8b2 grpcproxy: add 'register' address
For https://github.com/coreos/etcd/issues/6902.
2017-02-22 16:47:48 -08:00
5df56fa615 Merge pull request #7366 from heyitsanthony/fix-watch-stream-counting
integration: permit background watch streams in TestWatchCancelOnServer
2017-02-22 10:36:36 -08:00
df3bb333ca Merge pull request #7368 from heyitsanthony/fix-netutil-ipv4
netutil: use ipv4 host by default
2017-02-22 09:57:56 -08:00
c3a678be75 integration: permit background watch streams in TestWatchCancelOnServer
Fixes #7272
2017-02-22 09:54:08 -08:00
c0c4c7cb76 Merge pull request #7364 from gyuho/auth-revi
auth: keep old revision in 'NewAuthStore'
2017-02-22 09:40:01 -08:00
f97a077257 netutil: use ipv4 host by default
Was non-deterministic.
2017-02-21 20:11:35 -08:00
f2e9936de5 integration: add 'TestV3HashRestart' 2017-02-21 16:20:56 -08:00
6431382a75 auth: keep old revision in 'NewAuthStore'
When there's no changes yet (right after auth
store initialization), we should commit old revision.

Fix https://github.com/coreos/etcd/issues/7359.
2017-02-21 16:18:47 -08:00
c90c757a56 Merge pull request #7355 from hhkbp2/fix-test-case-typo
raft: revise test case and fix typo
2017-02-21 16:15:22 -08:00
dd16463ad4 Merge pull request #7363 from heyitsanthony/fix-short-lease-ttl
clientv3: do not set next keepalive time <= now+TTL
2017-02-21 15:36:37 -08:00
25403970f5 Merge pull request #7361 from heyitsanthony/fix-gateway-goroutine
tcpproxy: don't use range variable in reactivate goroutine
2017-02-21 13:26:53 -08:00
12d3e4e473 integration: test keepalives for short TTLs 2017-02-21 13:15:45 -08:00
3c306cdb3e clientv3: do not set next keepalive time <= now+TTL 2017-02-21 13:15:45 -08:00
8b097f279d tcpproxy: don't use range variable in reactivate goroutine
Ends up trying to reactivate only the last endpoint.
2017-02-21 12:39:49 -08:00
0c0fbbd7c5 Merge pull request #7342 from heyitsanthony/client-version
clientv3: version checking
2017-02-21 11:46:48 -08:00
3c20bdd004 Merge pull request #7345 from heyitsanthony/fix-stream-err
grpcproxy: only return ctx error in chan stream if recvc is empty
2017-02-21 11:08:49 -08:00
86cb9f2490 Merge pull request #7358 from gyuho/manual
clientv3: fix typo in README
2017-02-21 11:03:49 -08:00
29a6fd65ad grpcproxy: only return ctx error in chan stream if recvc is empty
Since select{} won't prioritize, ctx.Done() can sometimes override
a pending message on recvc. Loop if recvc has messages instead.

Fixes #7340
2017-02-21 10:53:58 -08:00
56b4e6b71f clientv3: fix typo in README
Fix https://github.com/coreos/etcd/issues/7337
2017-02-21 10:33:17 -08:00
2ac44eab81 Merge pull request #7341 from gyuho/host
op-guide: use host volume in Docker command
2017-02-21 10:31:50 -08:00
6f193ea1df op-guide: use host volume in Docker command 2017-02-21 10:28:29 -08:00
4e114d3549 Merge pull request #7351 from davecheney/fixedbugs/7350
pkg/transport: remove dependency on pkg/fileutils
2017-02-21 09:21:53 -08:00
bc6bebe7b0 raft: revise test case and fix typo 2017-02-21 15:23:42 +08:00
9b84127739 pkg/transport: remove dependency on pkg/fileutils
4a0f922 changed SelfCert to use a helper from pkg/fileutils which
introduced a transitive dependency on coreos/pkg/capnslog. This means
anyone who imports pkg/transport to use TLS with the clientv3 library
has the default stdlib logger hijacked by capnslog.

This PR reverts 4a0f922. There are no tests because 4a0f922 contained no
test and was not attached to a PR.

Fixes #7350
2017-02-20 12:32:04 +11:00
2533c2a50c Merge pull request #7254 from fanminshi/rework_coverage_e2e
e2e: add code coverage to e2e
2017-02-17 15:51:47 -08:00
f203a61469 e2e: unshadow err and remove bogus err checking in spawnWithExpects() 2017-02-17 14:47:24 -08:00
07129a6370 *: add and expose StopSignal field in ExpectProcess
add and expose StopSignal to ExpectProcess allows user
to define what signal to send on ExpectProcess.close()

coverage testing code sets StopSignal to SIGTERM allowing
the test binary to shutdown gracefully so that it can generate
a coverage report.
2017-02-17 14:47:06 -08:00
78fbe669ad Merge pull request #7332 from hhkbp2/fix-read-index
raft: fix read index request for #7331
2017-02-17 14:27:42 -08:00
b5be18a744 test: add e2e to coverage test 2017-02-17 14:15:26 -08:00
51435df179 integration: test RejectOldCluster 2017-02-16 21:33:14 -08:00
4d2aa80ecf clientv3: add cluster version checking 2017-02-16 18:14:14 -08:00
c9452c6ad4 clientv3: let user provide a client context through Config 2017-02-16 18:14:14 -08:00
9342647e0c raft: fix read index request for #7331 2017-02-17 09:45:41 +08:00
a5cf7fdc87 Merge pull request #7221 from fanminshi/grpcproxy_support_lease_coalescing
grpcproxy: support lease coalescing
2017-02-16 13:42:49 -08:00
507bd2ab4b Merge pull request #7339 from xiang90/fix_l
clientv3: fix lease keepalive duration
2017-02-16 13:35:27 -08:00
4fb8d30f0a clientv3: fix lease keepalive duration 2017-02-16 12:04:07 -08:00
5d3597a5f2 Merge pull request #7338 from xiang90/fix_l
clientv3: fix lease keepalive duration
2017-02-16 11:58:10 -08:00
65b59f4423 grpcproxy: incorporate lease proxy into existing proxy framework 2017-02-16 11:50:59 -08:00
ba52bd07ba grpcproxy: add lease coalescing support 2017-02-16 11:50:50 -08:00
05b82f2022 grpcproxy: refactor chan stream out of watch_client_adapter 2017-02-16 11:41:21 -08:00
4274db46f2 clientv3: fix lease keepalive duration 2017-02-16 11:25:26 -08:00
49a12371c1 Merge pull request #7335 from heyitsanthony/leadership-kick
grpcproxy: support forcing leader as available
2017-02-16 09:40:08 -08:00
4608210154 Documentation/libraries-and-tools: add vitess 2017-02-15 21:35:19 -08:00
80de75431e grpcproxy: support forcing leader as available
Leadership timeout can sometimes take too long, such as in test cases.
However, it is possible to infer a leader is available based on RPCs
that must go through consensus. Therefore, have a way to update the
leadership status off the watch path.
2017-02-15 16:49:41 -08:00
2510a1488c Merge pull request #7327 from heyitsanthony/fix-runtime-conf-doc
op-guide: fix remove instructions in runtime-configuration and conform to style
2017-02-15 10:22:47 -08:00
80ab321f9d etcdmain: whitelist etcd binary flags 2017-02-15 09:51:50 -08:00
1d521556ae e2e: modify e2e to run code coverage 2017-02-15 09:51:50 -08:00
2f8b9ce9aa Merge pull request #7314 from heyitsanthony/fix-leadership
grpcproxy: split out / tighten up leadership detection
2017-02-15 07:01:38 -08:00
a4a8393cb7 integration: wait five elections before creating watch for require leader test
Otherwise new watch will race with the leader watcher receiving the loss event.
2017-02-15 00:16:25 -08:00
36f5b713bf grpcproxy: don't wait for ctx.Done() to close kv donec
Causes a goroutine leak in ActiveConnection.Close() tests. Channel is
vestigial since removing ccache; revisit if kv ever needs goroutines.
2017-02-15 00:16:25 -08:00
49a0a63fc3 grpcproxy: split out leadership detection code
Move out of watch code since will be shared with lease code. Also assumes
leader does not exist unless watch can be successfully created.
2017-02-15 00:16:25 -08:00
ad1b754e02 Merge pull request #7330 from fanminshi/fix_keepAliveOnce
clientv3: KeepAliveOnce returns ErrLeaseNotFound if TTL <= 0
2017-02-14 15:42:18 -08:00
8cb5e05fc9 clientv3: KeepAliveOnce returns ErrLeaseNotFound if TTL <= 0 2017-02-14 15:19:29 -08:00
67e3fc55d7 op-guide: fix remove instructions in runtime-configuration and conform to style
Fixes #7326
2017-02-14 13:41:51 -08:00
78d153fc5a Merge pull request #7328 from heyitsanthony/travis-spam
travis: disable email notifications
2017-02-14 12:33:32 -08:00
2cc273291d travis: disable email notifications
Was spamming security@coreos.com
2017-02-14 12:08:49 -08:00
808ee4e57c Merge pull request #7313 from gyuho/simplify-auth
auth: simplify merging range perm
2017-02-14 14:18:06 +09:00
3d994f8653 Merge pull request #7317 from petermattis/pmattis/ready-must-sync
raft: add Ready.MustSync
2017-02-13 17:53:08 -08:00
c200be6432 Merge pull request #7319 from heyitsanthony/fix-compact-watch
grpcproxy: respect CompactRevision in watcher
2017-02-13 16:46:34 -08:00
e0ddded077 auth: simplify merging range perm
No need of separate function to filter duplicates.
Just merge ranges in-place

```
go test -v -run=xxx -bench=BenchmarkMergeOld -benchmem
BenchmarkMergeOld-8   	  100000	     13524 ns/op	    1104 B/op	       8 allocs/op

go test -v -run=xxx -bench=BenchmarkMergeNew -benchmem
BenchmarkMergeNew-8   	  100000	     13432 ns/op	     936 B/op	       3 allocs/op
```

Not much performance boost, but less memory allocation
and simpler
2017-02-13 16:37:43 -08:00
853f68071b grpcproxy: respect CompactRevision in watcher
CompactRevision wasn't sent over watch stream, causing TestKVCompact to hang.
2017-02-13 15:43:41 -08:00
43740a8d3c Merge pull request #7318 from heyitsanthony/limit-doc
etcdserverpb, clientv3: clarify WithLimit documentation
2017-02-13 15:35:37 -08:00
e52a985a3a Merge pull request #7307 from heyitsanthony/proxy-countonly
grpcproxy: support CountOnly
2017-02-13 13:30:31 -08:00
fb7dd0f688 etcdserverpb, clientv3: clarify WithLimit documentation
Fixes #7316
2017-02-13 12:37:44 -08:00
ab03a42f06 raft: add Ready.MustSync
Add Ready.MustSync which indicates that the hard state and raft log
entries in a Ready message must be synchronously written to persistent
storage.
2017-02-13 15:13:21 -05:00
2925f02aac Merge pull request #7305 from fanminshi/return_header_for_timetolive
lease: LeaseTimeToLive returns TTL=-1 resp on lease not found
2017-02-13 11:24:36 -08:00
0d08ffa282 integration: don't expect lease not found error for TestV3GetNonExistLease 2017-02-10 17:35:43 -08:00
bcfbb096e2 clientv3/integration: test lease not found on TimeToLive() 2017-02-10 16:41:47 -08:00
2ca1823a96 v3rpc: LeaseTimeToLive returns TTL=-1 resp on lease not found 2017-02-10 16:33:31 -08:00
c22ba766d5 grpcproxy: support CountOnly
TestKVRange from client integration tests was failing.
2017-02-10 16:06:24 -08:00
9f8e82e1c0 Merge pull request #7304 from heyitsanthony/remove-ccache
Remove ccache
2017-02-10 16:02:31 -08:00
1fe2a9b124 Revert "Merge pull request #7139 from heyitsanthony/proxy-rlock"
This reverts commit 304606ab0b, reversing
changes made to 7dfe503f1c.
2017-02-10 14:37:48 -08:00
47cb8a012a Merge pull request #7301 from ghostplant/master
Fix a command error.
2017-02-10 09:31:22 -08:00
cc14f14216 Documentation: replace px typo with ps
Signed-off-by: CUI Wei <ghostplant@qq.com>
2017-02-11 00:23:37 +08:00
1a4a4fa7ac Merge pull request #7295 from mkumatag/fix_gosimple
test: Fix gosimple errors
2017-02-09 07:39:55 -08:00
98249bc950 Merge pull request #7297 from mkumatag/update_travis
travis: Update fmt check gotools
2017-02-09 07:26:00 -08:00
5afa4e4fdf travis: Update fmt check gotools 2017-02-09 10:17:36 -05:00
0914b8b707 test: Fix gosimple errors
Getting gosimple suggestion while running test script, so this PR is for fixing gosimple S1019 check.
raft/node_test.go:456:40: should use make([]raftpb.Entry, 1) instead (S1019)
raft/node_test.go:457:49: should use make([]raftpb.Entry, 1) instead (S1019)
raft/node_test.go:458:43: should use make([]raftpb.Message, 1) instead (S1019)

Refer https://github.com/dominikh/go-tools/blob/master/cmd/gosimple/README.md#checks for more information.
2017-02-09 08:01:28 -05:00
c4fc8c0989 Merge pull request #7260 from mitake/auth-state
auth: correct initialization in NewAuthStore()
2017-02-08 18:11:13 -08:00
9b72c8ba1b Merge pull request #7285 from fanminshi/uses_direct_client_call_for_tests
clientv3: integration test uses direct client calls
2017-02-07 12:09:37 -08:00
366e689eae clientv3: uses direct client calls in integration tests
clientv3 integration test was using clientv3.NewKV, clientv3.NewWatcher, etc to create specific client.
replace those with direct client calls so that the direct calls can also test grpc proxy.
2017-02-07 11:09:19 -08:00
0944a50d3f Merge pull request #7288 from fanminshi/fix_TestLeaseKeepAliveInitTimeout_test
clientv3/integration:  stop member before keepalive in TestLeaseKeepAliveInitTimeout
2017-02-07 10:48:54 -08:00
c182428e52 clientv3/integration: stop member before keepalive in TestLeaseKeepAliveInitTimeout 2017-02-07 10:07:03 -08:00
bf5ecf6555 Merge pull request #7262 from mkumatag/ppc64le_binary
scripts: Add support to build ppc64le binary for release
2017-02-07 09:52:12 -08:00
cf5cc18f02 Merge pull request #7286 from heyitsanthony/lease-snip-cancel-stop
clientv3: remove cancelWhenStop from lease implementation
2017-02-07 09:12:34 -08:00
a213b3abf5 clientv3: remove cancelWhenStop from lease implementation
Only have Close() cancel out outstanding goroutines. Canceling out
single-shot RPCs will mask connection close on client.Close().
2017-02-06 17:21:46 -08:00
739accc242 Merge pull request #7281 from heyitsanthony/no-default-ka
clientv3: only start lease stream after first keepalive call
2017-02-06 13:51:43 -08:00
a9f10bdeee clientv3: only start lease stream after first keepalive call
Fixes #7274
2017-02-06 11:52:57 -08:00
9976d869c1 auth: correct initialization in NewAuthStore()
Because of my own silly mistake, current NewAuthStore() doesn't
initialize authStore in a correct manner. For example, after recovery
from snapshot, it cannot revive the flag of enabled/disabled. This
commit fixes the problem.

Fix https://github.com/coreos/etcd/issues/7165
2017-02-06 16:05:49 +09:00
280b65fe4d auth: add a test case for recoverying from snapshot 2017-02-06 15:42:09 +09:00
6fb99a8585 Merge pull request #7276 from fanminshi/fix_lease_keep_alive_loop
clientv3: sends keepalive reqs immediately after lease keep alive stream reset
2017-02-04 21:28:56 -08:00
4d055ca73b Merge pull request #7277 from gyuho/second-point
pkg/report: add min/max latency per second
2017-02-04 12:47:12 -08:00
950a9da9d9 pkg/report: add min/max latency per second
For https://github.com/coreos/dbtester/issues/221.
2017-02-04 12:46:54 -08:00
720234d32b clientv3: sends keepalive reqs immediately after lease keep alive stream reset
when lease client reset lease keep alive stream, sendKeepAliveLoop() should send out keep alive reqs immediately instead of waiting for 500ms.
2017-02-03 16:36:24 -08:00
23b5a29101 Merge pull request #7273 from heyitsanthony/snip-prom
clientv3: add DialOptions to config
2017-02-03 15:54:20 -08:00
8c43bd06a0 clientv3: add DialOptions to config
Removes strict prometheus dependency.

Fixes #7058
2017-02-03 12:00:20 -08:00
4203c766fb Merge pull request #7270 from gyuho/pkg
pkg/netutil: name GetDefaultInterfaces consistent
2017-02-03 08:06:15 -08:00
01a1dae7ae pkg/netutil: name GetDefaultInterfaces consistent 2017-02-03 00:37:31 -08:00
d159353d51 Merge pull request #7268 from heyitsanthony/proxy-test-clientv3
test: add proxy tests for clientv3 integration tests
2017-02-02 20:31:05 -08:00
ae5c89ff12 Merge pull request #7266 from heyitsanthony/snip-yaml
clientv3: remove strict yaml dependency
2017-02-02 16:07:12 -08:00
56c706ff91 Merge pull request #7269 from sinsharat/use_requestWithContext_for_cancel
*: Use http.Request.WithContext instead of Cancel
2017-02-02 09:53:09 -08:00
e42fa18ccf grpcproxy: don't use WithRequireLeader for watch event stream
Ohterwise leader loss will reject all stream creation.
2017-02-02 09:32:25 -08:00
9def4cb9fe *: Use http.Request.WithContext instead of Cancel 2017-02-02 22:50:07 +05:30
e3f4b43614 test: clientv3 integration tests with proxy 2017-02-01 22:04:18 -08:00
b465b48476 clientv3: remove strict yaml dependency
Moved to clientv3/yaml
2017-02-01 21:02:45 -08:00
42e7d4d09d Merge pull request #7255 from sinsharat/use_requestWithContext_for_cancel
rafthttp: use http.Request.WithContext instead of Cancel
2017-02-01 15:49:43 -08:00
f74142187d Merge pull request #7263 from Rushit/test_isadminpermited
auth: test for AuthStore.IsAdminPermitted
2017-02-01 13:46:31 -08:00
2656b594bb rafthttp: use http.Request.WithContext instead of Cancel 2017-02-02 02:30:36 +05:30
5d41e7f09b scripts: Add support to build ppc64le binary for release 2017-02-02 00:45:56 +05:30
beef5eea37 auth: test for AuthStore.IsAdminPermitted
This will cover test for AuthStore.IsAdminPermitted in store.go
2017-02-01 08:39:09 -08:00
0df1822212 Merge pull request #7257 from Rushit/auth_test
auth: unit-test for authStore.AuthDisable()
2017-01-31 20:45:39 -08:00
46cac6f292 auth: unit-test for authStore.AuthDisable()
This will cover unit-test for AuthDisable in store.go
2017-01-31 18:18:56 -08:00
89bb9048dd Merge pull request #6881 from mitake/auth-v3-cn
authenticate clients based on certificate CommonName in v3 API
2017-01-31 17:21:53 -08:00
c6e9892af4 Merge pull request #7256 from Felixoid/issue_7219
netutil: add dualstack to linux_route
2017-01-31 16:49:40 -08:00
0f53ad0b84 netutil: add dualstack to linux_route
in v3.1.0 netutil couldn't get default interface for ipv6only hosts

Fixes #7219
2017-01-31 22:19:47 +03:00
cd9f0a1721 e2e: add a case for CommonName auth of v3 API 2017-01-31 17:22:12 +09:00
0191509637 auth, etcdserver: authenticate clients based on certificate CommonName
This commit lets v3 auth mechanism authenticate clients based on
CommonName of certificate like v2 auth.
2017-01-31 17:22:12 +09:00
7d6280fa82 Merge pull request #7248 from ravigadde/session-w-lease
clientv3: start a session with existing lease
2017-01-30 20:12:23 -08:00
c586218ec6 clientv3: start a session with existing lease
This change is needed to handle process restarts with elections. When the
leader process is restarted, it should be able to hang on to the leadership
by using the existing lease.

Fixes #7166
2017-01-30 18:07:22 -08:00
d2716fc5ae Merge pull request #7238 from mkumatag/support_ppc64le
ppc64le platform support
2017-01-26 21:16:33 -08:00
9767098331 etcdmain: ppc64le platform support 2017-01-26 21:08:07 -08:00
f127f462c6 Merge pull request #7229 from Rushit/auth-tests
auth: Adding unit tests
2017-01-27 11:52:03 +09:00
75ae50a90f Merge pull request #7243 from gyuho/doc
contrib: add etcd cluster deploy on systemd docs
2017-01-26 17:04:21 -08:00
5dace5f6dc Merge pull request #7242 from xiang90/fix_test
e2e: do not remove the member we connect to
2017-01-26 16:59:03 -08:00
19d30fd4a7 contrib: add etcd cluster deploy on systemd docs
Fix https://github.com/coreos/etcd/issues/5971
2017-01-26 16:56:55 -08:00
78540c5e7b e2e: do not remove the member we connect to 2017-01-26 15:43:27 -08:00
3351a71e84 Merge pull request #7240 from fanminshi/balancer_fix
clientv3: fix balancer update address bug
2017-01-26 15:08:50 -08:00
ae2e8fa462 Merge pull request #7241 from nmiyake/fixTestMessage
test: fix failure message in TestEmbedEtcd
2017-01-26 14:42:02 -08:00
18af48a9dc integration: add test case in dial_test to ensure balancer.updateAddrs works properly 2017-01-26 14:21:29 -08:00
e3b325c196 test: fix failure message in TestEmbedEtcd 2017-01-26 14:00:32 -08:00
9dbde1cc52 Merge pull request #7236 from heyitsanthony/no-dns-bind
embed: reject domain names before binding (again)
2017-01-26 13:52:30 -08:00
0c4e67c1f4 clientv3: fix balancer update address bug 2017-01-26 13:33:10 -08:00
5a67b0aba6 embed: reject binding listeners to domain names
Fixes #6336
2017-01-26 12:37:34 -08:00
63572567b4 integration: test domain name URLs are rejected before binding 2017-01-26 12:37:34 -08:00
54cf0317c3 Merge pull request #7237 from heyitsanthony/bump-e2e
test: bump e2e timeout to 15 minutes
2017-01-26 12:32:40 -08:00
b1b78c537c auth: Adding unit tests
This covers tests for User and Role related operations.
This tests brings code coverage in store.go from 40.2% to 72.1%.
2017-01-26 09:03:52 -08:00
6838ac3ba5 Merge pull request #7234 from Rushit/store_test_refactoring
auth: refactor auth store test to use common setup
2017-01-26 14:52:17 +09:00
072eda508b test: bump e2e timeout to 15 minutes
PPC64 timing out; integration tests already at 15 minutes.
2017-01-25 20:56:31 -08:00
fa1cbd5890 auth: refactor test to use common setup
Refactored tests to pull common setup into a method.
2017-01-25 19:07:15 -08:00
094be295a1 Merge pull request #7227 from heyitsanthony/clientv3-dial-ctx
clientv3: use DialContext
2017-01-25 13:28:29 -08:00
56286ccd29 clientv3: use DialContext
Fixes #7216
2017-01-25 09:49:41 -08:00
a2c44a8b65 clientv3: test closing client cancels blocking dials 2017-01-25 09:49:41 -08:00
11619f8db2 Merge pull request #7233 from rlenferink/documentation
Documentation: Deleted non-existing project from libraries-and-tools.md
2017-01-25 09:06:48 -08:00
eb42a5cb2f Documentation: Deleted non-existing project from libraries-and-tools.md 2017-01-25 11:43:56 -05:00
55c98982d1 Merge pull request #7231 from rlenferink/documentation
Documentation: C library added
2017-01-25 06:56:49 -08:00
10a401c7c6 Documentation: C library added 2017-01-25 15:10:48 +01:00
fb7365ef3c Merge pull request #7230 from Rushit/gitignore
.gitignore: Adding .idea to .gitignore
2017-01-24 22:25:52 -08:00
af20ba21cb .gitignore: Adding .idea to .gitignore
This will keep  all intellij IDEA IDE related files out of git.
This helps contributors using IDEA IDE for development.
2017-01-24 22:14:20 -08:00
6bef2bddca Merge pull request #7215 from disksing/grpc-service
embed: support user defined grpc services.
2017-01-24 15:02:43 -08:00
d7cc9be3fd Merge pull request #7214 from sinsharat/support_put_ignore_lease
*: 'ignore_lease' to detach value with PutRequest
2017-01-24 14:53:51 -08:00
2fce80e4c0 grpcproxy: handle 'IgnoreLease' field in PutRequest 2017-01-25 03:14:31 +05:30
37fb2c454f e2e: test put command with '--ignore-lease' flag 2017-01-25 03:12:48 +05:30
84a81d8caf ctlv3: add '--ignore-lease' flag to put command 2017-01-25 03:11:19 +05:30
d3191d1afb clientv3: add WithIgnoreLease option 2017-01-25 03:09:30 +05:30
95edd1bc58 integration: put,txn with 'ignore_lease' flag 2017-01-25 03:07:23 +05:30
8a87769a09 etcdserver: use prev-lease for 'ignore_lease' writes 2017-01-25 03:05:55 +05:30
5ac4e4255a v3rpc: error for non empty lease with 'ignore_lease' 2017-01-25 03:04:07 +05:30
508c9dfe5c *: regenrate proto files with 'ignore_lease' 2017-01-25 03:01:47 +05:30
a9bf593bdc *: 'ignore_lease' to detach value with PutRequest 2017-01-25 02:59:30 +05:30
90f6a4a28d Merge pull request #7226 from gyuho/vendor
ctlv3: right-align table output, fix typo in vendor
2017-01-24 12:03:58 -08:00
ce9f73a34c ctlv3: right-align the table output 2017-01-24 11:41:47 -08:00
a674116f07 vendor: update tablewritier 2017-01-24 11:41:47 -08:00
b9bbfda874 Merge pull request #7210 from jimmycuadra/rust-etcd
Add rust-etcd to the list of libraries.
2017-01-24 07:53:15 -08:00
13b70ed545 tools: add rust-etcd to the list of libraries. 2017-01-24 01:41:37 -08:00
0fea49f8fa Merge pull request #7222 from gyuho/manual
client: add GetVersion method
2017-01-23 19:14:49 -08:00
02f4a9a034 client: add GetVersion method
For retrieving etcdserver and etcdcluster version
2017-01-23 18:52:39 -08:00
ab532524b0 Merge pull request #7206 from heyitsanthony/redoc-rangerequest
etcdserverpb: rework documentation for range request
2017-01-23 13:08:04 -08:00
aace95a5bd Merge pull request #7209 from heyitsanthony/etcdmain-help
etcdmain: add gateway and grpc-proxy commands to etcd help
2017-01-23 13:07:30 -08:00
e75f52b97a Merge pull request #7220 from vimalk78/fix-recipes-newSequentialKV-comment
contrib/recipes/key.go : fixed comment in method newSequentialKV
2017-01-23 12:47:48 -08:00
6443c25422 contrib/recipes/key.go : fixed method comment 2017-01-23 23:42:50 +05:30
e0f4dd4cca Merge pull request #7079 from heyitsanthony/stm-prefetch
STM: prefetch and more
2017-01-23 09:45:36 -08:00
8b952fb8dc Merge pull request #7217 from xiang90/doc
doc: mention HTTP JSON in doc link
2017-01-23 09:41:57 -08:00
5aab92414f Merge pull request #7199 from heyitsanthony/netutil-test-arch
pkg/netutil: use native byte ordering
2017-01-23 09:41:20 -08:00
861cb5cfa2 embed: add example for ServiceRegister. 2017-01-23 10:47:01 +08:00
165c77f14e doc: mention HTTP JSON in doc link
It is not clear to users immediately what is the gRPC
gateway. Adding a more explaination to make it clear that
etcd3 supports HTTP API through the gateway.
2017-01-22 10:55:21 -08:00
4374d944d4 embed: support user defined grpc services.
Fixes #7200
2017-01-22 18:21:19 +08:00
89f7cc51fa Merge pull request #7155 from andrewstuart/upgrade-etcd3-docs
Documentation: add upgrade gotchas/further info for better visibility on google, etc
2017-01-21 12:56:07 -08:00
deb11b3594 Documentation: Add upgrade gotchas/further info for better search visibility 2017-01-21 13:46:27 -07:00
555b8047e6 integration: fix STM tests to compile against new interface 2017-01-20 16:30:58 -08:00
13420b33a0 benchmark: update for new stm interface 2017-01-20 16:22:43 -08:00
8695511153 concurrency: STM snapshot isolation level 2017-01-20 16:22:43 -08:00
8604d1863b concurrency: STM WithPrefetch option
Fixes #6923
2017-01-20 16:22:42 -08:00
a81234a25b concurrency: extend STM interface to Get from any of a list of keys
Now possible to fetch multiple keys in a single txn.
2017-01-20 16:22:42 -08:00
59880a0ab8 concurrency: variadic stm options
Makes txn isolation and the context variadic options.
2017-01-20 16:22:42 -08:00
7e31ddd32a etcdserverpb: rework documentation for range request 2017-01-20 16:12:09 -08:00
dfb2ed07db etcdmain: add gateway and grpc-proxy commands to etcd help 2017-01-20 15:54:13 -08:00
92cec10103 Merge pull request #7208 from gyuho/REAMDE
README: remove ACI, update Go version
2017-01-20 14:19:58 -08:00
074af101f1 Merge pull request #7207 from xiang90/roadmap
roadmap: update roadmap
2017-01-20 13:58:20 -08:00
aa79523d33 roadmap: update roadmap 2017-01-20 13:50:36 -08:00
367b064bcd README: remove ACI, update Go version 2017-01-20 13:42:11 -08:00
3196d08c7a Merge pull request #7205 from gyuho/doc
op-guide: change grpc-proxy from 'pre' to alpha'
2017-01-20 13:23:01 -08:00
b788790e56 op-guide: change grpc-proxy from 'pre' to alpha' 2017-01-20 13:20:32 -08:00
71c45906ad Merge pull request #7196 from heyitsanthony/build-goget
documentation: update build documentation
2017-01-20 11:19:50 -08:00
a630735c29 Merge pull request #7170 from vimalk78/make-v2-endpoint-optional-#7100
embed/etcd.go: make v2 endpoint optional. fixes #7100
2017-01-20 11:14:20 -08:00
5d8cceb164 Merge pull request #7183 from vimalk78/fix-test-script-function-arguments
test: passed the test script arguments to the function parameters
2017-01-20 11:09:09 -08:00
06a27d8590 documentation: update build documentation 2017-01-20 11:04:40 -08:00
1ada4f939f pkg/netutil: use native byte ordering for route information
Fixes #7199
2017-01-20 10:44:05 -08:00
9d0d4be7d1 Merge pull request #7203 from xiang90/fix_snap
etcdctlv3: snapshot restore works with lease key
2017-01-20 10:05:22 -08:00
3902d5ab0a Merge pull request #7195 from gyuho/fix-stm-restart
concurrency: fix stm restart on concurrent key deletion
2017-01-20 09:49:16 -08:00
96e0f50673 etcdctlv3: snapshot restore works with lease key 2017-01-20 09:37:39 -08:00
82d56b6314 Merge pull request #7197 from vimalk78/fix-ETCD-prefix-check
pkg/flags: fixed prefix checking of the env variables
2017-01-20 08:17:02 -08:00
e446c2c2c7 pkg/cpuutil: add cpuutil
A package for unsafe cpu-ish things.
2017-01-20 01:47:56 -08:00
e4b8c874d2 pkg/flags: fixed prefix checking of the env variables 2017-01-20 13:13:40 +05:30
a94d20d1e4 integration: test STM apply on concurrent deletion 2017-01-19 22:59:01 -08:00
f80914fba2 embed/etcd.go: make v2 endpoint optional. fixes #7100 2017-01-20 11:49:52 +05:30
acec15ebc6 clientv3/concurrency: fix rev comparison on concurrent key deletion 2017-01-19 20:51:31 -08:00
94eec5d41a Merge pull request #7193 from gyuho/manual
Documentation: fix typo s/endpoint-health/endpoint health/
2017-01-19 20:47:17 -08:00
1cd3fd81c8 Merge pull request #7194 from gyuho/backport
NEWS: fix date for v3.1 release
2017-01-19 17:56:14 -08:00
8ad5e29447 NEWS: fix date for v3.1 release 2017-01-19 16:59:02 -08:00
be28981234 Documentation: fix typo s/endpoint-health/endpoint health/ 2017-01-19 16:52:26 -08:00
4fad94246d Merge pull request #7190 from gyuho/docs
Documentation: update experimental_apis for v3.1 release
2017-01-19 12:41:58 -08:00
8a779ce709 Merge pull request #7144 from tobilarscheid/enhancement/highlight-differences-in-docker-commands
Highlight differences between example run commands in docker_guide
2017-01-19 12:29:52 -08:00
81c1288d60 Documentation: update experimental_apis for v3.1 release 2017-01-19 11:32:06 -08:00
5cf0d6678b Merge pull request #7174 from vimalk78/support-v3-txn-without-condition
clientv3/txn.go : removed the TODO: add a Do for shortcut the txn without any condition
2017-01-19 08:45:34 -08:00
d03d7f0c0d Merge pull request #7188 from jl2005/dir-expire
store: set e.Node.Dir attribute, when node expired
2017-01-19 08:33:37 -08:00
99639186cd store: set Dir attribute, when node expired 2017-01-19 18:00:56 +08:00
eb88a5f288 Polish note about varying parameters for each member 2017-01-18 14:55:02 -08:00
b2d5c91f0e Merge pull request #7186 from gyuho/vendor
*: update 'golang.org/x/net/context' and its dependencies
2017-01-18 13:09:57 -08:00
90509008e9 Merge pull request #7159 from heyitsanthony/proxy-stop-cache
grpcproxy, etcdmain, integration: add close channel to kv proxy
2017-01-18 13:04:31 -08:00
8c0282ab24 grpcproxy, etcdmain, integration: add close channel to kv proxy
ccache launches goroutines that need to be explicitly stopped.

Fixes #7158
2017-01-18 11:51:16 -08:00
85e14a841a vendor: update 'golang.org/x/net' 2017-01-18 10:29:49 -08:00
933bcac6da glide: update 'golang.org/x/net' 2017-01-18 10:29:43 -08:00
293c75b133 test: passed the test script arguments as the test function parameters 2017-01-18 21:28:57 +05:30
fcaa509e4c clientv3/txn.go : removed the TODO: add a Do for shortcut the txn without any condition 2017-01-18 11:37:29 +05:30
1a962df596 Merge pull request #7176 from heyitsanthony/bump-lread-timeout
etcdserver: use ReqTimeout for linearized read
2017-01-17 16:08:50 -08:00
5c774ff571 etcdserver: use ReqTimeout for linearized read
Fixes #7136
2017-01-17 14:55:39 -08:00
307e14028c Merge pull request #7175 from gyuho/report
pkg/report: add nil checking for getTimeSeries
2017-01-17 13:22:20 -08:00
462dbfe10d Merge pull request #7172 from gyuho/upgrade-doc
Documentation: document upgrading to v3.1
2017-01-17 13:21:37 -08:00
abf7847fa5 Documentation: document upgrading to v3.1 2017-01-17 13:20:24 -08:00
69606bb95f pkg/report: add nil checking for getTimeSeries 2017-01-17 12:51:47 -08:00
3a40421aa5 Merge pull request #7157 from fanminshi/clientv3_balancer_uses_one_connection
clientv3: balancer uses one connection at a time
2017-01-17 12:12:35 -08:00
2db9d3b702 Merge pull request #6440 from lclarkmichalek/how-to-ssl-question-mark
Obey the usual rules of SSL server name verification when using a private PKI
2017-01-17 10:28:22 -08:00
bad2f03cd0 Merge pull request #7173 from gyuho/manual
ctlv3: print cluster info after adding new member
2017-01-17 10:15:39 -08:00
df55438a60 clientv3: balancer uses one connection at a time
FIX #7080
2017-01-17 10:09:41 -08:00
b8e9bd2b42 ctlv3: print cluster info after adding new member 2017-01-17 09:52:38 -08:00
eba41cd7b3 pkg/transport: Obey the usual laws of ssl when using a private PKI 2017-01-15 21:27:53 +00:00
017ea3df50 Merge pull request #7164 from elimisteve/patch-1
clientv3: Fixed []byte to string conversion syntax in KV comment
2017-01-15 13:12:01 -08:00
eb7a804ca8 kv.go: Fixed []byte to string conversion syntax in comment 2017-01-15 05:57:16 -08:00
b9d3bd8d42 Merge pull request #7163 from gyuho/snapshot-count
etcd-tester: use 10K for '--snapshot-count'
2017-01-14 17:52:09 -08:00
6f9a20803c etcd-tester: use 10K for '--snapshot-count'
Since we want to send snapshot more often in failure injected cluster
2017-01-14 17:29:35 -08:00
699b1e5b3a Merge pull request #7160 from xiang90/snapshotcount
etcdserver: increase snapshot to 100,000
2017-01-14 16:53:44 -08:00
26d99269c0 Merge pull request #6898 from mitake/auth-maintain
RFC, WIP: etcdserver: let maintenance services require root role
2017-01-14 11:22:14 -08:00
783eaf9de6 e2e: add cases for defrag and snapshot with authentication 2017-01-14 19:36:24 +09:00
9886e9448e auth, etcdserver: let maintenance services require root role
This commit lets maintenance services require root privilege. It also
moves AuthInfoFromCtx() from etcdserver to auth pkg for cleaning purpose.
2017-01-14 19:36:24 +09:00
c5a9d54835 etcdserver: increase snapshot to 100,000
Keep more wal entries in memory for fast follower recovery.
10,000 was a too small number that triggers quite a few snapshots.
ZK proves that 100,000 is a reasonable number for even old less prowerful
machines.

Eventually we should provide both count and max memory (for large entries).
2017-01-13 18:05:25 -08:00
118fd18eb6 Merge pull request #6894 from gyuho/preserve-value
*: 'ignore_value' to detach lease with PutRequest
2017-01-13 16:02:19 -08:00
0f8060bede grpcproxy: handle 'IgnoreValue' field in PutRequest 2017-01-13 15:13:18 -08:00
5dffa38fb2 e2e: test put command with '--ignore-value' flag 2017-01-13 15:13:18 -08:00
e03850c4ac ctlv3: add '--ignore-value' flag to 'put' command 2017-01-13 15:13:18 -08:00
d94d22122b clientv3: add 'WithIgnoreValue' option 2017-01-13 15:13:18 -08:00
a66f133209 integration: test Put,Txn with ignore_value flag 2017-01-13 15:13:18 -08:00
8752ee52a5 etcdserver: use prev-value for ignore_value writes 2017-01-13 15:13:18 -08:00
e655420d33 v3rpc: error for non-empty value with ignore_value 2017-01-13 15:13:18 -08:00
7f8b5774a4 *: regenerate proto files with 'ignore_value' 2017-01-13 15:13:18 -08:00
8eea93942d *: 'ignore_value' to detach lease with PutRequest 2017-01-13 15:13:18 -08:00
4730bddea7 Merge pull request #7153 from gyuho/cap
etcdserver/api, rafthttp: add version v3.2
2017-01-13 14:59:14 -08:00
fa9a78450c rafthttp: add 3.2.0 stream type 2017-01-13 14:23:15 -08:00
ea94aea136 etcdserver/api: add 3.2 in capability 2017-01-13 14:00:03 -08:00
a8cc11375f version: bump to v3.2.0+git 2017-01-13 12:58:15 -08:00
0c88795a19 Merge pull request #7151 from gyuho/travis
travis: use Go 1.7.4, drop old env var
2017-01-13 12:55:32 -08:00
21e3418553 travis: use Go 1.7.4, drop old env var
We don't use Go 1.5.x anymore
2017-01-13 11:34:05 -08:00
bb797c1ee9 Merge pull request #7147 from gyuho/pkg/report
pkg/report: add 'Stats' to expose report raw data
2017-01-13 11:17:57 -08:00
304606ab0b Merge pull request #7139 from heyitsanthony/proxy-rlock
grpcproxy/cache: acquire read lock on Get instead of write lock
2017-01-13 11:15:13 -08:00
74bad576ed pkg/report: add 'Stats' to expose report raw data 2017-01-13 10:26:00 -08:00
7dfe503f1c Merge pull request #7148 from heyitsanthony/fix-lease-overlap
clientv3: don't reset stream on keepaliveonce or revoke failure
2017-01-13 10:05:02 -08:00
af51f87ad2 vendor: remove groupcache, add ccache 2017-01-13 10:02:04 -08:00
9fa6c95054 grpcproxy: use ccache for key cache
groupcache needs a write lock and has no way to expire keys; ccache can
do this, though.

Also removes the key count metric, since there's no way to efficiently
calculate it using ccache.
2017-01-13 10:00:57 -08:00
5e3b20e70c clientv3: don't reset stream on keepaliveonce or revoke failure
Would cause the keepalive loop to cancel out.

Fixes #7082
2017-01-13 09:05:23 -08:00
3d97da0672 improve documentation regarding docker cluster
instead of trying to highlight stuff within markdown code blocks, this commits adds a descriptive sentence explaining the differences.
2017-01-13 09:20:37 +01:00
c89eae790d Merge pull request #7110 from mitake/reauth
etcdserver, clientv3: handle a case of expired auth token
2017-01-13 11:57:25 +09:00
432bda4dec Merge pull request #7146 from fanminshi/clientv3_balancer_uses_one_connection
clientv3: fix balancer test logic
2017-01-12 13:51:03 -08:00
6d443ba3f9 clienv3: fix balancer test logic 2017-01-12 13:07:44 -08:00
6ce03389c8 Merge pull request #7138 from gyuho/NEWS
NEWS: add v3.1.0, v3.0.16 + minor fixes
2017-01-12 11:33:13 -08:00
34136a69c8 Merge pull request #7145 from heyitsanthony/warn-ca-ignore
transport: warn on user-provided CA
2017-01-12 11:14:28 -08:00
c23d666328 NEWS: add v3.1.0, v3.0.16 + minor fixes 2017-01-12 11:07:27 -08:00
da8fd18d8e transport: warn on user-provided CA
ServerName is ignored for a user-provided CA for backwards compatibility. This
breaks PKI, so warn it is deprecated.
2017-01-12 09:10:05 -08:00
c624caabb1 improve example run commands in docker_guide
When bootstrapping a cluster, the docker run command is mostly the same for all cluster member. This commits highlight the small variations between the commands to make them stand out.
2017-01-12 09:16:21 +01:00
824277cb3a Merge pull request #7119 from sinsharat/add_load_test_tool
tools: Add etcd 3.0 load test tool refernece
2017-01-11 22:17:57 -08:00
c512839382 tools: Add etcd 3.0 load test tool refernece 2017-01-12 11:35:32 +05:30
d431b64d97 etcdserver, clientv3: handle a case of expired auth token
This commit adds a mechanism of handling a case of expired auth token
to clientv3. If a server returns an error code
grpc.codes.Unauthenticated, newRetryWrapper() tries to get a new token
and use it as an option of PerRPCCredential.

Fixes https://github.com/coreos/etcd/issues/7012
2017-01-12 11:49:02 +09:00
0df543dbb3 Merge pull request #7141 from heyitsanthony/rate-limit-range
benchmark: option to rate limit range benchmark
2017-01-11 15:44:33 -08:00
6e730af65a benchmark: option to rate limit range benchmark 2017-01-11 14:36:46 -08:00
43dd751c47 Merge pull request #7137 from heyitsanthony/display-docs
documentation: display docs.md in github browser
2017-01-11 11:29:29 -08:00
6f801d2ae8 documentation: display docs.md in github browser 2017-01-11 10:37:42 -08:00
925d1d74ce Merge pull request #7133 from gyuho/bench
pkg/report: support 99.9-percentile, change column name
2017-01-10 18:25:03 -08:00
e44d3abc77 pkg/report: support 99.9-percentile, change column name 2017-01-10 18:22:47 -08:00
88bdd8a5d9 Merge pull request #7120 from sttts/sttts-update-ugorji-2
Update ugorji/go with embedded interface support
2017-01-10 13:11:56 -08:00
f0fa5ec507 Merge pull request #7128 from heyitsanthony/etcdctl-make-rootrole
etcdctl: create root role on auth enable if it does not yet exist
2017-01-10 12:22:02 -08:00
b32a8010a7 Merge pull request #7121 from hhkbp2/add-test-case
raft: add RawNode test case for #6866
2017-01-09 23:37:23 -08:00
522232212d Merge pull request #7127 from heyitsanthony/fix-auth-spin
auth: reject empty user name when checking op permissions
2017-01-09 19:11:18 -08:00
16135165c2 raft: add RawNode test case for #6866 2017-01-10 10:55:57 +08:00
d20f23c795 etcdctl: create root role on auth enable if it does not yet exist
Kind of tedious to add the root role when enabling auth; can just add
it automatically.
2017-01-09 16:18:13 -08:00
c39a59c0be auth: reject empty user name when checking op permissions
Passing AuthInfo{} to permission checking was causing an infinite loop
because it would always return an old revision error.

Fixes #7124
2017-01-09 15:53:36 -08:00
5278ea5ed0 integration: add grpc auth testing 2017-01-09 15:53:36 -08:00
8adfc06084 Merge pull request #7118 from hhkbp2/fix-test-case
raft: fix test cases for #7042
2017-01-09 10:34:46 -08:00
4a245a632a vendor: update ugorji/go 2017-01-09 12:13:50 +01:00
7bb768ba34 raft: fix test case for #7042 2017-01-09 16:52:02 +08:00
f99c76cb47 Merge pull request #7113 from heyitsanthony/testutil-bufsize
testutil: increase size of buffer for stack dump
2017-01-06 18:16:42 -08:00
6ab8dcb679 testutil: increase size of buffer for stack dump
Too many goroutines to fit all stack traces in 8kb.
2017-01-06 17:14:42 -08:00
bc2d47118d Merge pull request #7016 from fanminshi/faq_add_meaning_of_etcd
why: add origin of the term etcd
2017-01-06 16:13:34 -06:00
953b0c6ba2 why: add origin of the term etcd
explain the meaning behind the term etcd.
2017-01-06 16:12:20 -06:00
628e83ecc7 Merge pull request #7106 from gyuho/go1.8
integration: use only digits in unix ports
2017-01-06 13:04:35 -08:00
998f8bf291 Merge pull request #7112 from heyitsanthony/expect-debug
expect: EXPECT_DEBUG environment variable
2017-01-06 11:52:26 -08:00
af5b8190d2 Merge pull request #7111 from heyitsanthony/e2e-ctl-trace
e2e: dump stacks on ctlTest timeout
2017-01-06 11:28:56 -08:00
cf382dbe60 expect: EXPECT_DEBUG environment variable
Dump process output to stdout when EXPECT_DEBUG != "".
2017-01-06 11:09:06 -08:00
acfa601075 e2e: dump stack on ctlTest timeout
Figure out which process is blocking for Elect/Lock test timeouts.
2017-01-06 02:03:55 -08:00
6825ffe1a4 integration: use only digits in unix ports
Fix https://github.com/coreos/etcd/issues/6959.
2017-01-05 12:34:54 -08:00
a42b399f4e Merge pull request #7094 from heyitsanthony/fix-duplicate-grant
auth: use quorum get for GetUser/GetRole for mutable operations
2017-01-05 11:28:33 -08:00
5feb4e1027 Merge pull request #7103 from heyitsanthony/proxy-watch-close
grpcproxy: tear down watch when client context is done
2017-01-04 19:04:08 -08:00
fd72ecfe92 Merge pull request #7087 from sinsharat/make_etcd-runner_command_compliant
etcd-runner: make command compliant
2017-01-04 16:33:19 -08:00
e179225f28 grpcproxy: tear down watch when client context is done
If client closes but all watch streams are not canceled, the outstanding
watch will wait until it is canceled, causing watch server to potentially
wait forever to close.

Fixes #7102
2017-01-04 16:23:27 -08:00
154f268031 Merge pull request #7001 from heyitsanthony/etcdctl-doc
etcdctl: tighten up output, reorganize README.md
2017-01-04 13:44:49 -08:00
10d3b81c39 Merge pull request #7093 from gyuho/member
etcdserver: expose ErrMemberNotEnoughStarted
2017-01-04 12:09:29 -08:00
f9f691ef1f auth: use quorum get for GetUser/GetRole for mutable operations
GetUser would not propagate to the minority node, causing TestCtlV2GetRoleUser to
run CreateUser instead of UpdateUser. Instead, use quorum get to fetch the
current state of auth.

Fixes #7069
2017-01-04 11:55:07 -08:00
729dcd51ce Merge pull request #7090 from vimalk78/fix-comactor-resume-leadr-change#7040
etcdserver: resume compactor only if leader
2017-01-04 10:47:44 -08:00
559a82f66e Merge pull request #7097 from heyitsanthony/benchmark-verbose
benchmark: enable grpc error logging on stderr
2017-01-04 10:32:07 -08:00
40ae83beab Merge pull request #7099 from overvenus/patch-1
docs: fix recovery example in recovery.md
2017-01-04 10:16:48 -08:00
37501e2a5d Merge pull request #7092 from xiang90/fix_raft
raft: use status to test node stop
2017-01-04 09:13:11 -08:00
7aeddf6cd7 docs: fix recovery example in recovery.md 2017-01-04 19:41:15 +08:00
d0f301adb7 etcd-runner:add flags in watcher for hardcoded values 2017-01-04 15:17:53 +05:30
b8444d4d35 benchmark: enable grpc error logging on stderr
Lets you see connection errors (e.g., if tls is misconfigured)
2017-01-04 00:26:43 -08:00
5fac6b8d15 etcdserver: resume compactor only if leader 2017-01-04 05:01:14 +05:30
2b5f9e1c6b etcdserver: expose ErrNotEnoughStartedMembers
Fix https://github.com/coreos/etcd/issues/7072.
2017-01-03 15:23:06 -08:00
fc8cd44c72 raft: use status to test node stop
n.Tick() is async. It can be racy when running with n.Stop().

n.Status() is sync and  has a feedback mechnism internally. So there wont be
any race between n.Status() and n.Stop() call.
2017-01-03 15:18:48 -08:00
61064a7be3 Merge pull request #7085 from gyuho/raft-example-snapshot
raftexample: load snapshot when opening WAL
2017-01-03 10:34:13 -08:00
5cb6dd268b etcd-runner: make command compliant 2017-01-03 14:43:58 +05:30
0af1679b61 raftexample: load snapshot when opening WAL
Fix https://github.com/coreos/etcd/issues/7056.
Previously we don't load snapshot when replaying WAL.
2016-12-30 17:28:57 -08:00
24601ca24b Merge pull request #7084 from heyitsanthony/watch-proxy-leak
integration: wait for watch proxy to finish on client close
2016-12-30 12:51:31 -08:00
75441390b6 integration: defer clus.Terminate in watch tests
Common pattern was defer cancel(), but clus.Terminate() at the end of
the test. This appears to lead to a deadlock that is only released
once the context times out, causing inflated test times.
2016-12-30 12:34:04 -08:00
9b5eb1ae5a grpcproxy, etcdmain, integration: return done channel with WatchServer
Makes it possible to synchronously close the watch server.

Fixes #7078
2016-12-30 12:09:48 -08:00
29e14dde0c Merge pull request #7081 from gyuho/timeout-rafthttp
rafthttp: bump up timeout in pipeline test
2016-12-30 10:14:12 -08:00
cbb6ede69d Merge pull request #7067 from fanminshi/rework_coverage_unit_integration
coverage: rework coverage for unit and integration tests
2016-12-30 10:13:07 -08:00
d25f9feb19 rafthttp: bump up timeout in pipeline test
Fix https://github.com/coreos/etcd/issues/6283.

The timeout is too short. It could take more than 10ms
to send when the buffer gets full after 'pipelineBufSize' of
requests.
2016-12-30 09:46:16 -08:00
74e7614759 testutil: whitelist thread created by go cover 2016-12-29 17:19:27 -08:00
d9a3472894 coverage: rework code coverage for unit and integration tests 2016-12-29 17:19:03 -08:00
0dce29ae57 Merge pull request #7077 from fanminshi/consistent_naming
etcdserver: consistent naming in raftReadyHandler
2016-12-29 14:37:46 -08:00
8242049a33 Merge pull request #7076 from fanminshi/fix_e2e_test
e2e: unset ETCDCTL_API env var before running e2e tests
2016-12-29 14:37:25 -08:00
734dd75565 Merge pull request #7075 from gyuho/version-pull
e2e: poll '/version' in release upgrade tests
2016-12-29 11:29:45 -08:00
2a1bae0c2a etcdserver: consistent naming in raftReadyHandler 2016-12-29 11:27:16 -08:00
b741452d03 e2e: unset ETCDCTL_API env var before running u2e tests
existing ETCDCTL_API env var causes e2e to fail some of its tests.  ETCDCTL_API should not be set before e2e tests start.
the tests themselves should set ETCDCTL_API properly.
2016-12-29 11:21:15 -08:00
4e1010c1b9 e2e: poll '/version' in release upgrade tests
Fix https://github.com/coreos/etcd/issues/7065.
2016-12-29 10:52:40 -08:00
67c75606db Merge pull request #7070 from heyitsanthony/fix-lease-race
lease: use atomics for accessing lease expiry
2016-12-28 16:30:08 -08:00
b5cde6b321 lease: use atomics for accessing lease expiry
Demote was racing on expiry when LeaseTimeToLive called Remaining. Replace
with intrinsics since the ordering isn't important, but torn writes are
bad.
2016-12-28 15:44:14 -08:00
1643ed5667 Merge pull request #7071 from heyitsanthony/bump-integration-timeout
test: bump grpcproxy pass timeout to 15m
2016-12-28 15:41:00 -08:00
f876ccb055 test: bump grpcproxy pass timeout to 15m
integration tests have a 15m timeout elsewhere. The lease stress tests
seem to have pushed the running time over 10m on proxy CI, causing
failures from timeout.
2016-12-28 14:56:57 -08:00
12d930b40f Merge pull request #7068 from heyitsanthony/fix-v2-health
v2http: submit QGET in health endpoint if no progress
2016-12-28 14:30:31 -08:00
3519a9784e Merge pull request #7039 from mitake/benchmark-dialtimeout
benchmark: a new option for configuring dial timeout
2016-12-28 13:12:11 -08:00
9690220cd1 Merge pull request #7064 from heyitsanthony/fix-health-perms
etcdctl: treat permission denied as healthy endpoint
2016-12-28 13:04:55 -08:00
e2463569e7 v2http: submit QGET in health endpoint if no progress
Removing the periodic SYNC calls broke the health endpoint since the
raft index stops updating. Instead, don't bother monitoring the
raft index; issue a QGET directly to get a consensus response.

Fixes #6985
2016-12-28 12:20:56 -08:00
46062efa78 e2e: test cluster-health 2016-12-28 12:20:55 -08:00
e63059ec31 Merge pull request #7030 from crandles/grpc-histograms
etcdmain: add '--metrics' option
2016-12-28 12:03:53 -08:00
36b2d3f5eb etcdmain: add --metrics flag for exposing histogram metrics
this adds a new flag, --metrics, that can be used to enable extensive (histogram) metrics.

Fixes #7024
2016-12-28 13:04:52 -05:00
00e00f16bb ctlv3: consider permission denied error to be healthy for endpoints
Relaxes the permission expectations for endpoint health by noting:
* permission denial on linearized reads is always through consensus
* endpoint health means consensus with the cluster through the endpoint

So, there's no need to require permission on a health check key in order
to know whether the endpoint is healthy.

Fixes #7057
2016-12-28 09:13:27 -08:00
b940e0d514 Merge pull request #7042 from petermattis/pmattis/resume-after-heartbeat-resp
raft: resume paused followers on receipt of MsgHeartbeatResp
2016-12-27 21:15:53 -08:00
a662ddefbb benchmark: a new option for configuring dial timeout
Current benchmark doesn't have an option for configuring dial timeout
of gRPC. This commit adds --dial-timeout for the purpose. It is useful
for stopping long sticking benchmarks.
2016-12-28 14:07:43 +09:00
407afc69ed e2e: check etcdctl endpoint health is healthy if denied permission to key 2016-12-27 14:49:52 -08:00
c00084812c Merge pull request #7054 from gyuho/err
etcd-tester: remove unused err var from maxRev
2016-12-27 12:36:48 -08:00
db8b15bf8f etcd-tester: remove unused err var from maxRev 2016-12-27 12:16:43 -08:00
89b18ff1af Merge pull request #7015 from fanminshi/fix_lease_expired_too_soon
lease: force leader to apply its pending committed index for lease op…
2016-12-27 11:26:15 -08:00
2faf72f47c etcdserver: rework update committed index logic 2016-12-27 10:11:40 -08:00
17873f7be8 Merge pull request #7008 from heyitsanthony/fix-dns
retry on resolution failure for advertised peer DNS check
2016-12-27 10:03:01 -08:00
d9b9821551 Merge pull request #7060 from hhkbp2/fix-pre-vote-tests
raft: fix pre-vote tests
2016-12-26 17:42:36 -08:00
920b155f17 raft: fix pre-vote tests 2016-12-26 14:31:59 +08:00
7b7feb46fc leasehttp: buffer error channel to prevent goroutine leak 2016-12-22 14:25:01 -08:00
fef4a79528 lease: force leader to apply its pending committed index for lease operations
suppose a lease granting request from a follower goes through and followed by a lease look up or renewal, the leader might not apply the lease grant request locally. So the leader might not find the lease from the lease look up or renewal request which will result lease not found error. To fix this issue, we force the leader to apply its pending commited index before looking up lease.

FIX #6978
2016-12-22 14:24:38 -08:00
1a8e3cad9a Merge pull request #7053 from gyuho/typo
etcd-tester: fix typo, add endpoint in logs
2016-12-22 13:12:38 -08:00
591bb5e7f6 etcd-tester: fix typo, add endpoint in logs 2016-12-22 12:51:27 -08:00
acbf0fa452 Merge pull request #7041 from m1093782566/raft-safe
raft: make memory storage set method thread safe
2016-12-20 09:14:27 -08:00
e625400f1d raft: resume paused followers on receipt of MsgHeartbeatResp
Previously, paused followers were resumed upon sending a MsgHearbeat.

Fixes #7037
2016-12-20 08:22:09 -05:00
8151d4d0bc raft: make memory storage set method thread safe 2016-12-20 18:48:52 +08:00
d62ce55584 Merge pull request #7027 from gyuho/default-host
embed: only override default advertised client URL if the client listen URL is 0.0.0.0
2016-12-16 18:53:11 -08:00
e58287f026 embed: only override default advertised client URL if the client listen URL is 0.0.0.0 2016-12-16 18:31:04 -08:00
af3451be26 Merge pull request #7018 from gyuho/why
Documentation: add 'why.md'
2016-12-16 15:54:49 -08:00
bef87cc953 Documentation: add 'why.md' 2016-12-16 15:54:03 -08:00
f95f7a3027 Merge pull request #7028 from gyuho/faq
Documentation: add FAQs on membership operation
2016-12-16 15:37:21 -08:00
2f0e82a31e Documentation: add FAQs on membership operation
Copy Anthony's answer from:
https://github.com/coreos/etcd/issues/6103
https://github.com/coreos/etcd/issues/6114
2016-12-16 15:13:40 -08:00
780d2f2a59 etcdctl: tighten up output, reorganize README.md
Documentation was far too repetitive, making it a chore to read and
make changes. All commands are now organized by functionality and all
repetitive bits about return values and output are in a generalized
subsections.

etcdctl's output handling was missing a lot of commands. Similarly,
in many cases an output format could be given but fail to report
an error as expected.
2016-12-16 13:54:20 -08:00
531c3061c1 Merge pull request #7023 from heyitsanthony/lease-freeze
clientv3: fix lease "freezing" on unhealthy cluster
2016-12-16 11:38:22 -08:00
a375e91c66 clientv3: don't reset keepalive stream on grant failure
Was triggering cancelation errors on outstanding KeepAlives if Grant
had to retry.
2016-12-16 10:36:51 -08:00
46bd842db9 clientv3/integration: test lease grant/keepalive with/without failures 2016-12-16 10:36:51 -08:00
87b1d9571f v3api, rpctypes: add ErrTimeoutDueToConnectionLost
Lack of GRPC code was causing this to look like a halting error to the client.
2016-12-16 10:25:35 -08:00
d9e928de7a Merge pull request #7020 from heyitsanthony/etcdctl-migrate-warn
etcdctl: warn when backend takes too long to open on migrate
2016-12-16 09:51:34 -08:00
109577351b Merge pull request #7022 from hongchaodeng/master
docs: explicitly set ETCDCTL_API=3 in recovery.md
2016-12-15 20:39:19 -08:00
fa733e1e9c docs: explicitly set ETCDCTL_API=3 in recovery.md 2016-12-15 20:10:30 -08:00
e71ff361a4 etcdctl: warn when backend takes too long to open on migrate 2016-12-15 18:57:57 -08:00
52e3dc5eb9 Documentation: minor fix nodes -> node 2016-12-15 21:27:52 -05:00
93e303ec71 Merge pull request #7017 from gyuho/faq
dev-guide: add limit.md
2016-12-15 15:45:23 -08:00
a1e572b460 dev-guide: add limit.md 2016-12-15 15:44:21 -08:00
5aeee917a7 Merge pull request #7006 from heyitsanthony/clusterid-split
Documentation: FAQ entry for cluster ID mismatches
2016-12-15 12:43:17 -08:00
14c851c863 Documentation: FAQ entry for cluster ID mismatches 2016-12-15 11:27:24 -08:00
86a43849fb Merge pull request #7010 from dennwc/keepalive-exit-err
clientv3: ensure KeepAlive channel is closed or error is returned
2016-12-15 08:06:36 -08:00
35fd5dc9fc Merge pull request #6903 from mitake/auth-member
protect membership change RPCs with auth
2016-12-15 08:04:31 -08:00
b126e31132 clientv3: better error message for keep alive loop halt 2016-12-15 16:06:27 +02:00
d46b753186 e2e: test cases of protecting membership change with auth 2016-12-15 22:54:20 +09:00
86d7390804 auth, etcdserver: protect membership change operations with auth
This commit protects membership change operations with auth. Only
users that have root role can issue the operations.

Implements https://github.com/coreos/etcd/issues/6899
2016-12-15 22:54:20 +09:00
5183ce0118 clientv3: add test for keep alive loop exit case 2016-12-15 03:02:44 +02:00
e0bcd4d516 clientv3: return error from KeepAlive if corresponding loop exits
after recvKeepAliveLoop exits client might call KeepAlive adding request channel that will not be closed
this fix makes sure that recvKeepAliveLoop is running before adding request to lessor's list and returns error otherwise

Fixes #6922
2016-12-15 03:02:35 +02:00
d8513adf1d Merge pull request #7007 from heyitsanthony/lease-close
clientv3: close Lease on client Close
2016-12-14 16:06:32 -08:00
26a3e9a740 membership: retry for 30s on advertise url check 2016-12-14 15:56:22 -08:00
29c30b2387 etcdserver: retry for 30s on advertise url check 2016-12-14 15:56:22 -08:00
13b05aeff8 netutil: ctx-ize URLStringsEqual
Handles the case where the DNS entry will only be set up after etcd
starts.
2016-12-14 15:46:30 -08:00
246fb29d8a clientv3: close Lease on client Close
Fixes #6987
2016-12-14 12:11:17 -08:00
a9f72ee0d4 Merge pull request #7005 from heyitsanthony/fix-pprof
embed: deep copy user handlers
2016-12-14 12:05:37 -08:00
8f88632218 Merge pull request #6965 from gyuho/faq
Documentation: add more FAQs (follower, leader, sys-require)
2016-12-14 11:51:34 -08:00
626df4d77c Documentation: add more FAQs (follower, leader, sys-require) 2016-12-14 11:36:07 -08:00
cc931a2319 embed: deep copy user handlers
Shallow copy of user handlers leads to a nil map assignment when
enabling pprof. Since the map is being modified, it should probably
be deep copied into the server context, which fixes the crash.
2016-12-14 10:17:32 -08:00
4ca78aa89f Merge pull request #7004 from fbarbeira/patch-3
op-guide/clustering: fix typo
2016-12-14 09:52:37 -08:00
972ef3c92e op-guide/clustering: fix typo 2016-12-14 18:51:30 +01:00
1e60f88786 Merge pull request #6999 from leonliao/patch-1
Documentation: use port 2379 in local cluster guide
2016-12-14 09:29:20 -08:00
cb9277f339 Documentation: use port 2379 in local cluster guide
The port in endpoints should be 2379, instead of 12379.
2016-12-14 15:09:21 +08:00
cdde0368ad Merge pull request #6997 from gyuho/range
auth: improve 'removeSubsetRangePerms' to O(n)
2016-12-13 16:14:37 -08:00
a53175949e auth: improve 'removeSubsetRangePerms' to O(n) 2016-12-13 15:43:23 -08:00
454f1da2f2 Merge pull request #6996 from xiang90/hardware
doc: add hardware section
2016-12-13 12:53:52 -08:00
e3d8ef4cea doc: add hardware section 2016-12-13 12:42:47 -08:00
1a8e78cd55 Merge pull request #6994 from gyuho/etcd-tester-fix-leak
etcd-tester: cancel lease stream; fix OOM panic
2016-12-13 10:44:54 -08:00
301abddc72 etcd-tester: cancel lease stream; fix OOM panic
It was never closing lease keep-alive streams, leaking memory.
Fix OOM panics in etcd-tester (after 1K rounds).
2016-12-13 09:56:30 -08:00
cc37beff35 Merge pull request #6995 from gyuho/etcd-tester-pprof
etcd-tester: add 'enable-pprof' option
2016-12-13 08:02:47 -08:00
4e831810c9 Merge pull request #6993 from cloudaice/build-bug
build: remove dir use -r flag
2016-12-13 07:57:31 -08:00
7d16e7d27e etcd-tester: add 'enable-pprof' option 2016-12-13 05:03:27 -08:00
b294ab13a4 build: remove dir use -r flag 2016-12-13 16:08:50 +08:00
797d826117 Merge pull request #6979 from heyitsanthony/fields-fmt
etcdctl: "fields" output formats
2016-12-12 15:17:12 -08:00
5f3140987e etcdctl: "fields" output formats
Writes out fields from responses in the format "FieldName" : FieldValue. If
FieldValue is a string, it is formatted with %q.
2016-12-12 13:21:20 -08:00
be740dc436 Merge pull request #6975 from gyuho/gopath
*: fix 'gosimple', 'gounused' checks
2016-12-12 11:53:45 -08:00
5b7582365e Merge pull request #6990 from xiang90/faq_m
doc: add faq about missing heartbeat
2016-12-12 11:38:10 -08:00
468187de31 doc: add faq about missing heartbeat 2016-12-12 11:31:17 -08:00
7e74b3f846 grpcproxy: remove unused field 'wbs *watchBroadcasts' 2016-12-12 10:07:14 -08:00
eb8646a381 v3rpc: remove unused 'splitMethodName' function 2016-12-12 10:07:14 -08:00
3512f114e4 e2e: remove unused 'ctlV3GetFailPerm' 2016-12-12 10:07:14 -08:00
b8e09bf849 tools: simplify boolean comparison, remove unused 2016-12-12 10:07:14 -08:00
0c5d1d5641 raft: simplify boolean comparison, remove unused 2016-12-12 10:07:14 -08:00
f3cb93015c integration: simplify boolean comparison in resp.Created 2016-12-12 10:07:14 -08:00
55307d48ac auth: fix gosimple errors 2016-12-12 10:07:14 -08:00
6ec4b9c26a test: exclude '_home' for gosimple, unused 2016-12-12 10:07:14 -08:00
0a15c1b9c6 Merge pull request #6988 from xiang90/faq_m
doc: add faq about apply warning logging
2016-12-12 10:06:32 -08:00
6969369a32 doc: add faq about apply warning logging 2016-12-12 09:58:42 -08:00
20dca1eb80 Merge pull request #6977 from heyitsanthony/move-prof
etcdserver, embed, v2http: move pprof setup to embed
2016-12-09 13:30:19 -08:00
cf60588b27 Merge pull request #6974 from heyitsanthony/interacting-fixup
Documentation: update get examples to be clearer about ranges
2016-12-09 13:08:40 -08:00
2c06def8ca etcdserver, embed, v2http: move pprof setup to embed
Seems like a better place for prof setup since it's not specific to v2.
2016-12-09 12:37:35 -08:00
cb75c40a8b Merge pull request #6973 from sinsharat/make_contributing_url_based
github: make contribution link non-relative
2016-12-09 12:28:07 -08:00
46e63cc14a Merge pull request #6972 from heyitsanthony/bug-report-link
github: make bug reporting link non-relative
2016-12-09 11:15:29 -08:00
d2a6bbd9c6 Documentation: update get examples to be clearer about ranges
Fixes #6966
2016-12-09 10:54:38 -08:00
01c8b25284 github: make contribution link non-relative 2016-12-10 00:03:47 +05:30
f8b480cd6f github: make bug reporting link non-relative
Works when accessed through code browser, blank if accessed via issues/
2016-12-09 10:18:38 -08:00
1e92b7929c Merge pull request #6967 from heyitsanthony/glide-versions
vendor: use version tags if possible
2016-12-08 16:09:41 -08:00
de58a9c733 scripts: use glide update if repo exists in glide.lock 2016-12-08 14:26:29 -08:00
f095334788 vendor: use versions when possible in glide.yaml
Now using tags instead of SHAs
2016-12-08 14:26:08 -08:00
367f513674 Merge pull request #6961 from heyitsanthony/roadmap
ROADMAP: update for 3.2
2016-12-08 13:30:31 -08:00
b713113094 Merge pull request #6962 from gyuho/mispell
grpcproxy: fix minor typo
2016-12-07 18:55:09 -08:00
fcbfff6a00 Merge pull request #6958 from xiang90/reduce_sync
etcdserver: only send v2 sync if ttl keys exist
2016-12-07 18:38:02 -08:00
a98de7efa7 grpcproxy: fix minor typo 2016-12-07 17:08:46 -08:00
69cc9fdd17 Merge pull request #6956 from gyuho/faq
Documentation: add more FAQ questions
2016-12-07 16:25:47 -08:00
7c0ae91d78 Documentation: add more FAQ questions 2016-12-07 16:25:04 -08:00
09252c4e07 ROADMAP: update for 3.2 2016-12-07 16:12:59 -08:00
2f96a68a20 etcdserver: do not send v2 sync if ttl keys do not exist 2016-12-07 14:48:15 -08:00
da3b71b531 Merge pull request #6929 from heyitsanthony/ctx-lease-renew
etcdserver: use context for Renew
2016-12-07 00:05:14 -08:00
96626d0a23 Merge pull request #6957 from coreos/philips-patch-1
Documentation: add blox and chain as users
2016-12-06 20:23:27 -08:00
1bee237acf Documentation: add blox and chain as users 2016-12-06 20:20:40 -08:00
c4e5081562 Merge pull request #6943 from m1093782566/fix-store-test-comments
store: fix store_test.go comments
2016-12-06 16:54:36 -08:00
529806dba1 Merge pull request #6935 from bdarnell/election-test
raft: Fix election "logs converge" test
2016-12-06 16:45:39 -08:00
be1f36d97c v3rpc, etcdserver, leasehttp: ctxize Renew with request timeout
Would retry a few times before returning a not primary error that
the client should never see. Instead, use proper timeouts and
then return a request timeout error on failure.

Fixes #6922
2016-12-06 14:09:57 -08:00
f6042890b7 integration: use RequireLeader for TestV3LeaseFailover
Giving Renew() the default request timeout causes TestV3LeaseFailover
to miss its timing constraints. Since it only needs to wait until the
leader recognizes the leader is lost, use RequireLeader to cancel the
keepalive stream before the request times out.
2016-12-06 14:09:57 -08:00
fdd89df1eb clientv3/integration: test lease keepalive works following quorum loss 2016-12-06 14:09:57 -08:00
cfd10b4bbf Merge pull request #6949 from xiang90/faq
doc: initial faq
2016-12-06 10:08:09 -08:00
58150937c0 doc: initial faq 2016-12-06 08:48:57 -08:00
1b0ffdaff0 Merge pull request #6945 from sttts/sttts-update-ugorji
Update ugorji
2016-12-06 08:05:13 -08:00
9c364efef6 client: update generated ugorji codec 2016-12-06 07:53:47 +01:00
b21731c022 vendor: update ugorji/go 2016-12-06 07:53:47 +01:00
9603d5e31f store: fix store_test.go comments 2016-12-06 09:31:59 +08:00
994e0d2182 Merge pull request #6950 from gyuho/fix-readstatec-deadlock
etcdserver: time out when readStateC is blocking
2016-12-05 16:37:47 -08:00
cbee2b74a3 Merge pull request #6948 from heyitsanthony/fix-metric-deadlock
grpcproxy: fix deadlock in watchbroadcast
2016-12-05 16:17:26 -08:00
3fd1d951f8 etcdserver: time out when readStateC is blocking
Otherwise, it will block forever when the server is overloaded.

Fix https://github.com/coreos/etcd/issues/6891.
2016-12-05 15:34:46 -08:00
91ff6f30b5 grpcproxy: fix deadlock in watchbroadcast
Calling empty() in watchbroadcast methods was trying to
lock the rwmutex when it was already held.

Fixes #6937
2016-12-05 15:06:44 -08:00
2509e7ad2c Merge pull request #6947 from heyitsanthony/grpc-stat-race
grpcproxy: lock store when getting size
2016-12-05 14:30:00 -08:00
8fefd1f471 Merge pull request #6942 from eiipii/eiipiiVersion2ScalaClient
eiipii/etcdhttpclient library added to documentation on external clients
2016-12-05 14:12:47 -08:00
f62ed3d642 Documentation: link added to libraries-and-tools.md with a new v2 Scala
Client
2016-12-05 22:55:17 +01:00
b9b14b15d6 Merge pull request #6946 from heyitsanthony/fix-e2e-getrole
etcdctl: remove GetUser check before mutable commands
2016-12-05 13:34:52 -08:00
62398954e4 grpcproxy: lock store when getting size
Fixes data race in proxy integration tests.
2016-12-05 13:29:57 -08:00
5559a026d7 etcdctl: remove GetUser check before mutable commands
etcdctl was checking if the user exists before applying mutable calls;
if etcdctl contacts a minority member, the member may not know the user
exists on the cluster yet, causing command failure when it should succeed.

If the user does not exist, it will be picked up once the command goes
through raft.

Fixes #6932
2016-12-05 12:12:06 -08:00
2b6ad93036 Merge pull request #6936 from xiang90/put_rate
banchmark: add rate limit
2016-12-05 12:01:15 -08:00
e62e9ce193 benchmark: add rate limit 2016-12-05 09:54:30 -08:00
40f0193c4c Merge pull request #6938 from bdarnell/ispaused
raft: Export Progress.IsPaused
2016-12-03 21:51:09 -08:00
f60a5d6025 raft: Export Progress.IsPaused
CockroachDB would like to use this method for monitoring.
2016-12-04 13:14:08 +08:00
340ba8353c raft: Fix election "logs converge" test
The "logs converge" case in TestLeaderElectionPreVote was incorrectly
passing because some nodes were not actually using the preVoteConfig.
This test case was more complex than its siblings and it was not
verifying what it wanted to verify, so pull it out into a separate test
where everything can be tested more explicitly.

Fixes #6895
2016-12-03 17:29:15 +08:00
d844440ffb Merge pull request #6930 from xiang90/grpc_metrics
grpcproxy: add cache related metrics
2016-12-02 18:30:49 -08:00
0cb680800e grpcproxy: add cache related metrics 2016-12-02 15:29:42 -08:00
1f954dc9f4 Merge pull request #6926 from xiang90/metrics
grpcproxy: add richer metrics for watch
2016-12-02 14:13:43 -08:00
a686c994cd grpcproxy: add richer metrics for watch 2016-12-02 11:13:30 -08:00
f61b4ae5ad Merge pull request #6921 from heyitsanthony/fix-watch-prevkv-test-leak
integration: cancel Watch when TestV3WatchWithPrevKV exits
2016-12-01 15:25:00 -08:00
76bb33781f integration: cancel Watch when TestV3WatchWithPrevKV exits
Missing ctx cancel was causing goroutine leaks for the proxy tests.
2016-12-01 15:08:18 -08:00
9647012cb1 Merge pull request #6920 from endocode/dongsu/sdnotify-go-systemd
vendor: bump go-systemd to v14 to avoid build error
2016-12-01 10:39:40 -08:00
b9e9c9483b Merge pull request #6885 from fanminshi/refractor_lease_checker
etcd-tester: refactor lease checker
2016-12-01 10:11:15 -08:00
5e351956b9 vendor: bump go-systemd to v14 to avoid build error
Bump go-systemd to v14 (48702e0d, 2016-11-14).
Also adjust caller of daemon.SdNotify() to avoid build error, which can
be seen especially when running "go get github.com/coreos/etcd".
2016-12-01 13:26:46 +01:00
5d60482357 Merge pull request #6911 from m1093782566/fix-get-sorted
store: check sorted order in TestStoreGetSorted
2016-11-30 19:49:55 -08:00
4e52b80590 Merge pull request #6916 from heyitsanthony/fix-coalesce-bcast-race
grpcproxy: fix race between coalesce and bcast on nextrev
2016-11-30 19:49:10 -08:00
5f2b5e8b9d store: check sorted order in TestStoreGetSorted 2016-12-01 10:36:23 +08:00
394ab43587 etcd-tester: refactor lease checker
Move few checking logic from lease stresser to lease checker and change connection logic for lease stresser and checker
2016-11-30 17:29:58 -08:00
60908c64a6 grpcproxy: fix race between coalesce and bcast on nextrev
coalesce was locking the target coalesce broadcast object but not the source
broadcast object resulting in a data race on the source's nextrev.
2016-11-30 16:50:29 -08:00
98cd3fddc9 Merge pull request #6907 from heyitsanthony/fix-quota-proxy-failfast
integration: use Range to wait for reboot in quota tests
2016-11-30 16:49:54 -08:00
f1e0525c81 integration: use Range to wait for reboot in quota tests
Proxy client layer ignores call options so Put is always FailFast;
this can lead to connection errors when trying to issue the Put
following restarting the client's target server.
2016-11-30 13:56:30 -08:00
7079bf9a75 Merge pull request #6574 from vimalk78/auth-simpletoken-not-removed#6554
auth/simple_token.go : token not removed when etcdctl session closes …
2016-11-30 11:33:23 -08:00
8eec86f7fb Merge pull request #6888 from fanminshi/use_monotonic_time_for_lease
Use monotonic time in lease
2016-11-29 13:39:01 -08:00
e7f4010cca lease: Use monotonic time in lease
lease uses monotimer to calculate its expiration. In this way, changing system time won't affect in lease expiration.

FIX #6700
2016-11-29 12:31:00 -08:00
cac30beed5 Merge pull request #6906 from heyitsanthony/fix-watchclose-race
grpcproxy: fix race between watch ranges delete() and broadcasts empty()
2016-11-28 16:26:03 -08:00
d680b8b5fb grpcproxy: fix race between watch ranges delete() and broadcasts empty()
Checking empty() wasn't grabbing the broadcasts lock so the race detector
flags it as a data race with coalesce(). Instead, just return the number
of remaining watches following delete() and get rid of empty().
2016-11-28 15:53:41 -08:00
a076510cc1 Merge pull request #6905 from heyitsanthony/client-readme
client: update README about health monitoring
2016-11-28 13:10:57 -08:00
8aa03a5959 Merge pull request #6884 from gyuho/tls
etcdmain: handle TLS in grpc-proxy listener
2016-11-28 12:28:56 -08:00
ad16b63cce client: update README about health monitoring 2016-11-28 12:28:33 -08:00
dfe853ebff auth: add a timeout mechanism to simple token 2016-11-28 17:21:13 +05:30
c31b1ab8d1 Merge pull request #6896 from gyuho/endpoints
clientv3: return copy of endpoints, not pointer
2016-11-23 11:51:48 -08:00
a08103c088 clientv3: return copy of endpoints, not pointer
Fix https://github.com/coreos/etcd/issues/6892.
2016-11-23 11:33:54 -08:00
aea9c6668f Merge pull request #6890 from gyuho/doc
Documentation/op-guide: add notes about 'datasource' in Prometheus
2016-11-22 10:43:30 -08:00
ede51b10f8 op-guide: add notes about Prometheus data source in Grafana 2016-11-22 10:34:41 -08:00
ec5f9bce63 Merge pull request #6886 from fanminshi/fix_dial_grpc
functional-tester: add withBlock() to grpc dial
2016-11-21 11:33:31 -08:00
f7c721b746 Merge pull request #6867 from fanminshi/fix_checking_timeout
etcd-tester: limit max retry backoff delay
2016-11-21 11:20:32 -08:00
2ccba33dd1 functional-tester: add withBlock() to grpc dial
grpc dail withTimeout() only works if withBlock() option is present.
2016-11-21 11:15:12 -08:00
2ac1c4c9ed etcd-tester:limit max retry backoff delay
grpc uses expoential retry if a connection is lost. grpc will sleep base on exponential delay.
if delay is too large, it slows down tester.
2016-11-21 10:58:55 -08:00
ff96769b55 etcdmain: handle TLS in grpc-proxy listener 2016-11-21 10:39:34 -08:00
0326d6fdd3 Merge pull request #6877 from coreos/fix_test
etcd-tester: do not resolve localhost
2016-11-21 09:52:31 -08:00
69470b5e5f Merge pull request #6878 from absolute8511/fix-raftexample-test
raftexample: confState should be saved after apply
2016-11-21 09:51:10 -08:00
d7c98a4695 Merge pull request #6879 from xiang90/raft_test
raft: fix TestNodeProposeAddDuplicateNode
2016-11-20 22:19:44 -08:00
f2eb8560ed raft: fix TestNodeProposeAddDuplicateNode
Only send signal after applying conf change.
Or deadlock might happen if raft node receives
ready without conf change when the test server
is slow.
2016-11-20 21:59:31 -08:00
859142033f Merge pull request #6866 from absolute8511/master
raft: add node should reset the pendingConf state
2016-11-20 21:34:37 -08:00
e6d1ebcc1d raft: use the channel instead of sleep to make test case reliable 2016-11-21 13:30:15 +08:00
bc6f5ad53e raft: fix test case for data race 2016-11-21 10:30:36 +08:00
62bd5477b9 raft: fix test case, should wait config propose applied 2016-11-21 10:10:34 +08:00
16e3ab0f11 raft: test case to check the duplicate add node propose 2016-11-20 16:58:11 +08:00
e8d06d8e4d raftexample: confState should be saved after apply 2016-11-20 16:51:33 +08:00
b1178469be etcd-tester: do not resolve localhost 2016-11-19 18:38:26 -08:00
7e7c7e157e Merge pull request #6873 from heyitsanthony/proxy-v3-watch-canceled-sync
grpcproxy: fix deadlock on watch broadcasts stop
2016-11-18 22:34:35 -08:00
bb4884e957 Merge pull request #6861 from gyuho/grpc-proxy-metrics
etcdmain: add '/metrics' HTTP/1 path to grpc-proxy
2016-11-18 20:03:52 -08:00
a39509ee5b etcdmain: add '/metrics' HTTP/1 path to grpc-proxy 2016-11-18 19:40:06 -08:00
7618fdd1d6 grpcproxy: fix deadlock on watch broadcasts stop
Holding the WatchBroadcasts lock and waiting on donec was
causing a deadlock with the coalesce loop. Was causing
TestV3WatchSyncCancel to hang.
2016-11-18 16:55:26 -08:00
2acf0806fb Merge pull request #6869 from sinsharat/mvcc_remove_unused_restore_method
mvcc: remove unused restore method
2016-11-18 15:52:45 -08:00
c1581732fd Merge pull request #6872 from heyitsanthony/srv-alert
discovery: warn on scheme mismatch
2016-11-18 13:41:34 -08:00
428cb21a3f Merge pull request #6864 from heyitsanthony/watch-doc
Documentation: add grpc gateway watch example
2016-11-18 13:30:16 -08:00
74ae67b835 discovery: warn on scheme mismatch 2016-11-18 13:12:14 -08:00
b7cc698444 version: bump up v3.1.0-rc.1+git 2016-11-18 11:41:29 -08:00
ccf154e706 Documentation: add grpc gateway watch example
Shows how to use watch via grpc gateway.
2016-11-18 11:37:35 -08:00
6d9168a2ec integration: don't expect recv to stop on CloseSend in waitResponse 2016-11-18 11:37:35 -08:00
3d5ba43211 version: bump up v3.1.0-rc.1 2016-11-18 11:16:01 -08:00
7da3019f42 Merge pull request #6862 from gyuho/network-interface
pkg/netutil: get default interface for tc commands
2016-11-18 10:11:59 -08:00
43078d3ced mvcc: remove unused restore method 2016-11-18 23:04:39 +05:30
097cdbd0e4 pkg/netutil: get default interface for tc commands
Fix https://github.com/coreos/etcd/issues/6841.
2016-11-17 22:49:17 -08:00
68b04b7067 Merge pull request #6846 from sinsharat/mvcc_store_restore_timeout_fix
mvcc: store.restore taking too long triggering snapshot cycle fix
2016-11-17 22:06:43 -08:00
456569f45d e2e: add test for v3 watch over grpc gateway 2016-11-17 15:49:58 -08:00
9a20743190 v3rpc: don't close watcher if client closes send
grpc-gateway will CloseSend but still want to receive updates.
2016-11-17 15:33:37 -08:00
4401d88546 raft: add node should reset the pendingConf state
After add node conf proposed twice with the same node id, the pending state is not reset because
the addNode returned without setting the pending state at the second
time and the pending state will always be true unless other conf changed. During this we
can not add any new node because the propose will be ignored since the
pending state is true.
2016-11-17 15:50:13 +08:00
aa2b5aec1b mvcc : Added benchmark for store.resotre 2016-11-17 04:01:15 +05:30
f014cca644 mvcc: TestStoreRestore fix 2016-11-16 16:58:42 +05:30
95fb41a923 mvcc: store.restore taking too long triggering snapshot cycle fix 2016-11-16 16:31:20 +05:30
377f19b003 Merge pull request #6857 from LK4D4/non_block_status
raft: return empty status if node is stopped
2016-11-15 16:44:50 -08:00
7afc490c95 raft: return empty status if node is stopped
If the node is stopped, then Status can hang forever because there is no
event loop to answer. So, just return empty status to avoid deadlocks.

Fix #6855

Signed-off-by: Alexander Morozov <lk4d4math@gmail.com>
2016-11-15 15:45:23 -08:00
e55b8485dd Merge pull request #6856 from heyitsanthony/proxy-lease-fix
grpcproxy: copy range request before storing in cache
2016-11-15 15:43:00 -08:00
1358a9d460 grpcproxy: copy range request before storing in cache
Reused Range requests would have Serialized overwritten with 'true'.

Was failing on TestV3LeaseSwitch.
2016-11-15 14:35:00 -08:00
7c8f13aed7 Merge pull request #6852 from heyitsanthony/fix-proxy-dbarrier
grpcproxy: watch next revision should be start revision when not 0
2016-11-15 09:21:18 -08:00
98a7c642d4 grpcproxy: watch next revision should be start revision when not 0
The create header revision is the current etcd revision. For watches with
rev=0, the next revision is hdr.rev+1. For watches with rev=n, the next
revision should be n.

Fixes TestDoubleBarrier timeouts.
2016-11-14 16:46:02 -08:00
677606da7d Merge pull request #6851 from gyuho/metrics
v3rpc: replace grpc metrics w/ go-grpc-prometheus
2016-11-14 16:09:17 -08:00
7cac755df2 op-guide: update gRPC requests metrics 2016-11-14 15:20:16 -08:00
5e810e30cc v3rpc: replace grpc metrics w/ go-grpc-prometheus
And disable histogram
2016-11-14 15:20:09 -08:00
d073512def Merge pull request #6849 from heyitsanthony/proxy-fix-watch-create
grpcproxy: don't send extra watch create events
2016-11-14 12:13:40 -08:00
90ea3fbadc grpcproxy: do not resend create event after leader loss
Only set CreateNotify if no watch responses have been received.
2016-11-14 10:43:06 -08:00
e40da39143 grpcproxy: only coalesce watchers that have received create response
Current watchers may have nextrev=0; check response count instead.
2016-11-14 09:19:02 -08:00
a2e86c1371 Merge pull request #6842 from heyitsanthony/watch-prevkv
grpcproxy: support prevKV watcher
2016-11-11 16:32:51 -08:00
45bba11f12 Merge pull request #6844 from gyuho/grafana
op-guide: add screenshot to sample Grafana dashboard
2016-11-11 16:30:02 -08:00
625366875d op-guide: add screenshot to sample Grafana dashboard 2016-11-11 16:21:15 -08:00
70fd684843 Merge pull request #6843 from gyuho/docs
Documentation/op-guide: add 'monitoring' guide
2016-11-11 16:08:32 -08:00
6d83590434 Documentation/op-guide: add 'monitoring' guide 2016-11-11 15:22:07 -08:00
6604306398 grpcproxy: support prevKV watcher
Makes all server watchers PrevKV, discards if client watcher is not PrevKV.
2016-11-11 14:22:06 -08:00
3c97e7a475 Merge pull request #6800 from sinsharat/add_benchmark_watch_latency
benchmark: added watch-latency
2016-11-11 12:41:26 -08:00
e5b6324771 benchmark: added watch-latency 2016-11-12 01:08:35 +05:30
b4726a9501 Merge pull request #6822 from heyitsanthony/watch-bcast
grpcproxy: rework watcher organization
2016-11-11 10:50:27 -08:00
5af4de0930 Merge pull request #6840 from gyuho/vendor
*: clean up vendor
2016-11-11 10:15:18 -08:00
395cf7de51 grpcproxy: reject invalid watch ranges 2016-11-11 10:14:35 -08:00
ec459c2185 grpcproxy: rework watcher organization
The single watcher / group watcher distinction limited and
complicated watcher coalescing more than necessary. Reworked:

Each server watcher is represented by a WatchBroadcast, each
client "Watcher" attaches to some WatchBroadcast. WatchBroadcasts
hold all WatchBroadcast instances for a range. WatchRanges holds
all WatchBroadcasts for the proxy.

WatchProxyStreams represent a grpc watch stream between the proxy and
a client. When a client requests a new watcher through its grpc stream,
the ProxyStream will allocate a Watcher and WatchRanges assigns it to
some WatchBroadcast based on its range.

Coalescing is done by WatchBroadcasts when it receives an update
notification from a WatchBroadcast.

Supports leader failure detection so watches on a bad member
can migrate to other members. Coincidentally, Fixes #6303.
2016-11-11 10:14:35 -08:00
4d5a12a248 Merge pull request #6839 from xiang90/ctl_v
etcdctl: etcdctl v3 should print out its API version
2016-11-11 10:00:14 -08:00
4b417da1be Merge pull request #6837 from purpleidea/feat/consturls
embed: Make immutable defaults constant
2016-11-11 09:53:55 -08:00
38ce362629 vendor: clean up, remove unnecessary deps 2016-11-11 09:51:07 -08:00
1f7e88d851 glide: rerun updatedep.sh to clean up 2016-11-11 09:50:46 -08:00
1ef243e436 etcdctl: etcdctl v3 should print out its API version 2016-11-11 09:33:20 -08:00
745cd730a7 embed: Make immutable defaults constant
This changes the two immutable defaults into constants which allows
packages embedding etcd to import them as const! If they are variables,
then you'll fail with "const initializer foo is not a constant".
2016-11-11 07:34:45 -05:00
952eb4fade Merge pull request #6833 from gyuho/news
NEWS: update with v3.0.15
2016-11-10 13:34:16 -08:00
7c0035637d NEWS: update with v3.0.15 2016-11-10 13:29:07 -08:00
ef024049df Merge pull request #6832 from gyuho/vendor
*: update all grpc-related dependencies
2016-11-10 13:28:07 -08:00
b8b72f80f9 *: revendor, update proto files 2016-11-10 12:02:00 -08:00
baa4e4ee56 scripts/genproto: update gogo/protobuf, grpc-gateway 2016-11-10 12:02:00 -08:00
8631f47568 glide: update all grpc-related dependencies 2016-11-10 12:01:45 -08:00
0a8e28524b Merge pull request #6779 from xiang90/watch_clean
etcd-runner: clean up watcher runner
2016-11-10 09:59:08 -08:00
0b78ef8de1 Merge pull request #6831 from xiang90/grpc_proxy_doc
doc: add gRPC proxy start doc
2016-11-10 09:34:38 -08:00
b16c93a885 doc: add gRPC proxy start doc 2016-11-10 09:20:13 -08:00
523a859ad9 etcd-runner: clean up watcher runner 2016-11-10 08:56:19 -08:00
1a25b2ff3e Merge pull request #6781 from gyuho/vendor
scripts/updatedep: work around 'testify/assert', remove 'etcd-top'
2016-11-09 16:17:27 -08:00
55d25f6f4d tools: remove 'etcd-top'
Travis CI breaks because of cgo dependencies on 'etcd-top'.
This can leave outside of project.
2016-11-09 15:59:47 -08:00
5b8300f08b store: type-assert int64 for assert tests 2016-11-09 15:59:47 -08:00
859ac6dfd8 vendor: rerun 'updatedep.sh' script, clean up 2016-11-09 15:59:47 -08:00
0f68810505 glide: remove legacy packages from godep
And remove all legacy packages in glide.yaml on sub-dependency.
They were added when we migrated from godep. glide will handle
it automatically with glide.lock file.
2016-11-09 15:59:47 -08:00
4cf5b76d18 scripts/updatedep: work around 'testify/assert'
'glide vc --no-tests' flag removes 'testify/assert' deps
in v2 client. Until we deprecate v2 tests, just copy the
necessary files as workaround.

And remove '--skip-tests' flags in case we add dependencies
in test files.
2016-11-09 15:59:34 -08:00
ab6b175a2a Merge pull request #6828 from fanminshi/add_not_equal_to_compare
etcdserver, clientv3: add "!=" to txn
2016-11-09 15:27:08 -08:00
c2fd42b556 etcdserver, clientv3: add "!=" to txn
adding != to compare is a requested functionality from a etcd user

FIX #6719
2016-11-09 14:28:36 -08:00
4a1e89150b Merge pull request #6827 from heyitsanthony/proxy-txn-invalidate
grpcproxy: update cache based on txn response
2016-11-09 13:16:48 -08:00
3ed63af51a Merge pull request #6826 from feisan/dev-kvkv
clientv3/naming: support OpOption when adding an endpoint
2016-11-09 13:03:56 -08:00
a4dcceb8aa grpcproxy: update cache based on txn response
Fixes more hangs in TestSTMConflict.
2016-11-09 12:11:38 -08:00
c20d31adc5 clientv3/naming: support OpOption when adding an endpoint
if we want to add an endpoint with lease, we need this option.
for example:

    resp, err := cli.Grant(context.TODO(), 5)
    if err != nil {
        log.Fatal(err)
    }

    err = r.Update(context.TODO(), serviceName, naming.Update{Op:naming.Add, Addr: exposedAddr}, clientv3.WithLease(resp.ID))
    if err != nil {
        log.Fatalf(err)
    }
2016-11-09 15:30:17 -04:00
9c7a0a68e5 Merge pull request #6825 from gyuho/new
etcdserver: increase maxGapBetweenApplyAndCommitIndex
2016-11-09 10:32:51 -08:00
c817df1d32 etcdserver: increase maxGapBetweenApplyAndCommitIndex
This exists to prevent sending too many requests that
would lead into applier falling behind Raft accepting-proposal.

Based on recent benchmarks, etcd was able to process high workloads
(2 million writes with 1K concurrent clients).

The limit 1000 is too conservative to test those high workloads.
2016-11-09 09:44:11 -08:00
dbb692e50f Merge pull request #6820 from gyuho/watcher
mvcc: return -1 for wrong watcher range key >= end
2016-11-08 17:36:19 -08:00
0f5d9f00ad Merge pull request #6808 from fanminshi/functional-tester-compaction-deadline-fix
etcd-tester: increase compaction timeout limit
2016-11-08 17:18:40 -08:00
9dd75a946f clientv3, ctlv3: document range end requirement 2016-11-08 17:02:32 -08:00
396a71ee9e integration: test wrong watcher range 2016-11-08 17:02:32 -08:00
425acb28c4 mvcc: return -1 for wrong watcher range key >= end
Fix https://github.com/coreos/etcd/issues/6819.
2016-11-08 17:02:28 -08:00
107d7b663c etcd-tester: changed compaction timeout calculation
functional tester sometime experiences timeout during compaction phase. I changed the timeout calculation base on number of entries created and deleted.

FIX #6805
2016-11-08 17:00:04 -08:00
a93d8dfe62 Merge pull request #6821 from gyuho/manual
*: fix minor typos, styles
2016-11-08 15:39:26 -08:00
510676fea9 Merge pull request #6816 from heyitsanthony/fix-disconn-cancel
clientv3: let watchers cancel when reconnecting
2016-11-08 13:27:50 -08:00
2955d58776 clientv3/integration: fix minor typos, consistent formatting 2016-11-08 12:37:33 -08:00
754daf918b clustering.md: update minor grammar 2016-11-08 12:34:43 -08:00
1a969ffc52 Merge pull request #6812 from feisan/dev-kvkv
Documentation: fixed  typo
2016-11-08 12:33:06 -08:00
1aeeb38459 clientv3: let watchers cancel when reconnecting 2016-11-08 12:02:17 -08:00
7b5e5eadb1 integration: test canceling a watcher on disconnected stream 2016-11-08 12:02:17 -08:00
b2f8d8c397 Merge pull request #6817 from heyitsanthony/build-tag-etcdtop
etcd-top: make build require -tags pcap
2016-11-08 08:12:22 -08:00
57fb2a2b35 vendor: unvendor gopcap so travis CI works 2016-11-07 16:17:52 -08:00
2af31f99c3 etcd-top: make build require -tags pcap
Fixes travis.
2016-11-07 15:54:40 -08:00
97ac128fef Documentation: fixed typo 2016-11-07 19:14:34 -04:00
c9cc1efb67 Merge pull request #6815 from bdarnell/transfer-non-member
raft: Check promotable() in MsgTimeoutNow handling
2016-11-07 10:33:57 -08:00
2f34547d39 raft: Check promotable() in MsgTimeoutNow handling
If MsgTimeoutNow arrived after a node was removed, the node could start
and win an election, then panic in becomeLeader (see
cockroachdb/cockroach#8535)
2016-11-07 20:02:21 +08:00
ecd4803ccc Merge pull request #6809 from hongchaodeng/doc
readme: add 'run etcd on k8s' section
2016-11-04 22:59:42 -07:00
011c452b65 readme: add 'run etcd on k8s' section 2016-11-04 20:28:14 -07:00
352d4fa3fa Merge pull request #6804 from heyitsanthony/stm-conflict
grpcproxy: invalidate comparison keys after txn
2016-11-04 17:04:16 -07:00
476ff67047 Merge pull request #6807 from xiang90/fix_raft_test
rafttest: make raft test reliable
2016-11-04 16:31:32 -07:00
e5987dea37 rafttest: make raft test reliable 2016-11-04 15:55:17 -07:00
91360e1495 Merge pull request #6806 from gyuho/metrics
v3rpc: add 'active' gRPC streamsGauge
2016-11-04 12:28:55 -07:00
67082e5bd1 v3rpc: add gRPC active streamsGauge 2016-11-04 11:09:20 -07:00
bf08a6142c grpcproxy: invalidate comparison keys after txn
If the txn comparison block makes claims about a key's current
state, then it may say a key has been updated. Future range/txn
operations may expect this update to eventually be propagated through
the cluster and show up in serialized requests. To avoid spinning
forever on txn/serialized range loops, invalidate the comparison keys.
2016-11-04 09:46:43 -07:00
27459425fa Merge pull request #6799 from gyuho/log-output
etcdmain: configurable 'etcd' binary log-output
2016-11-03 14:52:53 -07:00
a0d206c51f Merge pull request #6801 from xiang90/fix_snap_test
etcdserver: make snaptest fail fast
2016-11-03 14:49:42 -07:00
6a0a0a7ea1 etcdserver: make snaptest fail fast 2016-11-03 14:44:08 -07:00
6ffd7e3ed1 etcdmain: configurable 'etcd' binary log-output
Fix https://github.com/coreos/etcd/issues/5449.
2016-11-03 14:18:12 -07:00
aa526cd53d Merge pull request #6798 from gyuho/ctl-doc
etcdctl/ctlv3: clarify 'user add' argument (user:password)
2016-11-03 11:06:40 -07:00
31a6efbc13 etcdctl/ctlv3: clarify 'user add' argument (user:password) 2016-11-03 10:47:45 -07:00
f82aac2fc6 Merge pull request #6797 from fanminshi/lease_checker_println_fix
etcd-tester: fix lease checker logging format.
2016-11-03 10:17:54 -07:00
b7ab5c6384 Merge pull request #6788 from fanminshi/lease_http_eof_fix
etcd-tester: add retry logic on retriving lease info
2016-11-03 10:14:36 -07:00
6968028020 etcd-tester: fix lease checker logging format.
lease checker used a wrong print format for a variable. this change fixes it.
2016-11-03 10:11:00 -07:00
649fe7f2af etcd-tester: add retry logic on retriving lease info
getting lease and keys info through raw rpcs rarely experience error such as EOF. This is considered as a failure and causes tester to clean up.
however, they are just transient problem with temporary connection issue which should not be considered as a testing failure. so we add retry logic in case of transient failure.

FIX #6754
2016-11-03 10:05:06 -07:00
b28b38fb6d Merge pull request #6793 from timothysc/no-ttl
Add a no-ttl flag to etcdctl migrate to discard keys on transform.
2016-11-03 09:00:53 -07:00
c5ac02164d Merge pull request #6794 from xiang90/fix_migration
ctlv3: fix migration
2016-11-03 08:43:30 -07:00
97e96feb1d ctlv3: Add a no-ttl flag to etcdctl migrate to discard keys on transform. 2016-11-03 10:41:54 -05:00
4d2ec2fec1 Merge pull request #6792 from gyuho/leasehttp
leasehttp: use graceful close, add tests, remove TODO
2016-11-02 22:55:06 -07:00
bbc1cdafef Merge pull request #6791 from gyuho/grpc-leader
etcdserver: translate EOF to ErrNoLeader for renew, timetolive
2016-11-02 22:54:46 -07:00
cc304ac03c etcdserver: translate EOF to ErrNoLeader for renew, timetolive
Address https://github.com/coreos/etcd/issues/6754.

In case there are network errors or unexpected EOF errors
in TimeToLive http requests to leader, we translate that into
ErrNoLeader, and expects the client to retry its request.
2016-11-02 22:22:05 -07:00
2fb2b463a3 Merge pull request #6786 from mitake/empty-user
auth, etcdserver: forbid adding a user with empty name
2016-11-02 22:10:58 -07:00
f85701a46f auth, etcdserver: forbid adding a user with empty name 2016-11-03 13:45:39 +09:00
2ba42990ec ctlv3: fix migration 2016-11-02 20:00:07 -07:00
c931f4d164 leasehttp: use graceful close, add tests, remove TODO 2016-11-02 16:33:26 -07:00
378257161f Merge pull request #6789 from heyitsanthony/grpcproxy-close-send
grpcproxy: reliably track rid in watchergroups
2016-11-02 15:29:08 -07:00
fe755b6250 Merge pull request #6748 from sinsharat/client_metric_add_tests
clientv3: added test for client metrics
2016-11-02 15:00:08 -07:00
844378f0a7 Merge pull request #6790 from sinsharat/clientv3_metrics_doc_update
clientv3: updated doc for metric support
2016-11-02 14:56:04 -07:00
195570b621 clientv3: updated doc for metric support 2016-11-03 03:22:59 +05:30
8ec4215279 grpcproxy: reliably track rid in watchergroups
Couldn't find watcher group from rid on server stream close, leading to
the watcher group sending on a closed channel.

Also got rid of send closing the watcher stream if the buffer is full,
this could lead to a send after close while broadcasting to all receivers.
Instead, if a send times out then the server stream is canceled.

Fixes #6739
2016-11-02 14:42:02 -07:00
13acad85b3 clientv3: added test for client metrics 2016-11-03 00:38:29 +05:30
7d777a4a64 Merge pull request #6784 from xiang90/lock_warning
etcdserver: print out warning when waiting for file lock
2016-11-02 10:34:52 -07:00
5b7728f3cb Merge pull request #5994 from gyuho/v2-error
etcdctl/ctlv2: error handling with JSON
2016-11-01 21:51:16 -07:00
9b470ef4c0 etcdctl/ctlv2: error handling with JSON 2016-11-01 20:59:13 -07:00
c33d04fb54 etcdserver: print out warning when waiting for file lock 2016-11-01 17:55:16 -07:00
71bad561e8 Merge pull request #6782 from xiang90/v2store
store: do not modify key during scanning
2016-11-01 15:41:03 -07:00
43045500b2 store: do not modify key during scanning 2016-11-01 14:35:53 -07:00
71a533fec3 Merge pull request #6771 from fanminshi/refactor_short_lived_lease_logic
etcd-tester: refactor checking short lived lease logic
2016-11-01 14:17:43 -07:00
4f60f1b71f Merge pull request #6708 from bluepeppers/leader-sync-deadlock
client: Prevent deadlocks in Sync
2016-11-01 14:11:21 -07:00
8a03c95dd4 etcd-tester: refactor checking short lived lease logic
move the logic of waiting lease expired from stresser to checker
2016-11-01 14:06:22 -07:00
b30dc10812 Merge pull request #6770 from heyitsanthony/fix-grpc
grpcproxy: add SetHeader support to ServerStream
2016-11-01 13:55:07 -07:00
7ef17d3e97 grpcproxy: add SetHeader support to ServerStream
Fixes #6726
2016-11-01 13:28:02 -07:00
4575353693 Merge pull request #6768 from gyuho/wtwt
clientv3/integration: close active connection to get ErrClientConnClosing
2016-11-01 12:37:04 -07:00
0684d8c4c6 clientv3/integration: close active connection to get ErrClientConnClosing
because clientv3.Close won't trigger it any more

clientv3.Close just closes watch client
instead of closing grpc connection
2016-11-01 11:13:33 -07:00
94c804b81a Merge pull request #6766 from fanminshi/stabilization-logic-refractoring
functional-tester: remove stablilization limit
2016-11-01 10:43:00 -07:00
de008c8a4a client: prevent deadlock in Sync 2016-11-01 17:26:53 +00:00
c781f30ed5 functional-tester: remove stablilization limit
This change removes the waiting needed to ensure the cluster to be stable.

FIX #6760
2016-11-01 10:01:59 -07:00
db83736b7b Merge pull request #6774 from mitake/linearizable-password-checking
etcdserver: linearizable password checking at the API layer
2016-11-01 07:51:27 -07:00
fdf433024f etcdserver: linearizable password checking at the API layer
For avoiding a schedule that can cause an inconsistent auth store [1],
password checking must be done in a linearizable manner.

Fixes https://github.com/coreos/etcd/issues/6675 and https://github.com/coreos/etcd/issues/6683

[1] https://github.com/coreos/etcd/issues/6675#issuecomment-255006389
2016-11-01 00:02:33 -07:00
136c02da71 Merge pull request #6738 from gyuho/raft-cleanup
etcdserver: move 'EtcdServer.send' to raft.go
2016-10-31 15:15:08 -07:00
b64de4707d Merge pull request #6724 from johnbazan/ctlv3_add_user_with_password_inline
etcdctl: allow to add a user within one command line
2016-10-31 14:31:09 -07:00
d51a7dba43 etcdctl: Adding e2e tests for userAddTest 2016-10-31 18:14:29 -03:00
73b4a58ac0 etcdctl: allow to add a user within one command line
This makes the "user add usr:pwd" feature available for ctlv3
without asking for the password in a new prompt.
2016-10-31 18:14:19 -03:00
4969a0e9e7 Merge pull request #6758 from heyitsanthony/move-checker
etcd-tester: refactor stresser / checker management
2016-10-31 13:59:54 -07:00
308f2a1695 etcd-tester: refactor stresser/checker organization
The checkers and stressers should be composable without special cases; this
patch tries to address that while refactoring out some old cruft.

Namely,
* Single stresser/checker for a tester; built from composition
* Composite stresser via comma-separated list of stressers
* Split stressers into separate files
* Removed v2 only flags and special cases
* Rate limiter shared among key stresser and leases stresser
* Composite checker is now concurrent
* Stresser can return a Checker to check its invariants
* Each lease checker only operates on a single lease stresser
2016-10-31 13:59:04 -07:00
72fc5f7d1b Merge pull request #6765 from xiang90/s
etcd-runner: move string generation to pkg/stringutil
2016-10-31 12:37:18 -07:00
9f0ee53e86 etcd-runner: move string generation to pkg/stringutil 2016-10-31 12:20:02 -07:00
30d37b2165 Merge pull request #6763 from gyuho/spell
*: fix minor typos
2016-10-31 10:43:17 -07:00
5bd00ab1f6 *: fix minor typos 2016-10-31 09:47:15 -07:00
a1a2d2b1e7 Merge pull request #6762 from gyuho/doc
op-guide: 'strict-reconfig-check' true by default
2016-10-31 09:44:57 -07:00
7e06a95942 Merge pull request #6759 from xiang90/tester
etcd-runner: refactor code structure and flag cleanup
2016-10-31 09:07:18 -07:00
4a42c72b5e op-guide: 'strict-reconfig-check' true by default 2016-10-31 07:59:33 -07:00
e5c3978725 etcd-runner: refactor code structure and flag cleanup 2016-10-30 18:45:16 -07:00
86c4a74139 etcd-tester: move stresser and checker to tester
These really belong in tester code; the stressers and
checkers are higher order operations that are orchestrated
by the tester. They're not really cluster primitives.
2016-10-29 10:57:17 -07:00
4a08678ce1 Merge pull request #6749 from gyuho/raft-prevote
raft: do not attach term to MsgReadIndex
2016-10-28 22:29:08 -07:00
cb5c92f69b raft: do not attach term to MsgReadIndex
Fix https://github.com/coreos/etcd/issues/6744.

MsgReadIndex, as MsgProp, is to be forwarded to leader.
So we should treat it as local message.
2016-10-28 22:12:25 -07:00
0345226759 Merge pull request #6751 from heyitsanthony/fix-require-leader-test
integration: put key on watch target member for TestWatchWithRequireLeader
2016-10-28 23:24:00 -04:00
bc3e056b4a Merge pull request #6755 from fanminshi/log-statement-fix
functional-tester: fix log statement
2016-10-28 14:40:11 -07:00
34c906be55 functional-tester: fix log statement
simple fix for wrongly printed statement.
2016-10-28 14:27:09 -07:00
d8ea9d22b6 integration: put key on watch target member for TestWatchWithRequireLeader
It's possible the put will not propagate to all members before removing quorum,
causing watches on the key to wait forever.

Fixes #6386
2016-10-28 13:12:26 -04:00
a0360a83c9 Merge pull request #6745 from heyitsanthony/private-recipe
contrib/recipes: unexport and clean up keys.go
2016-10-28 12:44:58 -04:00
8f718e2e5a contrib/recipes: unexport and clean up keys.go
Fixes #6731
2016-10-28 11:41:13 -04:00
c6cd63dc35 Merge pull request #6747 from sinsharat/client_metric_add_example
clientv3: added example for client metrics
2016-10-27 16:42:18 -07:00
a1bfb31219 clientv3: added example for client metrics 2016-10-28 04:30:17 +05:30
ea05711522 Merge pull request #6746 from fanminshi/tester-recovery-error-fix
functional-tester: always clean up if tester encouters an error
2016-10-27 15:22:07 -07:00
7f5a7d1da5 functional-tester: always clean up if tester encouters an error
The current tester doesn't not clean up if any of the failure injection/recovery fails. if tester fails to recover a dead node, tester hangs in the next round because the tester will keep waiting until cluster becomes healthy which is impossible since a node is down. To fix this issue, we will always clean up if any error happens during each round so that cluster will be healthy for next round.

FIX #6743
2016-10-27 15:07:58 -07:00
89107a49fa Merge pull request #6741 from sinsharat/clientv3_add_client_side_metrics
clientv3: added client side metrics support
2016-10-27 13:22:10 -07:00
1b36162659 Merge pull request #6647 from gyuho/watch
clientv3: send create event over outc
2016-10-27 11:45:22 -07:00
0a3d45a307 clientv3: send create event over outc 2016-10-27 11:11:16 -07:00
8fd1dd7862 clientv3: added client side metrics support 2016-10-27 22:47:45 +05:30
c99a9f4075 clientv3: added entries for go-grpc-prometheus for build 2016-10-27 22:44:19 +05:30
2c974abcb9 clientv3: added go-grpc-prometheus for client meterics 2016-10-27 22:36:05 +05:30
6ec03d3f7c etcdserver: move 'EtcdServer.send' to raft.go
Clear 'TODO'
2016-10-26 16:26:00 -07:00
8825392da2 Merge pull request #6714 from fanminshi/short_term_lease_check
functional-tester: add short lived leases checking
2016-10-26 14:50:55 -07:00
8d9e2623e1 functional-tester: add short lived leases checking
lease stresser now generates short lived leases that will expire before invariant checking.
this addition verifies that the expired leases are indeed being deleted on the sever side.
2016-10-26 14:46:57 -07:00
d7c21e6837 Merge pull request #6737 from fanminshi/lease_expired_fix
functional-tester: increase lease TTL
2016-10-26 10:34:38 -07:00
1dc60bb97e functional-tester: increase lease TTL
increasing lease TTL ensure that lease doesn't expire during hashes stabilization period.
I observed that it can take a long time for etcd cluster to become stable.
2016-10-26 10:32:52 -07:00
c58ae95429 Merge pull request #6732 from JoshRosso/etcdctl-specify-ttl-unit
etcdctl: add ttl unit to flag description
2016-10-25 18:08:02 -07:00
e489229153 etcdctl: add ttl unit to flag description
Add the ttl unit (seconds) to --ttl description for etcdctl's mk, mkdir, set,
setdir, update, and updatedir commands.
2016-10-25 17:12:15 -07:00
12e4dfa9c4 Merge pull request #6715 from fanminshi/lease_hash_fix
Lease hash fix
2016-10-25 16:28:11 -07:00
b398233f4f Merge pull request #6730 from gyuho/round-prefix
etcd-runner: fix typo in round prefix
2016-10-25 16:24:27 -07:00
99539ff031 Merge pull request #6727 from sinsharat/etcd-runner_add_client_timeout_flag
etcd-runner: Added connection timeout flag for client
2016-10-25 16:09:10 -07:00
12488d4a70 etcd-runner: fix typo in round prefix 2016-10-25 15:59:44 -07:00
bb97adda0d functional-tester: add retries to hash checking
allows hashes to converge through retrying.
2016-10-25 14:27:36 -07:00
6e7e346c93 etcd-runner: Added client connection timeout flag 2016-10-26 01:58:22 +05:30
d7bc15300b Merge pull request #6624 from bdarnell/pre-vote
raft: Implement the PreVote RPC described in thesis section 9.6
2016-10-25 13:18:22 -07:00
ddc94aaf9e Merge pull request #6725 from gyuho/btree
vendor: backport 'google/btree' changes
2016-10-25 12:34:52 -07:00
4ba63237ce Merge pull request #6705 from gyuho/dump-db
etcd-dump-db: initial commit
2016-10-25 11:43:42 -07:00
cd618323d0 vendor: backport 'google/btree' changes 2016-10-25 10:53:35 -07:00
924ece6ae7 etcd-dump-db: initial commit 2016-10-25 10:18:51 -07:00
4e1d3f0f52 mvcc: expose 'backend.IgnoreKey' 2016-10-25 10:07:08 -07:00
18739e766a Merge pull request #6721 from sinsharat/etcd_runner_remove_unused_code
etcd-runner: remove unused code and change name for randClient
2016-10-25 10:01:20 -07:00
efeceef0ca Merge pull request #6703 from FedericoCeratto/patch-1
Add etcd client for Nim
2016-10-25 09:28:08 -07:00
8d5e969f12 raft: Separate test methods for vote and pre-vote tests 2016-10-25 23:31:44 +09:00
69ae49a1dd etcd-runner: remove unused code and change name for randClient 2016-10-25 19:16:27 +05:30
f2cff42cb8 libraries-and-tools: add Nim client 2016-10-25 12:20:42 +01:00
8e5f34fd97 Merge pull request #6709 from yudai/error_url
clientv3: Fix URL to rpc errors
2016-10-24 18:52:46 -07:00
e7e29ba249 clientv3: Fix URL to rpc errors 2016-10-24 16:38:05 -07:00
c549978b8e Merge pull request #6712 from doodles526/change_boom_to_hey
hack/benchmark: change boom to hey
2016-10-24 14:51:58 -07:00
4eefdaa4bb hack/benchmark: change boom to hey
boom has moved to hey, due to a conflicting binary name with another
project
2016-10-24 13:28:53 -07:00
0bb2384547 Merge pull request #6707 from mkumatag/ppc64le_support
Add ppc64le travis builds
2016-10-24 12:33:21 -07:00
77be124391 Merge pull request #6691 from xiang90/fix_retry
clientv3: do not retry on mutable operations
2016-10-24 10:32:34 -07:00
0642b4e61e travis: Add ppc64le travis builds 2016-10-24 22:46:14 +05:30
a1afb21e33 Merge pull request #6710 from fasaxc/report-cluster-id
client: Return the server's cluster ID as part of the Response
2016-10-24 09:46:57 -07:00
06e2ce116c Merge pull request #6704 from heyitsanthony/proxy-broadcast-race
grpcproxy: fix race on watcher revision
2016-10-24 09:17:29 -07:00
ae99c91903 Merge pull request #6698 from heyitsanthony/session-close
concurrency: terminate session.Close if revoke takes longer than TTL
2016-10-24 09:14:09 -07:00
43df091067 client: Return the server's cluster ID as part of the Response
This allows the client to spot if the cluster ID changes, which
would indicate that the cluster has been rebuilt and watches may be
out of sync.

Helps work around #6652.
2016-10-24 14:51:00 +01:00
22aa710c1f raft: Improve comments and formatting for PreVote change 2016-10-24 22:29:33 +09:00
81f151eed2 clientv3: fix retry logic
1. Balancer should setup gRPC error code correctly for retry.

2. We should not mask context error.
2016-10-22 22:15:43 -07:00
92c987f75d Merge pull request #6695 from sinsharat/watch_runner_respect_rounds
etcd-runner: watcher runner respect rounds
2016-10-21 20:28:29 -07:00
90146d863c etcd-runner: watcher runner respect rounds 2016-10-22 05:00:10 +05:30
cb3a5eaff1 Merge pull request #6702 from heyitsanthony/minmax-proxy
grpcproxy: respect {min,max}{create,mod} revision
2016-10-21 16:29:40 -07:00
a5c93840b4 Merge pull request #6701 from heyitsanthony/compact-resume
integration: account for unsynced server in TestWatchResumeCompacted
2016-10-21 16:29:27 -07:00
f38a5d19a8 concurrency: add WithContext option to sessions
Makes it possible to cancel session requests without having to
close the entire client.
2016-10-21 16:26:59 -07:00
1e330a90c7 concurrency: terminate session.Close if revoke takes longer than TTL
Fixes #6681
2016-10-21 16:21:01 -07:00
bd1985d84b grpcproxy: fix race on watcher revision
Was racing between broadcast setting the watchgroup revision
and joining single watchers.
2016-10-21 16:09:39 -07:00
65eb3038fe grpcproxy: respect {min,max}{create,mod} revision
Mutexes were breaking in proxy integration tests.
2016-10-21 15:02:00 -07:00
8f3abda5b8 integration: account for unsynced server in TestWatchResumeCompacted
The watch's etcd server is shutdown to keep the watch in a retry state as
keys are put and compacted on the cluster. When the server restarts,
there is a window where the compact hasn't been applied which may cause
the watch to receive all events instead of only a compaction error.

Fixes #6535
2016-10-21 13:42:10 -07:00
21e65eec08 Merge pull request #6692 from fanminshi/lease_expire_compact_fix
functional-tester: add rate limiter to lease stresser
2016-10-21 12:47:27 -07:00
d582fdcc1b functional-tester: add rate limiter to lease stresser
too many leases created can cause compaction to timeout. adding a rate limiter limits number of leases and attched keys.
2016-10-21 12:34:49 -07:00
1ad038d02e Merge pull request #6662 from gyuho/db-panic
backend: skip *bolt.DB.Size call when nil
2016-10-21 11:38:54 -07:00
ef9d55800f integration: test inflight Hash call on nil db 2016-10-21 11:02:54 -07:00
994e8e4f40 mvcc: test inflight Hash to trigger Size on nil db 2016-10-21 11:02:09 -07:00
7d30326968 backend: skip *bolt.DB.Size call when nil
Fix https://github.com/coreos/etcdlabs/issues/30.
2016-10-21 11:01:23 -07:00
791aeb39a6 Merge pull request #6653 from gyuho/acbuild
acbuild: add symlinks to /usr/local/bin/etcd*
2016-10-21 10:48:08 -07:00
60c0a5503e Merge pull request #6636 from heyitsanthony/watch-resume-close
clientv3: only receive from closing streams in Watcher close
2016-10-21 10:06:03 -07:00
b72a413b71 Merge pull request #6697 from gyuho/fmt
*: fix gofmt issues with go tip
2016-10-20 17:04:39 -07:00
0626ee048e rafthttp: fix gofmt issues with go tip 2016-10-20 16:32:56 -07:00
46716fe9fb mvcc: fix gofmt issues from Go tip 2016-10-20 16:32:47 -07:00
161eb2c457 Merge pull request #6696 from fanminshi/lease_expire_fix
functional-tester: modify lease renew logic
2016-10-20 16:25:04 -07:00
c100e40715 clientv3: only receive from closing streams in Watcher close
Was overcounting the number of expected closing messages; the resuming
list may have nil entries. Also the full client wasn't closing the watcher
client, only canceling its context, so client closes weren't joining with
the watcher shutdown.

Fixes #6605
2016-10-20 15:33:11 -07:00
a66c25121b integration: stress closing while resuming watchers 2016-10-20 15:33:11 -07:00
a25d4ac821 functional-tester: modify lease renew logic
only renew a lease if the lease is present.
2016-10-20 15:27:46 -07:00
a2cfb56581 Merge pull request #6689 from fanminshi/function-tester-ensure-etcd-fullly-restarted
functional-tester: add logic to ensure etcd node is alive after fault recovery returns
2016-10-20 13:30:48 -07:00
0f1eb14374 Merge pull request #6694 from gyuho/travis
travis: test with Go 1.7.3
2016-10-20 12:04:01 -07:00
dd1920883c Merge pull request #6693 from philips/fix-nb
Documentation: admin guide remove NB
2016-10-20 11:58:32 -07:00
9e6912fe82 travis: test with Go 1.7.3
Go 1.7.3 released.
2016-10-20 11:56:10 -07:00
e719d8641e Merge pull request #6688 from gyuho/compact-rev
e2e: compact with latest rev in alarm test
2016-10-20 11:54:04 -07:00
970abbb60a Documentation: admin guide remove NB
I have no idea what NB means but just change it to Note
2016-10-20 11:47:41 -07:00
9bfbc12d7d e2e: compact with latest rev in alarm test
Fix https://github.com/coreos/etcd/issues/6677.
2016-10-20 11:06:30 -07:00
a47797fdf1 Merge pull request #6690 from hongchaodeng/f
etcdctl: fix migrate in outputing client.Node to json
2016-10-20 10:50:58 -07:00
9205a242b9 clientv3: do not retry on mutable operations 2016-10-20 10:48:10 -07:00
94ea82c00d functional-tester: add logic to ensure etcd node is alive after fault recovery returns
failure recovery needs to wait etcd node to become alive before returning

FIX #6654
2016-10-20 10:31:08 -07:00
b3f0eeabe4 etcdctl: fix migrate in outputing client.Node to json
Using printf will try to parse the string and replace special
characters. In migrate code, we want to just output the raw
json string of client.Node.
For example,
    Printf("%\\") => %!\(MISSING)
    Print("%\\") => %\
Thus, we should use print instead.
2016-10-20 10:03:45 -07:00
6b1b13eabb Merge pull request #6687 from sinsharat/build_add_option_for_binary_stripping
build: add option to enable binaries stripping for windows
2016-10-19 13:25:25 -07:00
4dab78e72c Merge pull request #6680 from sinsharat/etcd_runner_make_run_watcher_fail_safe
etcd-runner: make run watcher fail safe
2016-10-19 13:24:14 -07:00
751a8d5b04 build: add option to enable binaries stripping for windows 2016-10-20 00:52:57 +05:30
50523e22d8 etcd-runner: make run watcher fail safe 2016-10-20 00:23:35 +05:30
e95b571e7c Merge pull request #6684 from gyuho/build-with-strip
release: build binary without symbols for debug
2016-10-19 10:33:50 -07:00
0bd9179835 release: build binary without symbols for debug 2016-10-19 09:45:10 -07:00
28a29d9ecd Merge pull request #6676 from nekto0n/build_args
build: add option to enable binaries stripping
2016-10-19 09:33:22 -07:00
46d4ff823f Merge pull request #6678 from manishrjain/master
raft: Add dgraph to the list of users
2016-10-19 09:31:07 -07:00
401ef96ace Merge pull request #6682 from sinsharat/update_txn_interactive_cmd_output
etcdctlv3: update txn interactive command output
2016-10-19 09:26:40 -07:00
00837b0736 etcdctlv3: update txn interactive command output 2016-10-19 19:55:09 +05:30
cf93a74aa8 raft: Refactor vote handling
Move all vote handling from the per-state step functions to the
top-level Step(). This wasn't necessary before because MsgVote would
cause us to become a follower, but MsgPreVote needs to be handled
without changing the node's current state.
2016-10-19 19:35:21 +08:00
73cae7abd0 raft: Implement the PreVote RPC described in thesis section 9.6
This prevents disruption when a node that has been partitioned
away rejoins the cluster.

Fixes #6522
2016-10-19 19:35:20 +08:00
ca87a13b18 raft: More realistic terms in tests
Some tests were starting nodes with a non-empty log but a term of zero,
which cannot happen in the real world. This was affecting the final term
being tested in TestLeaderElection.
2016-10-19 19:35:20 +08:00
10cead3139 test: Ignore gopath.proto in test script 2016-10-19 19:35:20 +08:00
255670106f raft: Add dgraph to the list of users
Because Dgraph is a notable user of RAFT.
2016-10-19 17:26:51 +11:00
c6ebc13b43 build: build unstripped binaries by default 2016-10-19 11:15:38 +05:00
11c38fb1eb Merge pull request #6661 from manishrjain/startnode
Update README to explain starting a single node cluster and joining it.
2016-10-18 21:03:28 -07:00
e69c2fd382 raft: update README to explain starting a single node cluster and joining it
this PR helps clients of RAFT set up the cluster correctly, when they're
starting with a single node cluster.
2016-10-19 14:09:48 +11:00
c9b7fc46ff Merge pull request #6672 from gyuho/etcdctl-sort-by
*: sort by ASCEND on missing sort order
2016-10-18 17:07:38 -07:00
f550af7ef4 integration: test sort ASCEND by default in range 2016-10-18 16:50:30 -07:00
4de2128344 clientv3/integration: test missing sort order get 2016-10-18 16:29:22 -07:00
3a6d4b7f12 e2e: test sort ASCEND when sort target is missing 2016-10-18 16:29:22 -07:00
1cd6fefd49 etcdserver: set sort ASCEND for empty sort order
when target is not key
2016-10-18 16:29:19 -07:00
20bdb315f5 Merge pull request #6670 from fanminshi/lease_stressor
functional-tester: add lease stresser
2016-10-18 14:38:42 -07:00
ab2b58a80f functional-tester: add lease stresser
Add lease stresser to test lease code under stress and etcd failures

resolve #6380
2016-10-18 14:20:26 -07:00
ed75d93625 Merge pull request #6666 from fanminshi/function-tester-refractor
functional-tester: move checker logic to cluster
2016-10-18 11:44:37 -07:00
7d86d1050e functional-tester: move checker logic to cluster
I move the checker logic from tester to cluster so that stressers and checkers can be initialized at the same time.
this is useful because some checker depends on stressers.
2016-10-18 11:17:40 -07:00
5c60478953 Merge pull request #6656 from yudai/balancer_fast_fail
clientv3: make balancer respect FastFail
2016-10-17 15:04:04 -07:00
6a33f0ffd5 clientv3: make balancer respect FastFail
The simpleBalancer.Get() blocks grpc.Invoke() even when the Invoke() is called
with the FailFast option. Therefore currently any requests with the
FastFail option actually doesn't fail fast. They get blocked when there is
no endpoints available.
Get() method needs to respect the BlockingWait option when
picks up an endpoint address from the list and fail immediately when the option is
enabled and no endpoint is available.
2016-10-17 14:11:51 -07:00
24c284160b Merge pull request #6635 from sinsharat/etcd_runner_add_watcher_runner
etcd-runner:added watch runner
2016-10-17 11:02:06 -07:00
8297322176 etcd-runner:added watch runner 2016-10-17 23:04:33 +05:30
7022d2d00c Merge pull request #6660 from gyuho/delete-all-keys
etcdctl/ctlv3: support del all keys with '--prefix'
2016-10-17 09:57:19 -07:00
75a65e1a70 e2e: add test cases for del all keys 2016-10-17 09:34:21 -07:00
fac20b228d ctlv3: support del all keys by '--prefix' 2016-10-17 09:33:59 -07:00
5457c029d7 Merge pull request #6640 from mitake/bcrypt-async
auth, etcdserver: check password at API layer
2016-10-17 09:24:34 -07:00
39e9b1f75a auth, etcdserver: check password at API layer
The cost of bcrypt password checking is quite high (almost 100ms on a
modern machine) so executing it in apply loop will be
problematic. This commit exclude the checking mechanism to the API
layer. The password checking is validated with the OCC like way
similar to the auth of serializable get.

This commit also removes a unit test of Authenticate RPC from
auth/store_test.go. It is because the RPC now accepts an auth request
unconditionally and delegates the checking functionality to
authStore.CheckPassword() (so a unit test for CheckPassword() is
added). The combination of the two functionalities can be tested by
e2e (e.g. TestCtlV3AuthWriteKey).

Fixes https://github.com/coreos/etcd/issues/6530
2016-10-17 14:18:21 +09:00
cc96f91156 Merge pull request #6659 from kragniz/python-client
Add link to python-etcd3
2016-10-16 15:20:37 -07:00
1e29715185 Documentation: add link to python-etcd3 2016-10-16 20:55:53 +01:00
e1547a775b Merge pull request #6646 from MartyMacGyver/windows_build_cleanup
build: Windows build cleanup
2016-10-14 18:57:36 -07:00
698a789644 Merge pull request #6655 from kragniz/range_end-docs
etcdserver: document DeleteRangeRequest prefixes
2016-10-14 15:00:24 -07:00
f2b953d4f7 version: bump up to v3.1.0-rc.0+git 2016-10-14 14:53:13 -07:00
8334790777 Merge pull request #6657 from gyuho/build
*: fix build script, bump up version
2016-10-14 14:40:17 -07:00
a81997ac3f version: bump up to v3.1.0-rc.0 2016-10-14 14:21:32 -07:00
06fd31cde9 build: get GitSHA first 2016-10-14 14:21:20 -07:00
4c444df7a6 Revert "version: bump to v3.1.0-rc.0"
This reverts commit cb178a78ea.
2016-10-14 14:20:33 -07:00
cb178a78ea version: bump to v3.1.0-rc.0 2016-10-14 14:06:21 -07:00
ce6276a2e8 etcdserver: document DeleteRangeRequest prefixes
There was missing info about deleting prefixes in the proto docs for
DeleteRangeRequest.

Closes #6641.
2016-10-14 21:39:03 +01:00
45588c1f9f Merge pull request #6650 from gyuho/flag
*: tests, README on environment variables in etcdctl v3
2016-10-14 12:15:27 -07:00
66f9e81c9a etcdctl: update README on environment variables 2016-10-14 11:58:59 -07:00
8081254498 e2e: add tests with environment vars for flags 2016-10-14 11:58:56 -07:00
a00ed609c3 pkg/flags: export 'FlagToEnv' for e2e tests 2016-10-14 11:15:28 -07:00
522be31192 acbuild: add symlinks to /usr/local/bin/etcd*
And uses latest acbuild (v0.4.0, --to-dir flag is deprecated).

For https://github.com/coreos/etcd/issues/6057.
2016-10-14 10:35:26 -07:00
77d6ecbc5f Merge pull request #6649 from fanminshi/discovery_max_wait
discovery: add upper limit for waiting on a retry
2016-10-14 09:46:08 -07:00
84508697ce Merge pull request #6639 from mitake/functional-tester-external
functional-tester: a new option -failure-wrapper for enabling/disabli…
2016-10-14 07:56:26 -07:00
296427fc78 build: Windows build cleanup
Remove spurious warnings and prompts
Make normal output quieter
Add filesys check (warn and exit on FAT* systems)

Fixes #5866
2016-10-14 02:07:53 -07:00
d1660b5ba3 Merge pull request #6619 from mitake/health-key
etcdctl, e2e: add --check-key option to endpoint health
2016-10-13 20:27:37 -07:00
eb9a01258e discovery: add upper limit for waiting on a retry
Adding upper limit ensures that expoential backoff doesn't reach more than 5 min on a re-try.

FIX #6648
2016-10-13 20:14:41 -07:00
d585b43abe etcdctl, e2e: add --check-key option to endpoint health
This commit adds a new option --check-key to endpoint health command
for health checking with a custom key. It is mainly for avoiding
permission problem.
2016-10-14 11:39:46 +09:00
b2b03d9926 functional-tester: a new option -failure-wrapper for enabling/disabling external fault injector
This commit adds a new option -failure-wrapper to etcd-tester. The
option receives a path of script that is used for enabling/disabling
external fault injectors. The script is called with an option "enable"
when it needs to be enabled (when failure.Inject() is called) and
called with "disabled" in an opposite case (when failure.Recover() is
called).
2016-10-14 11:31:28 +09:00
052e314372 build: Windows build cleanup
Remove spurious warnings and prompts; make output more informative

Fixes #5866
2016-10-13 13:05:24 -07:00
57008f1690 Merge pull request #6644 from kragniz/increase-warn-duration
etcdserver: increase warnApplyDuration from 10ms to 100ms
2016-10-13 10:58:58 -07:00
9df97eb441 etcdserver: increase warnApplyDuration from 10ms to 100ms
When running test suites for a client locally I'm getting spammed by log
lines such as:

    etcdserver: apply entries took too long [14.226771ms for 1 entries]

The comments in #6278 mention there were future plans of increasing the
threshold for logging these warnings, but it hadn't been done yet.
2016-10-13 17:55:50 +01:00
354891f75d Merge pull request #6634 from gyuho/manual
integration: add TestV3WatchWithPrevKV
2016-10-12 16:42:42 -07:00
c3948284a0 integration: add TestV3WatchWithPrevKV 2016-10-12 16:21:52 -07:00
614adb0230 Merge pull request #6628 from gyuho/fix-waitgroup
etcdserver: make WaitGroup.Add sync with Wait
2016-10-12 14:10:54 -07:00
546873f27e Merge pull request #6632 from heyitsanthony/grpc-naming
clientv3/naming: support resolving to multiple hosts
2016-10-12 13:18:36 -07:00
0c61d8804a etcdserver: make WaitGroup.Add sync with Wait 2016-10-12 13:11:35 -07:00
a97866b629 Merge pull request #6633 from xiang90/fix_rev_inconsistency
mvcc: fix rev inconsistency
2016-10-12 13:04:15 -07:00
3dbd30fcaa Documentation: add grpc naming resolver doc 2016-10-12 11:56:14 -07:00
7d50dc06a2 clientv3/naming: support resolving to multiple hosts
Previous implementation watches a single key so there's no way
to have separate hosts associate with separate keys for a single
grpc target. Instead, accept all keys on a prefix.

Also fixes first the Next() to read current name data from etcd instead
of waiting for the next event on a synced watcher.
2016-10-12 11:27:22 -07:00
93225ebafc mvcc: fix rev inconsistency
Try:

./etcdctl put foo bar
./etcdctl del foo
./etcdctl compact 3

restart etcd

./etcdctl get foo
mvcc: required revision has been compacted

The error is unexpected when range over the head revision.

Internally, we incorrectly set current revision smaller than the
compacted revision when we remove all keys around compacted revision.

This commit fixes the issue by recovering the current revision at least
to compacted revision.
2016-10-12 10:42:57 -07:00
cb9c77c4ba Merge pull request #6620 from nekto0n/put_update_optimize
Optimize updating key by storing lease in lessor
2016-10-12 09:47:11 -07:00
064e02f4b3 mvcc: Optimize updating key by storing lease in lessor 2016-10-12 09:37:09 +05:00
66f945c4bf Merge pull request #6629 from gyuho/clientv3-logger
clientv3: drop Config.Logger field
2016-10-11 17:01:13 -07:00
084c407a8d clientv3: drop Config.Logger field
Fix https://github.com/coreos/etcd/issues/6603.

Instead adds 'SetLogger' to set global logger interface
to avoid unnecessary logger updates.
2016-10-11 16:38:32 -07:00
e9f3101c49 Merge pull request #6625 from xiang90/grpc_proxy_doc
doc: add grpc proxy doc
2016-10-11 16:06:05 -07:00
17a6025ac8 doc: add grpc proxy doc 2016-10-11 15:15:45 -07:00
4c1a738caf Merge pull request #6627 from xiang90/apply_log
etcdserver: better panic logging
2016-10-11 14:44:46 -07:00
dbaa44372b etcdserver: better panic logging 2016-10-11 13:34:18 -07:00
c10dad41a3 Merge pull request #6604 from sinsharat/support_debug_build_using_delve_gdb
build: Added support for debugging using delve, gdb, etc
2016-10-11 13:03:35 -07:00
9ac2c8072a build: Added support for debugging using delve, gdb, etc 2016-10-12 01:00:15 +05:30
a7247b3c7e Merge pull request #6618 from heyitsanthony/fix-e2e-err-leak
e2e: close process if spawnWithExpects fails
2016-10-11 11:30:28 -07:00
2448f6a003 e2e: close process if spawnWithExpects fails
Was causing a process leak in TestCtlV3Alarm
2016-10-10 15:52:37 -07:00
d7f69d0f92 Merge pull request #6617 from gyuho/vendor-update
vendor: update glide and grpc-go
2016-10-10 14:48:17 -07:00
4a07bbec59 clientv3: implement new grpc.Balancer interface 2016-10-10 11:18:29 -07:00
e3558a64cf vendor: update grpc-go v1.0.2 tag
Fix https://github.com/coreos/etcd/issues/6529.
2016-10-10 11:18:01 -07:00
69ea359e62 vendor: update glide.yaml with grpc-go v1.0.2 tag 2016-10-10 11:17:47 -07:00
b9f3ef09e1 vendor: clean up dependencies (remove unused ones) 2016-10-10 11:17:27 -07:00
def1a3b77f script/updatedep: update glide, glide-vc version 2016-10-10 11:11:58 -07:00
3a6fe61c03 Merge pull request #6610 from heyitsanthony/bench-lease
benchmark: submit keepalive requests concurrently with report.Run()
2016-10-10 09:53:08 -07:00
fd60205e95 Merge pull request #6616 from bdarnell/genproto-gopath
scripts: Don't erase gopath.proto after genproto.sh
2016-10-10 09:19:49 -07:00
ef4e3ef55a scripts: Don't erase gopath.proto after genproto.sh
Wiping gopath.proto after a successful run does nothing but slow down
the next run unnecessarily as it downloads everything again.
2016-10-10 11:33:43 +08:00
602fd6a67e Merge pull request #6613 from mitake/ep-health
etcdctl: parse auth related options in endpoint health command
2016-10-09 06:58:06 -07:00
644ec0ddef etcdctl, e2e: parse auth related options in endpoint health command
Partially fixes https://github.com/coreos/etcd/issues/6611
2016-10-09 20:34:09 +09:00
c1d115b322 benchmark: submit keepalive requests concurrently with report.Run()
Otherwise report won't consume the results and the benchmark hangs.
2016-10-07 15:57:38 -07:00
ac4d39cfb0 Merge pull request #6583 from sinsharat/windows_etcd3.0.1_etcdctlv2api_issue_fix
etcdctlv2: windows compatibility issue fix for etcd v3.0.1
2016-10-07 13:58:57 -07:00
3f60ee0d27 Merge pull request #6590 from gyuho/etcdserver
etcdserver: separate EtcdServer from raftNode
2016-10-07 13:39:37 -07:00
e011ea25ca etcdserver: separate EtcdServer from raftNode 2016-10-07 13:18:39 -07:00
e1e16d9b28 Merge pull request #6608 from gyuho/news
NEWS: add 'prev-kv' feature for upcoming v3.0.11
2016-10-07 12:43:17 -07:00
ab2a20402e NEWS: add 'prev-kv' feature for upcoming v3.0.11 2016-10-07 11:22:02 -07:00
71f8f3ceb6 Merge pull request #6607 from glevand/for-merge-typo
Documentation: Minor typo fix
2016-10-07 10:31:38 -07:00
f1437a8932 Documentation: Minor typo fix
Signed-off-by: Geoff Levand <geoff@infradead.org>
2016-10-07 10:17:43 -07:00
75f812eaa3 etcdctlv2: windows compatibility issue fix for etcd v3.0.1 2016-10-07 22:15:30 +05:30
4e4140040a Merge pull request #6602 from nekto0n/watchable_store_bench
mvcc: add BenchmarkWatchableStoreTxnPut benchmark
2016-10-07 09:13:44 -07:00
e2bd6f2213 Merge pull request #6601 from nekto0n/interval_tree_fast_stab
adt: fast path Stab in empty interval tree
2016-10-07 09:13:23 -07:00
f3cdfcdcf4 Merge pull request #6486 from glevand/for-merge-arm64
Get tests working on ARM64
2016-10-06 17:53:10 -07:00
686282393d Merge pull request #6600 from heyitsanthony/report
benchmark: split out report and add --precise option
2016-10-06 17:14:08 -07:00
e7d8292cd1 benchmark: add --precise flag
Usually benchmark writes with %4.4f; this adds optional %g formatting.
2016-10-06 16:18:47 -07:00
3d28faa3eb pkg/report, tools/benchmark: refactor report out of tools/benchmark
Only tracks time series when requested. Can configure output precision.
2016-10-06 16:18:47 -07:00
ea9e857eb9 Merge pull request #6599 from fanminshi/lease_error_type_fix
Lease: Add lease errors to togRPCError()
2016-10-06 15:47:51 -07:00
cbbd1f0f44 Merge pull request #6598 from xiang90/cleanup
v3rpc: return nil as error explicitly
2016-10-06 15:30:04 -07:00
a862fd9f0f Lease: Add lease errors to togRPCError()
This allows lease's function to convert lease error to appropriate GRPC errors
2016-10-06 14:29:31 -07:00
10cafe56b8 v3rpc: return nil as error explicitly 2016-10-06 14:14:43 -07:00
4a5fa261c6 Merge pull request #6596 from gyuho/protect-TTL
lease: add TTL() method
2016-10-06 11:41:51 -07:00
65ac718a11 etcdserver: use 'TTL()' on lease.Lease 2016-10-06 11:24:12 -07:00
5adca4a720 lease, leasehttp: add TTL() method
Fix https://github.com/coreos/etcd/issues/6595.
2016-10-06 11:24:09 -07:00
9970ded79f mvcc: add BenchmarkWatchableStoreTxnPut benchmark 2016-10-06 22:44:25 +05:00
eae70c9379 adt: fast path Stab in empty interval tree 2016-10-06 22:41:33 +05:00
b8079b7fc0 Merge pull request #6594 from heyitsanthony/e2e-etcdctl-timeout
e2e: print correct timeout for etcdctl tests
2016-10-06 10:40:46 -07:00
fa1e28102e Merge pull request #5316 from ajityagaty/too_many_allocs
mvcc: Reduce number of allocs in PUT when watchableStore has no watchers.
2016-10-06 09:47:59 -07:00
e28706d9e2 e2e: print correct timeout for etcdctl tests 2016-10-06 09:18:41 -07:00
cc04d80b09 Merge pull request #6578 from glevand/for-merge-serial
test: Run integration pass in series
2016-10-05 19:28:15 -07:00
54c252ee63 clientv3/kv_test: Fix quota test
Updates TestKVPutError.  Change the quota to work with systems
that have a 64 KiB page size. Increase the db sync wait time to
one second.  Also, add some comments for the hard coded value.

Signed-off-by: Geoff Levand <geoff@infradead.org>
2016-10-05 16:41:06 -07:00
84d2ff93b0 integration/v3_grpc_test: Fix quota tests
Use the system page size to set the test quota size.  Also, change
a comment related to setting the node quota to be more clear.

Signed-off-by: Geoff Levand <geoff@infradead.org>
2016-10-05 16:41:06 -07:00
de8adc9e03 e2e/ctl_v3_alarm_test: Fix quota test
Rework the over quota test to be more a realistic test.  Take into
consideration that the system page size will be different across
platforms.

Signed-off-by: Geoff Levand <geoff@infradead.org>
2016-10-05 16:41:06 -07:00
8c60a532a6 e2e/ctl_v3_alarm_test: Use fixed small buf size
We just need a small chunk of data to test put, so to be
consistent across platforms use a fixed size of 64 bytes.

Signed-off-by: Geoff Levand <geoff@infradead.org>
2016-10-05 16:41:06 -07:00
beb194967e Documentation: Improve quota example
Signed-off-by: Geoff Levand <geoff@infradead.org>
2016-10-05 16:41:06 -07:00
bdbb32dfe8 Documentation: Set ETCDCTL_API for v3 features
Signed-off-by: Geoff Levand <geoff@infradead.org>
2016-10-05 16:41:06 -07:00
b65a2cec18 Documentation: Clearify Space quota section
Signed-off-by: Geoff Levand <geoff@infradead.org>
2016-10-05 16:41:06 -07:00
f0469f7f25 Merge pull request #6570 from xiang90/lease_expire
Fix lease expire
2016-10-05 15:49:45 -07:00
3cbc5285e0 test: Run integration pass in series
On slower or heavily loaded platforms running the integration pass in
parallel results in test timeout errors.

Rename the integration_pass function to integration_e2e_pass, and add two
new functions integration_pass and e2e_pass.

Signed-off-by: Geoff Levand <geoff@infradead.org>
2016-10-05 15:35:14 -07:00
0f0c048e29 etcdserver: fix early lessor promotion issue
If we promote the lessor before finish applying all
entries from the last term, we might incorrectly renew
the already revoked leases.

Here is an example:

- Term 1: revoke lease A accepted by raft
- Old leader failed, new election happened
- Term 2: promote
- Term 2: keep alive A succeed. A now has 10 seconds TTL
- Term 2: revoke lease A from Term 1 got committed and applied
- Term 2: the lease A with 10 seconds TTL is revoked

To solve this, the new leader MUST apply all entries from old term
before promote its lessor to start accept renew requests.
2016-10-05 14:41:47 -07:00
279c103517 lease: fix lease expire and add a test 2016-10-05 14:41:47 -07:00
7f0d5946ff Merge pull request #6589 from heyitsanthony/etcdctl-lock-one-session
etcdctl: remove superfluous session in lock command
2016-10-05 14:36:11 -07:00
b980ab0c67 Merge pull request #6582 from heyitsanthony/fix-cancel-close
clientv3: only return closing error to watcher if context is not canceled
2016-10-05 13:37:29 -07:00
f2af08f5aa etcdctl: remove superfluous session in lock command 2016-10-05 13:30:36 -07:00
f67f8d3b31 Merge pull request #6587 from heyitsanthony/watch-fix-revrace
clientv3: fix race on watch initial revision
2016-10-05 10:55:31 -07:00
d5cd563ce7 Merge pull request #6572 from glevand/for-merge-release_pass
Fixes for release_pass test
2016-10-05 09:42:16 -07:00
06d5cf2d52 clientv3: fix race on watch initial revision
The initial revision was being updated in the substream goroutine defer;
this was racing with the resume path fetching the initial revision when
the substream closes during resume. Instead, update the initial revision
whenever the substream processes a new watch response. Since the substream
cannot receive a watch response while it is resuming, the write to the
initial revision is ordered to always happen after the resume read.

Fixes #6586
2016-10-05 09:36:06 -07:00
e285f599e2 clientv3: only return closing error to watcher if context is not canceled
Fixes #6503
2016-10-04 16:09:50 -07:00
8e1c989ec3 integration: test a canceled watch won't return a closing error 2016-10-04 14:47:40 -07:00
98897b7603 Merge pull request #6580 from spoonben/fix-404-docs
docs: link directly to github procfile
2016-10-04 13:54:10 -07:00
25f1088edd test: Fixes for release_pass
Some fixes related to release_pass:

o Create the output directory ./bin if it does not exist.
o Define the GOARCH variable if it is not defined.
o Simplify the race detection test.
o Download the relese archive based on GOARCH.
o If the release file is not found, return success.  This will allow the tests
  to continue.

Signed-off-by: Geoff Levand <geoff@infradead.org>
2016-10-04 13:42:53 -07:00
9c5a32eb7a docs: link directly to github procfile
This is in response to https://github.com/coreos/docs/issues/822
Unfortunately because of how the doc sync works there has to be
a direct link here.
2016-10-04 13:42:17 -07:00
5269bbd277 Merge pull request #6513 from gyuho/manual
raft: refactor inflight
2016-10-04 13:31:43 -07:00
dc8bf26cd8 raft: refactor inflight 2016-10-04 13:12:16 -07:00
19122b463e Merge pull request #6525 from heyitsanthony/watcher-disconn
clientv3: simplify watcher synchronization
2016-10-04 11:21:12 -07:00
02f557068e Merge pull request #6576 from xiang90/fix_doc
doc: build should work for non-github users
2016-10-04 10:32:37 -07:00
904e5090fd doc: build should work for non-github users 2016-10-04 10:26:51 -07:00
5b50658118 clientv3: simplify watch synchronization
Was more complicated than it needed to be and didn't really work in the
first place. Restructured watcher registation to use a queue.
2016-10-03 16:56:14 -07:00
9ce398f8a6 integration: test canceling watchers when disconnected 2016-10-03 16:56:14 -07:00
33e4f2ea28 Merge pull request #6563 from gyuho/gen-proto
scripts/genproto: use 'gopath.proto' for $GOPATH
2016-10-03 15:54:38 -07:00
9b56e51ca7 *: regenerate proto + gofmt change 2016-10-03 15:34:34 -07:00
8174fcf201 scripts/genproto: use 'gopath.proto' for $GOPATH 2016-10-03 15:34:31 -07:00
dfe85b26cc Merge pull request #6571 from xiang90/log_pkg
*: set repo correctly for logging
2016-10-03 15:49:44 -05:00
b7f02a8c0a Merge pull request #6568 from gyuho/e2e
e2e: test 'https' scheme endpoints
2016-10-03 13:24:00 -07:00
29dd3cf5bd Revert "clientv3/integration: add TestDialWithHTTPS"
This reverts commit a96a28d603.
2016-10-03 13:05:08 -07:00
0dc14d1771 e2e: test 'https' scheme endpoints 2016-10-03 13:04:58 -07:00
c26ebe3262 Merge pull request #6453 from vimalk78/wal-optimize-marshal-outside-lock
wal/wal.go: optimized WAL.SaveSnapshot to do Marshal outside the mutex lock
2016-10-03 11:50:11 -07:00
dd607b5eff Merge pull request #6560 from gyuho/scheme
clientv3: handle 'https' scheme in endpoint
2016-10-03 09:44:46 -07:00
a96a28d603 clientv3/integration: add TestDialWithHTTPS 2016-10-03 02:16:07 -07:00
962433c17f *: set repo correctly for logging 2016-10-03 17:03:22 +08:00
f45542394b clientv3: handle 'https' scheme in endpoint 2016-10-03 01:03:28 -07:00
02912fe8c4 Merge pull request #6564 from gyuho/nil-ref
e2e: skip when 'etcdProcess' is nil
2016-10-01 01:32:56 -07:00
5c51c600aa e2e: skip when 'etcdProcess' is nil 2016-10-01 00:45:28 -07:00
37bd0932f7 Merge pull request #6557 from heyitsanthony/fix-publish-retry
etcdserver: use stream recorder for TestPublishRetry
2016-09-30 18:40:18 -07:00
613525f711 Merge pull request #6559 from heyitsanthony/fix-lease-hash
lessor: delete keys in deterministic order on revoke
2016-09-30 17:23:00 -07:00
4f9be94643 lessor: delete keys in deterministic order on revoke
Fixes #6558
2016-09-30 16:45:52 -07:00
289e3c0c63 etcdserver: use stream recorder for TestPublishRetry
Fixes #6546
2016-09-30 15:43:32 -07:00
7225c77a3b Merge pull request #6556 from gyuho/simplify
lease: remove redundant lookup methods
2016-09-30 11:19:14 -07:00
4871a4a5f3 lease: remove redundant get method 2016-09-30 10:27:27 -07:00
c349e089b1 Merge pull request #6550 from heyitsanthony/watch-prog-notify
clientv3: make IsProgressNotify() false on compact event and closed channel
2016-09-29 11:12:25 -07:00
6ac284a577 grpcproxy: use valid progress notification in broadcast test 2016-09-29 10:45:25 -07:00
dac6e700f8 Merge pull request #6519 from mitake/functional-tester
functional-tester: decoupling functionalities of etcd-tester
2016-09-29 10:07:47 -07:00
868617ef86 Merge pull request #6548 from gyuho/get-config-embed
embed: add 'Config' method
2016-09-29 09:14:32 -05:00
b8017004ba embed: add 'Config' method 2016-09-29 07:10:59 -07:00
a781f4ebda Merge pull request #6551 from xiang90/fix_log_repo
pkg: use etcd as logging repo
2016-09-29 02:46:57 -05:00
9473e9c30e pkg: use etcd as logging repo 2016-09-29 15:29:38 +08:00
d80c13555a Merge pull request #6543 from xiang90/improve_txn
etcdserver: use linearizableReadNotify for txn
2016-09-28 19:54:30 -05:00
bf2581390d clientv3: make IsProgressNotify() false on compact event and closed channel
Fixes #6549
2016-09-28 16:49:39 -07:00
0ca0260c89 Merge pull request #6531 from sinsharat/glossary_update
Documentation/learning: Glossary update
2016-09-28 11:39:02 -07:00
2353cbca71 Merge pull request #6544 from gyuho/page-offset
wal, ioutil: set page offset for encoder
2016-09-28 11:37:24 -07:00
f5588526cc wal: set PageWriter offset in file encoder 2016-09-28 11:03:24 -07:00
d0c29cc610 pkg/ioutil: configure pageOffset in NewPageWriter 2016-09-28 09:45:54 -07:00
0b8b40ccca Merge pull request #6545 from gyuho/grammar
wal: fix minor wording in comment
2016-09-28 09:34:43 -07:00
231530e0c5 wal: fix minor wording in comment 2016-09-28 09:12:31 -07:00
ea0c65797a etcdserver: use linearizableReadNotify for txn 2016-09-28 20:47:49 +08:00
6c2414ebd1 Documentation/learning: Glossary update 2016-09-28 11:18:47 +05:30
f4ec303d1b wal/wal.go: modified WAL.SaveSnapshot to do the Marshal before aquiring the mutex 2016-09-28 10:35:19 +05:30
1e1dd24d05 Merge pull request #6536 from sinsharat/etcdctlv3_readme_update
etcdctlv3: minor updates to put and make-mirror command
2016-09-27 23:58:42 -05:00
dcfbcb7a68 etcdctlv3: minor updates to put and make-mirror command 2016-09-28 10:20:08 +05:30
3807faeddf Merge pull request #6541 from hhkbp2/improve-test-coverage
raft: add test cases to improve test coverage
2016-09-27 23:24:52 -05:00
eee23eaf43 Merge pull request #6540 from fanminshi/lease_panic_fix
etcdserver: fix a node panic bug caused LeaseTimeToLive call on a nonexistent lease
2016-09-27 23:17:16 -05:00
7d48855630 functional-tester: decouple failures from tester
This commit adds a new option --failures to etcd-tester. The option
receives a comma-delimited argument like this:
"default,failpoints". The given arguments are interpreted as names of
failures and they are injected to an etcd cluster. Available failures
are default (default scenario in etcd-tester) and failpoints. If no
args are passed to the option (--failures=""), no failures are
injected during testing.
2016-09-28 11:30:53 +09:00
a6eb2939b1 raft: add test cases to improve test coverage 2016-09-28 10:19:30 +08:00
8ef6687018 etcdserver: fix a node panic bug caused LeaseTimeToLive call on a nonexistent lease
When the non Leader etcd server receives a LeaseTimeToLive on a nonexistent lease, it responds with a nil resp and a nil error The invoking function parses the nil resp and results a segmentation fault.
I fix the bug by making sure the lease not found error is returned so that the invoking function parses the the error message instead.

fix #6537
2016-09-27 17:46:30 -07:00
e68cd086ee Merge pull request #6532 from heyitsanthony/no-gopath-build
build: support building out of path when GOPATH is not set
2016-09-27 13:25:04 -07:00
1e3a71d098 build: support building out of path when GOPATH is not set
Otherwise gets "go: GOPATH entry is relative; must be absolute path: ""."
2016-09-27 10:20:52 -07:00
150576fa72 Merge pull request #6212 from xiang90/readindex
etcdserver: initial read index implementation
2016-09-27 11:51:08 -05:00
e5f4fb1a79 Merge pull request #6527 from sinsharat/intracting_v3
etcdctlv3: interactive_v3 compaction and timetolive command update
2016-09-27 06:14:18 -05:00
ab20187f93 etcdctlv3: interactive_v3 compaction and timetolive command update 2016-09-27 16:19:55 +05:30
6167a2aaa7 Merge pull request #6524 from sinsharat/intracting_v3
etcdctlv3: interactive_v3 watch command update
2016-09-27 01:35:04 -05:00
e3e3993022 etcdserver: support read index
Use read index to achieve l-read.
2016-09-27 13:41:40 +08:00
7d9355ffba Merge pull request #6523 from vimalk78/correct-compactor-logger-package
compactor/compactor.go : corrected the capnslog package name
2016-09-26 14:21:24 -07:00
cd1306f866 etcdctlv3: interactive_v3 watch command update 2016-09-27 00:00:05 +05:30
e1550bae61 compactor/compactor.go: corrected the capnslog package name 2016-09-26 23:52:48 +05:30
e1efdd591e Merge pull request #6521 from sinsharat/intracting_v3
etcdctlv3: interactive_v3 del command update
2016-09-26 10:48:09 -05:00
83f2fa7adc etcdctlv3: interactive_v3 del command update 2016-09-26 19:56:20 +05:30
e2d51961dd Merge pull request #6520 from sinsharat/intracting_v3
etcdctlv3: interactive_v3 get command update
2016-09-26 07:20:44 -05:00
213e8a5b15 Merge pull request #6514 from gyuho/sort
test: grep versions with --sort
2016-09-26 06:31:05 -05:00
595743651b etcdctlv3: interactive_v3 get command update 2016-09-26 16:28:29 +05:30
06546cf100 Merge pull request #6517 from sinsharat/intracting_v3
etcdctlv3: interactive_v3 version and put command update
2016-09-26 03:53:13 -05:00
7a95831018 etcdctlv3: interactive_v3 version and put command update 2016-09-26 12:32:08 +05:30
cf83de6488 Merge pull request #6510 from sinsharat/etcdctlv3_readme_final_draft
etcdctlv3:corrected and organised etcdctl commands
2016-09-25 19:19:06 -05:00
f5b9238a3c Merge pull request #6516 from gyuho/vvv
vendor: remove unused code
2016-09-23 18:54:05 -07:00
f957c401d3 vendor: remove unused code 2016-09-23 16:57:28 -07:00
20211ed6bf test: grep versions with --sort 2016-09-23 15:49:20 -07:00
cf09562e40 Merge pull request #6512 from gyuho/dep
vendor: update 'google/btree'
2016-09-23 13:21:52 -07:00
ecb577d40c vendor: update 'google/btree' 2016-09-23 12:54:25 -07:00
15d268709e version: bump to v3.1.0-alpha.1+git 2016-09-23 11:32:39 -07:00
2469a95685 version: bump to v3.1.0-alpha.1 2016-09-23 11:19:22 -07:00
4ef44d1130 Merge pull request #6506 from mitake/decouple-stresser
functional-tester: decouple stresser from tester
2016-09-23 10:05:03 -07:00
044e5cf3a9 Merge pull request #6498 from ychen11/ychen11/etcdserverpb
Added more lines of comments into rpc.proto
2016-09-23 10:04:24 -07:00
0e493c11c2 functional-tester: decouple stresser from tester
This commit decouples stresser from the tester of
functional-tester. For doing it, this commit adds a new option
--stresser to etcd-tester. The option accepts two types of stresser:
"default" and "nop". If the option is "default", etcd-tester stresses
its etcd cluster with the existing stresser. If the option is "nop",
etcd-tester does nothing for stressing.

Partially fixes https://github.com/coreos/etcd/issues/6446
2016-09-24 01:04:57 +09:00
69f5b4ba79 Documentation:made watch request doc more clear 2016-09-23 23:13:55 +08:00
af8728f328 etcdctlv3:corrected and organised etcdctl commands 2016-09-23 18:21:54 +05:30
51aa220449 Merge pull request #6507 from sinsharat/readme_del_cmd_options_example_update
etcdctlv3 : added options and examples for del from-key
2016-09-22 17:08:50 -05:00
308038e96a etcdctlv3 : added options and examples for del from-key 2016-09-22 22:54:20 +05:30
b1e4defc48 Merge pull request #6501 from sinsharat/feature_add_del_from-key
etcdctlv3: del command from-key feature added
2016-09-22 09:15:04 -05:00
804e215981 Merge pull request #6505 from sinsharat/compaction_options_update
etcdctlv3: updated compaction options
2016-09-22 06:52:43 -07:00
5fa233a564 etcdctlv3: updated compaction options 2016-09-22 19:06:05 +05:30
35ff70656b etcdctlv3: del command from-key feature added 2016-09-22 16:55:36 +05:30
ea97aa3f0f Merge pull request #6504 from sinsharat/member_command_options_update
etcdctlv3: updated member command options
2016-09-22 03:47:49 -07:00
1601ee761a etcdctlv3: updated member command options 2016-09-22 15:04:54 +05:30
4de39d3683 Merge pull request #6502 from xiang90/etcdctl_mirror
etcdctl: remove the use of remprefix
2016-09-22 01:05:55 -05:00
30b26f8f50 etcdctl: remove the use of remprefix 2016-09-22 08:43:31 +08:00
3453ce55e3 Merge pull request #6496 from sinsharat/refactor_mirror_command_tests
e2e: refactored ctlv3_make_mirror_test
2016-09-21 19:33:42 -05:00
4ec0fce109 Merge pull request #6493 from gyuho/tester-build
functional-tester: build from repo root, vendor
2016-09-21 16:57:34 -07:00
27c500d8d0 Merge pull request #6487 from heyitsanthony/watch-stress
clientv3: process closed watcherStreams in watcherGrpcStream run loop
2016-09-21 13:55:25 -07:00
3f7f6fb557 Merge pull request #6500 from sinsharat/readme_del_option_update
etcdctlv3: updated del command options
2016-09-21 13:54:18 -07:00
a32518006c clientv3: process closed watcherStreams in watcherGrpcStream run loop
Was racing with Watch() when closing the grpc stream on no watchers.

Fixes #6476
2016-09-21 13:28:00 -07:00
bcda9af15d etcdctlv3: updated del command options 2016-09-22 00:16:53 +05:30
d743b8b866 Merge pull request #6474 from gyuho/auto-sync
clientv3: add 'Sync' method
2016-09-21 10:57:10 -07:00
deef16b376 integration: test client watchers with overlapped context cancels 2016-09-21 09:40:24 -07:00
592538986d e2e: refactored ctlv3_make_mirror_test 2016-09-21 22:07:03 +05:30
cdb1e34799 clientv3: add 'Sync' method 2016-09-21 09:10:25 -07:00
c016325647 Merge pull request #6495 from vimalk78/wal-improve-coverage-add-testcase-save-with-cut
wal/wal.go : improved coverage by testing WAL.Save which causes a WAL…
2016-09-21 11:04:21 -05:00
4426e282d6 Merge pull request #6497 from gyuho/raft-example
raftexample: remove snapshot TODO in README
2016-09-21 08:44:04 -07:00
3492753edf e2e: refactored ctlv3_make_mirror_test 2016-09-21 20:01:24 +05:30
113b27229b raftexample: remove snapshot TODO in README 2016-09-21 05:07:04 -07:00
13e7172b4b Merge pull request #6244 from gyuho/raft-example
raftexample: implement Raft snapshot
2016-09-21 04:55:29 -07:00
e4fbf7db00 raftexample: implement Raft snapshot 2016-09-21 04:23:05 -07:00
4b83f40618 raftexample: add index fields to filter entries 2016-09-21 04:23:05 -07:00
666d555450 raftexample: add snapshotter, handle Ready in raft 2016-09-21 04:23:05 -07:00
15fa8dd866 raftexample: add snapshot methods to kvstore 2016-09-21 04:23:01 -07:00
064411b51c wal/wal.go : improved coverage by testing WAL.Save which causes a WAL.cut to happen 2016-09-21 16:50:55 +05:30
d3906e75bf Merge pull request #6494 from sinsharat/update_snapshot_restore_options
etcdctlv3: updated snapshot restore options
2016-09-21 05:50:34 -05:00
05175480b3 etcdctlv3: updated snapshot restore options 2016-09-21 16:17:32 +05:30
0604fccfea Merge pull request #6492 from sinsharat/make-mirror_no_dest_test
etcdctlv3: test case: make-mirror no dest prefix
2016-09-21 03:12:01 -07:00
cff06ef64d Merge pull request #6491 from gyuho/functional
functional-tester: use different ports in Procfile
2016-09-21 02:54:54 -07:00
409fc439d1 etcdctlv3: test case: make-mirror no dest prefix 2016-09-21 15:12:36 +05:30
b2c4992a82 functional-tester: use different ports in Procfile 2016-09-21 02:39:45 -07:00
e8adc24c32 functional-tester: build from repo root, vendor 2016-09-21 02:06:13 -07:00
d6a3ce17d5 Merge pull request #6472 from sinsharat/make-mirror_modify_dest_test
etcdctlv3: test case: make-mirror modify dest prefix
2016-09-21 00:43:56 -07:00
e5ff5d92e6 etcdctlv3: test case: make-mirror modify dest prefix 2016-09-21 05:40:52 +05:30
b91d8625c8 Merge pull request #6485 from sinsharat/readme_get_features_update
ctlv3: updated readme for options and examples for get command
2016-09-21 07:26:46 +08:00
9743ee8b83 etcdctlv3: updated readme for options and examples for get command 2016-09-21 04:51:13 +05:30
095cff4415 Merge pull request #6478 from heyitsanthony/untangle-check
etcd-tester: split out consistency checking code from tester
2016-09-20 10:56:17 -07:00
d4eff5381c etcd-tester: split out consistency checking code from tester 2016-09-20 10:26:58 -07:00
3da8c6512b Merge pull request #6481 from sinsharat/update_timetolive_options
etcdctlv3: updated options for TIMETOLIVE
2016-09-20 23:29:15 +08:00
3e67702d4b etcdctlv3: updated options for TIMETOLIVE 2016-09-20 16:40:58 +05:30
b586060812 Merge pull request #6475 from fanminshi/leaseparallel
etcdserver: parallelize expired leases process
2016-09-19 16:46:31 -07:00
690a0b6f00 etcdserver: parallelize expired leases process
When 1000 leases expired at the same time, etcd takes more than 5 seconds to clean them. This means that even after the leases have expired, keys associated with leases are still accessible. I increase the deletion throughput by parallelizing leases deletion process.
2016-09-19 16:17:49 -07:00
69c7ea0b4a Merge pull request #6473 from heyitsanthony/watchreconn-putretry
integration: l-read before Put in TestWatchReconnRequest
2016-09-19 14:52:26 -07:00
0fb2cab221 integration: l-read before Put in TestWatchReconnRequest
TestWatchReconnRequest occasionally triggers elections because it spins on
drop connections, eating up CPU. In case there's an election, submit an
l-read to wait for the cluster to settle down.

Fixes #6314
2016-09-19 14:14:32 -07:00
c9e06fa1ed Merge pull request #6330 from gyuho/balancer-sync
clientv3: add SetEndpoints method
2016-09-20 04:52:13 +09:00
d26cfdb7d1 Merge pull request #6425 from heyitsanthony/etcdserver-wg
etcdserver: tighten up goroutine management
2016-09-19 12:51:16 -07:00
f11b35eb71 clientv3/integration: test 'SetEndpoints' 2016-09-20 04:36:14 +09:00
b9d18d4ac9 clientv3: add 'SetEndpoints' method 2016-09-20 04:36:01 +09:00
3866e78c26 etcdserver: tighten up goroutine management
All outstanding goroutines now go into the etcdserver waitgroup. goroutines are
shutdown with a "stopping" channel which is closed when the run() goroutine
shutsdown. The done channel will only close once the waitgroup is totally cleared.
2016-09-19 12:10:41 -07:00
a70513621c Merge pull request #6470 from xiang90/fix_doc
doc: use 2379 as port of the first member in local cluster
2016-09-19 08:34:11 -05:00
328c42f1b7 doc: use 2379 as port of the first member in local cluster 2016-09-19 21:28:33 +08:00
2dc06787ae Merge pull request #6467 from coreos/revert-6465-tls-copy
Revert "pkg/transport: update tls.Config copy method"
2016-09-19 16:02:41 +09:00
629d9e7dab Revert "pkg/transport: update tls.Config copy method" 2016-09-19 15:07:12 +09:00
db9ed233dc Merge pull request #6465 from gyuho/tls-copy
pkg/transport: update tls.Config copy method
2016-09-19 00:46:08 +09:00
8c9a88c7d4 pkg/transport: update tls.Config copy method
For Go 1.7
2016-09-18 22:50:45 +09:00
33dbf5c6bd Merge pull request #6463 from xiang90/fix_http
embed: fix go 1.7 http issue
2016-09-18 08:44:04 -05:00
7a48ca4cea embed: fix go 1.7 http issue
go 1.7 introduces HTTP2 compability issue. Now we
need to explicitly enable HTTP2 when TLS is set.
2016-09-18 18:38:55 +08:00
ac2077559d Merge pull request #6461 from gyuho/travis
travis: test with Go 1.7.1
2016-09-17 22:10:09 +09:00
63d6a4e0e1 travis: test with Go 1.7.1 2016-09-17 20:57:28 +09:00
4a7c1da9b3 Merge pull request #6460 from sinsharat/readme_update
etcdctlv3: updated readme for make-mirror: modify/remove prefix in dest cluster
2016-09-17 19:57:15 +09:00
6c408eb779 etcdctlv3:updated readme.md for make-mirror modify/remove prefix in dest cluster 2016-09-17 16:13:01 +05:30
86aeeca644 Merge pull request #6454 from sinsharat/windows_save_snapshot_fix
ctlv3: close snapshot file before rename (Windows)
2016-09-16 18:09:59 -05:00
0d65061a2d Merge pull request #6439 from sinsharat/make_mirror_feature_add
etcdctl/ctlv3: make-mirror: feature add to modify/remove prefix in dest cluster
2016-09-16 18:07:20 -05:00
01a0db0fce Merge pull request #6456 from heyitsanthony/version-bump-git
version: bump to 3.1.0-alpha.0+git
2016-09-16 15:12:30 -07:00
0a8bf60a9d version: bump to 3.1.0-alpha.0+git 2016-09-16 09:56:29 -07:00
fef6557f6c ctlv3: close snapshot file before rename (Windows) 2016-09-16 21:55:04 +05:30
b571f4d627 etcdctl/ctlv3: feature added to modify/remove prefix in the destination cluster 2016-09-16 18:48:41 +05:30
5c2053109b Merge pull request #6449 from gyuho/supported-stream
rafthttp: add v3.x to supported streams
2016-09-16 21:47:20 +09:00
8827619f5b rafthttp: add v3.x to supported streams 2016-09-16 20:49:00 +09:00
143e2f27fc Merge pull request #6447 from xiang90/cap
api: update capability map
2016-09-16 02:35:26 -05:00
d6904ce415 Merge pull request #6441 from petermattis/pmattis/tick-quiesced
raft: add RawNode.TickQuiesced
2016-09-16 01:48:21 -05:00
c6feb695dc api: update capability map 2016-09-16 14:34:55 +08:00
37fa6ac45c raft: add RawNode.TickQuiesced
TickQuiesced allows the caller to support "quiesced" Raft groups which
do not perform periodic heartbeats and elections. This is useful in a
system with thousands of Raft groups where these periodic operations can
be overwhelming in an otherwise idle system.

It might seem possible to avoid advancing the logical clock at all in
such Raft groups, but doing so has an interaction with the CheckQuorum
functionality. If a follower is not quiesced while the leader is the
follower can call an election that will fail because the leader's lease
has not expired (electionElapsed < electionTimeout). The next time the
leader sends a heartbeat to this follower the follower will see that the
heartbeat is from a previous term and respond with a MsgAppResp. This in
turn will cause the leader to step down and become a follower even
though there isn't a leader in the group. By allowing the leader's
logical clock to advance via TickQuiesced, the leader won't reject the
election and there will be a smooth transfer of leadership to the
follower.
2016-09-15 21:05:18 -04:00
2724c3946e Merge pull request #6444 from heyitsanthony/version-bump-3.1
version: bump to 3.1.0-alpha.0
2016-09-15 15:24:59 -07:00
c658fa62c5 version: bump to 3.1.0-alpha.0 2016-09-15 15:13:51 -07:00
624eb609fa Merge pull request #6443 from gyuho/news
NEWS: add v3.0.8, v3.0.9
2016-09-16 07:09:42 +09:00
1b1e54a281 NEWS: add v3.0.8, v3.0.9 2016-09-16 07:05:31 +09:00
9913e0073c Merge pull request #6438 from gyuho/e2e-backends
e2e: rename 'backends' to 'processes'
2016-09-15 19:00:28 +09:00
7cd7b5d539 e2e: rename 'backends' to 'processes' 2016-09-15 18:30:08 +09:00
a12b317552 Merge pull request #6428 from gyuho/snapshot-test
e2e: test snapshot restore
2016-09-15 04:22:03 -05:00
bb337c87d0 e2e: test snapshot restore 2016-09-15 17:58:00 +09:00
fb760b4c53 Merge pull request #6403 from vimalk78/rafthttp-mertics-record-rw-failures
rafthttp/metrics.go:fixed TODO: record write/recv failures.
2016-09-15 02:46:20 -05:00
d814804fa1 Merge pull request #6437 from sinsharat/readme_update
etcdctl: readme.md display fix
2016-09-15 16:20:42 +09:00
cd3a7fb833 etcdctl: readme.md display fix 2016-09-15 12:23:56 +05:30
64e1a327ee rafthttp/metrics.go:fixed TODO: record write/recv failures. 2016-09-15 11:32:08 +05:30
b3a083d336 Merge pull request #6436 from LiamHaworth/bugfix/6433-support-for-charset-in-content-type-header
etcdserver, api, v2http, client: Added support for semicolons
2016-09-14 23:25:31 -05:00
5cfa9e2384 etcdserver, api, v2http, client: Added support for semicolons
Added support into the v2 API to fix an issue (6433) where if there is a semicolon
and fields after it the API would return an "invalid Content-type" message even
if the content type was actually correct
2016-09-15 13:54:22 +10:00
e77baa3dcb Merge pull request #6424 from heyitsanthony/v3api-createminmax
etcdserver: range queries with min/max create revision
2016-09-14 19:10:52 -07:00
059f419ac5 Merge pull request #6429 from xiang90/fix_balancer
clientv3: balancer panics when call up after close
2016-09-14 19:42:24 -05:00
82af0c4a7d ctlv3: remove superfluous session creation 2016-09-14 17:03:33 -07:00
9b1fe45853 concurrency: use create max revision for locks and elections 2016-09-14 17:03:33 -07:00
004a5f0dbc clientv3: balancer panics when call up after close
Fix the issue by adding a simple guard varable.
2016-09-15 07:43:42 +08:00
aa7a35798d integration: add tests for MinCreateRev and MaxCreateRev 2016-09-14 15:31:45 -07:00
5bd251a6fa clientv3: WithMinCreateRev, WithMaxCreateRev 2016-09-14 15:31:45 -07:00
c0981a90f7 etcdserver, etcdserverpb: range min_create_revision and max_create_revision 2016-09-14 15:31:45 -07:00
c74ac99871 Merge pull request #6423 from heyitsanthony/fix-rwmutex
recipes: fix rwmutex locking
2016-09-14 09:50:26 -07:00
3730802fef Merge pull request #6427 from mitake/prefix-print
etcdctl: improve printing of role get for prefix permission
2016-09-14 02:27:28 -05:00
8eac9fb93d Merge pull request #6401 from hhkbp2/add-read-index-for-raft-rawnode
raft: add read index for RawNode
2016-09-14 02:14:49 -05:00
4211c0b7af etcdctl, clientv3: improve printing of role get for prefix permission
This commit improves printing of role get command for prefix
permission. If a range permission corresponds to a prefix permission,
it is explicitly printed for a user. Below is an example of the new
printing:

$ ETCDCTL_API=3 bin/etcdctl --user root:p role get r1
Role r1
KV Read:
        [/dir/, /dir0) (prefix /dir/)
        [k1, k5)
KV Write:
        [/dir/, /dir0) (prefix /dir/)
        [k1, k5)
2016-09-14 16:10:32 +09:00
eeca614cd3 raft: add read index for RawNode 2016-09-14 14:43:46 +08:00
672472f85e Merge pull request #6414 from mitake/prefix-perm
etcdctl: an option for granting permission with key prefix
2016-09-13 23:29:40 -05:00
4e2b09a7ca etcdctl: an option for granting permission with key prefix
This commit adds a new option --prefix to "role grant-permission"
command. If the option is passed, the command interprets the key as a
prefix of range permission.

Example of usage:
$ ETCDCTL_API=3 bin/etcdctl --user root:p role grant-permission --prefix r1 readwrite /dir/
Role r1 updated
$ ETCDCTL_API=3 bin/etcdctl --user root:p role get r1
Role r1
KV Read:
        [/dir/, /dir0)
        [k1, k5)
KV Write:
        [/dir/, /dir0)
        [k1, k5)
$ ETCDCTL_API=3 bin/etcdctl --user u1:p put /dir/key val
OK
2016-09-14 12:54:14 +09:00
c350cd7679 Merge pull request #6417 from xiang90/fix_TestPipelineExceedMaximumServing
rafthttp: fix TestPipelineExceedMaximumServing
2016-09-13 17:59:43 -05:00
9b91e96510 integration: fix rwmutex test to check write locking 2016-09-13 14:09:59 -07:00
9f829fdab7 recipes: fix rwmutex so locking works
Fixes #6408
2016-09-13 14:09:59 -07:00
c6bfdb909b Merge pull request #6412 from heyitsanthony/revert-domain-listener
embed: warn on domain name in listener
2016-09-13 10:25:18 -07:00
afef9cc312 Merge pull request #6418 from sinsharat/update_readme
etcdctl\ctlv3: updated readme.md for timetolive example
2016-09-14 02:06:57 +09:00
6f4e3696d2 etcdctl\ctlv3: updated readme.md for timetolive example 2016-09-13 22:31:34 +05:30
c7212b438d embed: warn on domain name in listener 2016-09-13 09:17:40 -07:00
0d35ba9b94 rafthttp: fix TestPipelineExceedMaximumServing
The timeout is too short. It might take more than 10ms to send
request over a blocking chan (buffer is full). Changing the timeout
to 1 second can fix this issue.
2016-09-13 19:06:11 +08:00
e6a7f25065 Merge pull request #6411 from heyitsanthony/v3api-minmaxmod
etcdserver: Range with min/max mod revision
2016-09-13 05:54:58 -05:00
cfe717e926 Merge pull request #6275 from xiang90/raft_l
raft: support safe readonly request
2016-09-13 01:36:04 -05:00
8c492c70ef Merge pull request #6413 from xiang90/fix_wait
clientv3: return error from response when possible
2016-09-12 22:54:42 -05:00
56084a7cc8 clientv3: return error from response when possible 2016-09-13 11:18:21 +08:00
fa2e9c2449 Revert "Merge pull request #6365 from heyitsanthony/fix-dns-bind"
This reverts commit af5ab7b351, reversing
changes made to da6a0f0594.
2016-09-12 19:45:35 -07:00
17e7f83212 integration: test MinModRev/MaxModRev 2016-09-12 19:44:14 -07:00
b0481ba858 clientv3: WithMinModRev and WithMaxModRev 2016-09-12 19:44:14 -07:00
3df8838501 Merge pull request #6404 from glycerine/range_fixes
etcd/auth: fix range handling bugs.
2016-09-12 21:26:59 -05:00
af0264d2e6 etcdserver, etcdserverpb: add MinModRevision and MaxModRevision options to Range 2016-09-12 15:17:57 -07:00
ce01fb3cdf Merge pull request #6410 from fanminshi/master
etcd-tester: fix peer-port parsing bug with localhost url
2016-09-12 14:00:06 -07:00
8a63071463 etcd-tester: fix peer-port parsing bug with localhost url
The following format "http://localhost:1234" causes existing port parser to fail. Add new logic to parse the host name first then extract port.

Fixes #6409
2016-09-12 13:29:52 -07:00
ef1ef0ba16 auth: fix range handling bugs.
Test 15, counting from zero, in TestGetMergedPerms
in etcd/auth/range_perm_cache_test.go, was trying
incorrectly assert that [a, b) merged with [b, "")
should be [a, b). Added a test specifically for
this. This patch fixes the incorrect larger test
and the bugs in the code that it was hiding.

Fixes #6359
2016-09-12 09:23:19 -05:00
710b14ce56 raft: support safe readonly request
Implement raft readonly request described in raft thesis 6.4
along with the existing clock/lease based approach.
2016-09-12 15:13:52 +08:00
840f4d48c8 Merge pull request #6402 from gyuho/logger
*: separate 'capnslog' log level setting
2016-09-10 21:38:53 -05:00
bfb9d837d9 Merge pull request #6399 from AdoHe/master
update language bindings doc to add coreos/jetcd
2016-09-10 21:55:41 +09:00
caaa8a48aa libraries-and-tools.md: add Java client 2016-09-10 20:47:31 +08:00
03b9d6f24c *: separate 'capnslog' log level setting 2016-09-10 20:26:51 +09:00
9a67d71e6c Merge pull request #6396 from heyitsanthony/rafthttp-msg-leak
rafthttp: log stream stopped message before closing channel
2016-09-09 17:52:03 -05:00
8f47468a40 Merge pull request #6397 from fanminshi/master
functional-tester: correct goreman command in readme
2016-09-09 17:30:54 -05:00
a571655983 functional-tester: correct goreman command in readme
update readme file to have the correct goreman command to start the functional tester locally.
2016-09-09 14:56:23 -07:00
0250f0c984 rafthttp: log stream stopped message before closing channel
Was causing spurious goroutine leak failures in testing.
2016-09-09 12:47:06 -07:00
92f141d670 Merge pull request #6393 from sinsharat/readme_update
etcdctl:readme.md doc made uniform
2016-09-09 12:04:48 -07:00
d5edb62bd0 etcdctl:readme.md doc made uniform 2016-09-10 00:32:36 +05:30
b22b405465 Merge pull request #6390 from gyuho/simple
wal: simplify dir.Close call
2016-09-09 09:50:38 +09:00
20fc9dc463 Merge pull request #6389 from heyitsanthony/func-tester-noroot
functional-tester: run locally
2016-09-08 19:48:33 -05:00
ccb46d2024 wal: simplify dir.Close call 2016-09-09 09:23:55 +09:00
0b675845f6 Merge pull request #6321 from gyuho/lease-information
*: lease timetolive
2016-09-09 08:43:28 +09:00
aa6b1e6a10 functional-tester: add Procfile 2016-09-08 16:35:55 -07:00
b7dc6cc604 e2e: test 'lease timetolive' 2016-09-09 08:22:41 +09:00
04a4cea630 etcdctl/ctlv3: add 'lease timetolive' command 2016-09-09 08:21:58 +09:00
4c08f6767c clientv3: add lease.TimeToLive + tests 2016-09-09 08:18:45 +09:00
55ba3d95fb etcd-tester: support per-agent client/peer/failpoint ports 2016-09-08 16:15:18 -07:00
78cfc8db95 grpcproxy: implement 'LeaseTimeToLive' 2016-09-09 08:14:46 +09:00
63b0cd470d etcdserver: implement 'LeaseTimeToLive' 2016-09-09 08:14:14 +09:00
0712ebc9b5 v2http: handle '/leases/internal' 2016-09-09 08:12:31 +09:00
2e25a772a5 etcd-agent: support rootless operation and configurable gofail ports 2016-09-08 16:12:00 -07:00
617d2d5b98 lease/*: add lease handler for 'LeaseTimeToLive' 2016-09-09 08:11:46 +09:00
3132e36bf3 etcdserverpb: add 'LeaseTimeToLive' RPC 2016-09-09 08:08:14 +09:00
33b3fdc627 Merge pull request #6388 from groxxda/patch-1
etcd.service: order after network.target
2016-09-08 16:31:29 -05:00
758f0d9017 Merge pull request #6387 from sinsharat/fix_ctl_win
ctlv3: fix line parsing for Windows
2016-09-08 16:27:26 -05:00
17377f5642 example .service file: Order after network.target
From (systemd NetworkTarget description)[https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/]:
```
[...]since the shutdown ordering of units in systemd is the reverse of the startup ordering, any unit that is order After=network.target can be sure that it is stopped before the network is shut down if the system is powered off. This allows services to cleanly terminate connections before going down, instead of abruptly losing connectivity for ongoing connections, leaving them in an undefined state.[...]
```
2016-09-08 23:11:01 +02:00
8b764aac71 ctlv3: fix line parsing for Windows 2016-09-09 01:58:33 +05:30
bb3ba1ee1c Merge pull request #6381 from heyitsanthony/fix-wal-rename
wal: fsync directory after wal file rename
2016-09-08 12:56:50 -07:00
28d80ad709 Merge pull request #6370 from xiang90/fix_restore
etcdctl: restore should create a snapshot
2016-09-08 14:25:07 -05:00
e9f841627c Merge pull request #6384 from hhkbp2/add-test-case-for-leader-transfer-from-follower
raft: add test case for leader transfer from follower
2016-09-08 13:58:03 -05:00
4563efd766 Merge pull request #6382 from heyitsanthony/unhealthy-err
v3api, rpctypes: add ErrUnhealthy
2016-09-08 09:15:58 -07:00
68f2fdc1ff raft: add test case for leader transfer from follower 2016-09-08 17:22:52 +08:00
bd7107bd4b wal: fsync directory after wal file rename
Fixes #6368
2016-09-08 00:09:16 -07:00
c449da6ff9 fileutil: windows OpenDir
Windows needs to open a directory with write access to fsync but the go
runtime won't open directories that way.
2016-09-08 00:09:16 -07:00
0cc2f82e7e Merge pull request #6383 from gyuho/lease-client
clientv3: use correct context in toErr (lease)
2016-09-08 01:39:40 -05:00
1aec483e42 clientv3: use correct context in toErr (lease) 2016-09-08 10:58:11 +09:00
1defeda792 v3api, rpctypes: add ErrUnhealthy 2016-09-07 16:51:49 -07:00
0b6350227c Merge pull request #6341 from xiang90/handle_overload
grpcproxy: handle overloaded stream
2016-09-07 16:55:41 -05:00
656167d760 etcdctl: Corrected command in Readme.md (#6376)
Corrected command in Readme.md
2016-09-07 21:09:24 +09:00
a6c905ad96 Merge pull request #6367 from heyitsanthony/fix-watch-init-reconn
clientv3: drain buffered WatchResponses before resuming
2016-09-07 03:15:01 -05:00
f411583ed1 Merge pull request #6374 from sinsharat/master
etcdctlv3: Readme.md updated
2016-09-07 02:29:14 -05:00
534cb0b749 etcdctlv3: Readme.md updated
1. Under PUT example the put command was mentioned in capital which will
give the below error:
Error: unknown command "PUT" for "etcdctl"
Hence corrected the same.
2. The lease id is mentioned with 0x to denote hex but since its an
example, copy pasting the command will give the below error:
Error: bad lease ID (strconv.ParseInt: parsing "0x1234abcd": invalid
syntax), expecting ID in Hex
Hence modified the same to a sample correct value so that a user new to
etcd does not get confused.
3. The command ./etcdctl range foo does not work and gives the below
error:
Error: unknown command "range" for "etcdctl"
Hence corrected the same

#6372
2016-09-07 12:35:20 +05:30
7b7b29ad1e Merge pull request #6373 from vimalk78/master
pkg/pbutil: corrected the package name in logger in pbutil.go
2016-09-07 01:35:21 -05:00
5ea6990a73 corrected the package name in logger 2016-09-07 11:52:01 +05:30
ce49fb6ec4 raft: add tests for IsLocalMsg (#6357)
* raft: add tests for IsLocalMsg

* report index of failed tests
2016-09-07 12:52:37 +09:00
7e182fa24a etcdctl: restore should create a snapshot
Restore should create a snasphot. So the new db file
can be sent to newly joined member.
2016-09-07 11:21:53 +08:00
b24527f2f0 Merge pull request #6353 from petermattis/pmattis/grow-inflights-buffer
raft: grow the inflights buffer instead of preallocating
2016-09-07 09:51:45 +09:00
ad318ee891 clientv3: drain buffered WatchResponses before resuming
Otherwise, the watcherStream can receive WatchResponses in the
middle of a resume, corrupting the stream.

Fixes #6364
2016-09-06 17:15:39 -07:00
af5ab7b351 Merge pull request #6365 from heyitsanthony/fix-dns-bind
embed: reject domain names before binding
2016-09-06 16:02:46 -07:00
7644a8ad76 integration: test domain name URLs are rejected before binding 2016-09-06 15:33:47 -07:00
2752169d6a embed: reject binding listeners to domain names
Fixes #6336
2016-09-06 15:33:28 -07:00
c1948f2940 raft: grow the inflights buffer instead of preallocating
Grow the inflights buffer as needed instead of preallocating it to its
max size. This avoids preallocating a lot of unnecessary
space (8*MaxInflightMsgs) when using lots of raft groups while still
allowing for a reasonable MaxInflightMsgs configuration.
2016-09-06 18:07:01 -04:00
da6a0f0594 Merge pull request #6362 from kevinburke/fix-typo
Documentation: fix typo
2016-09-06 14:45:03 -05:00
96ed856bca Merge pull request #6345 from topecongiro/patch-1
rafthttp: remove unnecessary sendc from peer
2016-09-06 11:32:16 -07:00
e508ce36ef Documentation: fix typo
"its" in this case is not short for "it is", it should be a possessive.
2016-09-06 11:26:27 -07:00
0b9c65c82f Merge pull request #6360 from jonboulle/master
scripts, doc: remove actool references
2016-09-06 18:37:28 +02:00
fd0539c8cc scripts, doc: remove actool references
Since c597d591b5 the release script uses
acbuild instead of actool, so purge all the references and have the
release script check for acbuild's presence instead.
2016-09-06 17:47:41 +02:00
d36c0a1444 Merge pull request #6356 from mitake/root-role
auth, e2e: the root role should be granted access to every key
2016-09-06 15:31:20 +08:00
bc5d7bbe03 auth, e2e, clientv3: the root role should be granted access to every key
This commit changes the semantics of the root role. The role should be
able to access to every key.

Partially fixes https://github.com/coreos/etcd/issues/6355
2016-09-06 16:10:28 +09:00
271df0dd71 Merge pull request #6354 from es-chow/fix-typo-in-interacting_v3-md
interacting_v3.md: fix typo
2016-09-06 10:17:56 +09:00
b17b482268 interacting_v3.md: fix typo 2016-09-06 09:08:37 +08:00
65fb1ad362 Merge pull request #6351 from petermattis/pmattis/raft-global-rand
raft: use a singleton global rand
2016-09-05 22:25:18 +08:00
4a33aa3917 raft: use a singleton global rand
rand.NewSource creates a 4872 byte object. With a small number of raft
groups in a process this isn't a problem. With 10k raft groups we'd use
46MB for these random sources. The only usage is in
raft.resetRandomizedElectionTimeout which isn't performance critical.

Fixes #6347.
2016-09-05 09:03:18 -04:00
1ebeef5cbf Merge pull request #6350 from nekto0n/fix_message_limit
rafthttp: fix misprint in readBytesLimit value
2016-09-05 15:26:19 +09:00
1b40fe7709 Merge pull request #6348 from plasticbox/master
libraries-and-tools.md: remove C++
2016-09-05 15:07:23 +09:00
da26e230a0 rafthttp: fix misprint in readBytesLimit value
and make test path in restricted test environments
2016-09-05 11:06:08 +05:00
f36267bf74 libraries-and-tools.md: remove C++ 2016-09-05 15:03:07 +09:00
a66b1e7c60 Merge pull request #6349 from gyuho/decode-length-limit
rafthttp: check decode size before buffer alloc
2016-09-05 14:25:23 +09:00
5c8ba23767 rafthttp: check decode size before buffer alloc
Fix https://github.com/coreos/etcd/issues/5386.
2016-09-05 14:06:03 +09:00
ec9e77db96 rafthttp: remove unnecessary sendc from peer 2016-09-04 13:07:31 +09:00
2e0dc8467d Merge pull request #6344 from glycerine/partial_fix_6343
etcdctl/ctlv3: don't crash when we should prompt for pw.
2016-09-03 10:55:38 -07:00
cccbf302f2 etcdctl/ctlv3: don't crash when we should prompt for pw.
when 'etcdctl --user name get blah' is invoked to
 prompt for password, don't panic.

 addresses the segfault part of #6343
2016-09-03 10:32:16 -07:00
56cfe40184 grpcproxy: fix a data race 2016-09-03 07:53:18 -07:00
b56ee178d5 grpcproxy: handle overloaded stream 2016-09-03 07:49:20 -07:00
0d07154926 Merge pull request #6340 from xiang90/fix_double_create
grpcproxy: fix double create event
2016-09-02 16:37:29 -07:00
81bd381048 Merge pull request #6339 from xiang90/close
grpcproxy: stop watchers in watch groups
2016-09-02 16:03:12 -07:00
805d4cbd93 grpcproxy: fix double create event 2016-09-02 16:02:46 -07:00
eded62e60c grpcproxy: stop watchers in watch groups 2016-09-02 16:01:11 -07:00
5b14b834c9 Merge pull request #6338 from xiang90/create
grpcproxy: fix more issues in watch path
2016-09-02 15:14:12 -07:00
8cd47c4348 grpcproxy: fix more issues in watch path 2016-09-02 15:13:21 -07:00
f7293125cf Merge pull request #6337 from xiang90/watch_cancel
grpcproxy: support cancel watcher
2016-09-02 13:38:20 -07:00
51b4d6b7a8 grpcproxy: support cancel watcher
We do not wait for the cancellation from actual etcd server,
but generate it at the proxy side. The rule is to return the
latest rev that the watcher has seen. This should be good
enough for most use cases if not all.
2016-09-02 12:36:47 -07:00
acc270edbf Merge pull request #6333 from plasticbox/master
libraries-and-tools.md: add C++ client package
2016-09-02 09:29:49 -07:00
ed2b3314b8 libraries-and-tools.md: add C++ client package 2016-09-02 14:05:49 +09:00
e93ee6179c Merge pull request #6325 from heyitsanthony/etcdctl-txn-quotes
etcdctl: fix quotes in txn and watch
2016-09-01 19:55:16 -07:00
666e7bd120 e2e: add quoted key/value to txn test 2016-09-01 19:39:23 -07:00
b1740f5fe4 etcdctl: fix quoted string handling in txn and watch
Fixes #6315
2016-09-01 19:39:23 -07:00
c59e0aa83e Merge pull request #6332 from heyitsanthony/fix-watcher-stream-cancel
grpcproxy: shutdown on client context cancel
2016-09-01 16:18:29 -07:00
7b2f769643 clientv3: only resume watcher if error is non-halting 2016-09-01 15:22:35 -07:00
3489fa82fb integration: don't nest proxies in cluster_proxy mode 2016-09-01 15:21:52 -07:00
d3ecebd14e grpcproxy: shut down watcher proxy when client context is done 2016-09-01 15:20:50 -07:00
26999db927 Merge pull request #6331 from xiang90/fix_proxy
grpcproxy: fix stream closing issue
2016-09-01 11:27:37 -07:00
9ef0f5ef8a grpcproxy: fix stream closing issue 2016-09-01 09:35:56 -07:00
9e5bccd458 Merge pull request #6324 from xiang90/fix_proxy_data_race
grpcproxy: fix data race
2016-08-31 18:48:51 -07:00
b982c80c14 grpcproxy: fix data race 2016-08-31 16:52:04 -07:00
48706a9cd6 Merge pull request #6320 from xiang90/fixTestIssue3699
integration: fix live lock in issue3699
2016-08-31 12:43:43 -07:00
5b60be9626 integration: fix live lock in issue3699
Do not restart the killed member immediately.
The member will advance its election timeout after restart
So it will have a better chance to become the leader again.
2016-08-31 12:25:24 -07:00
d016383740 Merge pull request #6319 from gyuho/news
NEWS: add v3.0.7
2016-08-31 11:22:09 -07:00
44e710f76c NEWS: add v3.0.7 2016-08-31 09:31:05 -07:00
a6d22b96c3 Merge pull request #6317 from gyuho/release-test
e2e: add 'TestReleaseUpgradeWithRestart'
2016-08-30 21:22:20 -07:00
2d552927e0 Merge pull request #6316 from gyuho/grpc-endpoints
e2e: remove stripSchema
2016-08-30 21:03:06 -07:00
a1598d767b e2e: add 'TestReleaseUpgradeWithRestart' 2016-08-30 21:01:10 -07:00
54ab9a1aba Merge pull request #6312 from gyuho/release-upgrade-test-v2
test: test with v3.0 (preparation for v3.1)
2016-08-30 20:57:18 -07:00
3aa2d1b40e test: test with v3.0 (preparation for v3.1) 2016-08-30 20:54:07 -07:00
c8ad147c0a e2e: remove stripSchema 2016-08-30 20:52:33 -07:00
e29c79c54c Merge pull request #6310 from heyitsanthony/wal-page-write
wal: use page buffered writer for writing records
2016-08-30 19:34:12 -07:00
28277b5a65 wal: use page buffered writer for writing records
Forces torn writes to only happen on sector boundaries.

Fixes #6271
2016-08-30 15:49:07 -07:00
2943bf9086 ioutil: add page buffered writer
A buffered writer that only writes full pages or when explicitly flushed.
2016-08-30 15:49:07 -07:00
48941cea95 Merge pull request #6308 from gyuho/manual2
client: do not send previous node data (optional)
2016-08-30 13:33:22 -07:00
ff7458508f Documentation/v2: add 'noValueOnSuccess' example 2016-08-30 11:49:12 -07:00
b9cd329c61 Merge pull request #6309 from xiang90/fix_upgrade
etcdserver: allow zero kv index for cluster upgrade
2016-08-30 11:46:14 -07:00
771ee43169 etcdserver: allow zero kv index for cluster upgrade
If a user upgrades etcd from 2.3.x to 3.0 and shutdown the
cluster immediately without triggering any new backend writes,
then the consistent index in backend would be zero.

The user cannot restart etcdserver due to today's strick index
match checking. We now have to lose this a bit for this case.
2016-08-30 11:28:18 -07:00
5c06fc9093 integration: change to 'NoValueOnSuccess' 2016-08-30 10:58:44 -07:00
2da7b63809 v2http: change to 'NoValueOnSuccess' 2016-08-30 10:53:02 -07:00
fb39e96862 client: change to 'NoValueOnSuccess' 2016-08-30 10:52:58 -07:00
572bfd99ff v2http: update function returns 2016-08-30 10:29:37 -07:00
82053f04b2 client: do not send previous node data (optional)
- Do not send back node data when specified
- remove node and prevNode when noDataOnSuccess is set
2016-08-30 10:04:09 -07:00
7873c25abd Merge pull request #6307 from gyuho/manual
libraries-and-tools.md: add C++ client package
2016-08-30 10:00:49 -07:00
e7314a2460 libraries-and-tools.md: add C++ client package 2016-08-30 09:51:27 -07:00
9e9bbb829e Merge pull request #6289 from purpleidea/feat/move-readynotify
embed: Move the ReadyNotify() call to a more sane place
2016-08-29 20:06:17 -07:00
547bf1a92d Merge pull request #6284 from glycerine/fix6278
fix unintended deadlock on key prefixes
2016-08-29 19:50:50 -07:00
9aee3f01cd embed: Move the ReadyNotify() call to a better place
When using the embed functionality, you can't call the Server.Stop()
function until StartEtcd returns, which can block until there is a call
to Server.Stop() in error situations. Since we have a catch-22, the
ReadyNotify() can be called manually by the user if they wish to wait
for the server startup, or in parallel with a timeout if they wish to
cancel it after some time.

Chzz pointed out that this is also more consistent with the
etcdserver.Start() behaviour too.

purpleidea pointed out that this is actually more correct too, because
we can now register the stop interrupt handler before we block on
startup.
2016-08-29 22:45:41 -04:00
9497e9678c clientv3/concurrency: allow election on prefixes of keys.
After winning an election or obtaining a lock, we
auto-append a slash after the provided key prefix.
This avoids the previous deadlock due to waiting
on the wrong key.

Fixes #6278
2016-08-29 18:34:14 -07:00
48f4a7d037 Merge pull request #6286 from bdarnell/initial-election-check-quorum
raft: Allow an election immediately after start with checkQuorum
2016-08-29 17:59:32 -07:00
a7a867c1e6 raft: Allow an election immediately after start with checkQuorum
Previously, the checkQuorum flag required an election timeout to
expire before a node could cast its first vote. This change permits
the node to cast a vote at any time when the leader is not known,
including immediately after startup.
2016-08-30 08:28:41 +08:00
f4c30425c0 Merge pull request #6298 from sinsharat/master
store: added missing test case scenerio for scan of de-queued entries
2016-08-29 13:55:55 -07:00
452dedf8ab Merge pull request #6297 from gyuho/grpc-proxy
grpcproxy: fix recursive Context method
2016-08-29 13:31:44 -07:00
f6cda8ac0b Merge pull request #6299 from sinsharat/master
store: removed duplicate method call for the same method
2016-08-29 13:27:57 -07:00
396fac416e Merge pull request #6273 from gyuho/get-cmd
ctlv3: add 'print-value-only' flag to get command
2016-08-29 13:25:30 -07:00
db7e38b0ed Merge pull request #6300 from sinsharat/master
wal: document grammar correction
2016-08-29 12:22:38 -07:00
69ed560fae wal: document grammar correction
Corrected grammar mistake for doc.go
2016-08-30 00:50:02 +05:30
754b9025c4 store: removed duplicate method call for the same method
the get func was calling path's Join and clean method which is already
being in internalGet(nodePath) func. Hence the func was getting called
unnecessarily twice which is not needed.

#6295
2016-08-30 00:44:53 +05:30
1c59708c51 e2e: test 'print-value-only' flag 2016-08-29 12:09:16 -07:00
524a5a1afb ctlv3: add 'print-value-only' flag to get command 2016-08-29 12:09:07 -07:00
45079ec6c1 Merge pull request #6274 from dghubble/etcd3-rkt-docs
Documentation: Add initial etcd3 with rkt docs
2016-08-29 12:01:27 -07:00
4f150b06e5 store: added missing test case scenerio for scan of de-queued entries
Test case added to check err handing for replaced entries.

#6255
2016-08-30 00:30:48 +05:30
fa79d42b98 Documentation: Add initial etcd3 with rkt docs 2016-08-29 11:59:46 -07:00
86bf2bc443 grpcproxy: fix recursive Context method 2016-08-29 11:37:35 -07:00
e53b99588a Merge pull request #6288 from heyitsanthony/fix-retryread
clientv3: retry non-mutable rpcs on Internal codes
2016-08-28 20:41:19 -07:00
5e963608b7 clientv3: do not treat Internal codes as halting
Fixes #6277
2016-08-28 20:20:22 -07:00
3552420dfd clientv3: set failfast=false on read-only txns 2016-08-28 19:40:38 -07:00
64ac631863 rpctypes: set unknown codes to Unknown instead of internal
An unrecognized error code isn't "very broken".
2016-08-28 19:37:35 -07:00
f73258a51f Merge pull request #6282 from gyuho/tester-error
etcd-tester: return error for mismatch rev/hash
2016-08-27 22:25:18 -07:00
0bf2ef3c1b etcd-tester: return error for mismatch rev/hash 2016-08-27 22:14:42 -07:00
a0759298c5 Merge pull request #6281 from xiang90/fix
etcd-tester: do not restart stresser on error
2016-08-27 20:49:08 -07:00
017aac88a8 etcd-tester: do not restart stresser on error 2016-08-27 20:47:45 -07:00
0be190df4d Merge pull request #6279 from xiang90/fix_hash
mvcc: force commit and hash should be atomic for getting hash
2016-08-27 20:09:22 -07:00
1437388f77 mvcc: force commit and hash should be atomic for getting hash 2016-08-27 19:22:22 -07:00
c388b2f22f Merge pull request #6264 from heyitsanthony/error-codes
clientv3: use grpc codes to translate raw grpc errors
2016-08-26 11:52:37 -07:00
a50c707050 clientv3/integration: wait for two request timeouts in txn tests
Read only txns and Get may timeout once if the leader is lost.
2016-08-26 10:04:10 -07:00
3a49cbb769 Merge pull request #6269 from aaronlehmann/hold-lock-while-renaming
On non-Windows OS, hold file lock while renaming WAL directory
2016-08-26 09:53:59 -07:00
af4f82228c wal: hold file lock while renaming WAL directory on non-Windows
Windows requires this lock to be released before the directory is
renamed. But on unix-like operating systems, releasing the lock and
trying to reacquire it immediately can be flaky if a process is forked
around the same time. The file descriptors are marked as close-on-exec
by the Go runtime, but there is a window between the fork and exec where
another process will be holding the lock.
2016-08-26 09:27:51 -07:00
df54ad2208 v3rpc, rpctypes: add error types for timeouts 2016-08-26 09:22:09 -07:00
267063efd0 clientv3: use grpc codes to translate raw grpc errors 2016-08-26 09:22:09 -07:00
417b9469aa Merge pull request #6270 from heyitsanthony/etcdserver-timeout
etcdserver: use request timeout defined by ServerConfig for v3 requests
2016-08-25 20:50:21 -07:00
254c0ea814 etcdserver: use request timeout defined by ServerConfig for v3 requests 2016-08-25 18:39:01 -07:00
4f5cacc835 Merge pull request #6267 from heyitsanthony/fix-wal-tear
wal: fix CRC corruption on writes following write tears
2016-08-25 17:10:08 -07:00
f1ead43482 wal: zero out wal tail past its first zero record
Whenever the WAL is opened for writes, it should write zeroes to its tail
starting from the first zero record. Otherwise, if there are entries past
the first zero record due to a torn write, any new writes that overlap the
old entries will lead to a garbage record on the tail and cause a CRC
mismatch.
2016-08-25 14:24:46 -07:00
58a36cb651 fileutil: add ZeroToEnd for zeroing files 2016-08-25 14:24:46 -07:00
0d8d9a374c wal: test for truncation on torn writes 2016-08-25 14:24:46 -07:00
488ae52a51 Merge pull request #6259 from xiang90/fix_test_c
clientv3/integration: fix TestKVPutStoppedServerAndClose
2016-08-24 14:14:17 -07:00
f2b7c501cc clientv3/integration: fix TestKVPutStoppedServerAndClose 2016-08-24 13:57:27 -07:00
bb110b0a2d Merge pull request #6257 from heyitsanthony/doc-fix-buglink
Documentation: update links for unaligned 64-bit atomics issue
2016-08-24 09:37:00 -07:00
159c8ee6e0 Documentation: update links for unaligned 64-bit atomics issue
Fixes #6256
2016-08-24 09:13:53 -07:00
1c989edb47 Merge pull request #6253 from heyitsanthony/srv-arec
discovery: reject IP address records in SRVGetCluster
2016-08-24 06:56:17 -07:00
3dc12e33f1 discovery: reject IP address records in SRVGetCluster
Was incorrectly trimming the trailing '.' from the target; this in turn
caused the etcd server to accept any SRV record with an IP target
instead of only targets with A records.
2016-08-23 18:10:42 -07:00
8e4fcaa6dc Merge pull request #6251 from xiang90/ctl_doc
etcdctl: list output options
2016-08-23 11:32:33 -07:00
86dcfbf205 etcdctl: list output options 2016-08-23 11:32:00 -07:00
83e66d2962 Merge pull request #6248 from xiang90/fix_mvcc
mvcc: only write txn should update index
2016-08-23 10:50:46 -07:00
c12104bd15 Merge pull request #6247 from xiang90/fix_snap
etcdserver: kv.commit needs to be serialized with apply
2016-08-23 09:39:54 -07:00
7f3d4bfae5 etcdserver: kv.commit needs to be serialized with apply
kv.commit updates the consistent index in backend. When
executing in parallel with apply, it might grab tx lock
after apply update the consistent index and before apply
starts to execute the opeartion. If the server dies right
after kv.commit, the consistent is updated but the opeartion
is not executed. If we restart etcd server, etcd will skip
the operation. :(

There are a few other places that we need to take care of,
but let us fix this first.
2016-08-23 09:16:09 -07:00
959f860a40 Merge pull request #6249 from gyuho/fix-count
etcd-tester: fix compact rev counting
2016-08-22 23:36:57 -07:00
0c37df7265 etcd-tester: fix compact rev counting 2016-08-22 22:58:44 -07:00
e1789aa531 mvcc: only write txn should update index 2016-08-22 22:05:51 -07:00
028b954052 Merge pull request #6245 from requenym/patch-1
documentation: update libraries-and-tools.md
2016-08-22 19:08:15 -07:00
49ef47a9a4 documentation: update libraries-and-tools.md 2016-08-22 20:21:29 -04:00
13f79affb6 Merge pull request #6243 from xiang90/fix_m
e2e: remove server testing in etcdctl test
2016-08-22 16:14:51 -07:00
aa89bc35fd Merge pull request #6242 from heyitsanthony/rwdial-timeout
pkg/transport: bump wait time in TestReadWriteTimeoutDialer for write deadline
2016-08-22 16:13:50 -07:00
722d66b03d Merge pull request #6241 from gyuho/progress-doc
clientv3: specify watch progress notify interval
2016-08-22 15:59:01 -07:00
be38c50567 clientv3: specify watch progress notify interval
For watch request
2016-08-22 15:44:59 -07:00
1d58c7d3b2 e2e: remove server testing in etcdctl test 2016-08-22 15:34:50 -07:00
3b92384394 pkg/transport: bump wait time in TestReadWriteTimeoutDialer for write deadline
Was able to get 2s wait times with 500 concurrent requests on a fast machine;
a slower machine could possibly see similar delays with a single connection.

Fixes #6220
2016-08-22 15:30:44 -07:00
c39b7205a6 Merge pull request #6228 from mitake/e2e-txn-auth
e2e: a test case for txn and permission
2016-08-22 09:24:18 -07:00
3d5d3b90e9 e2e: a test case for txn and permission
This commit adds a new test case for checking the permission mechanism
can work well in txn requests.
2016-08-22 12:06:19 +09:00
0504b277b6 Merge pull request #6235 from coreos/procfile-location
local_cluster: make it clear where Procfile is
2016-08-21 19:55:50 -07:00
4c7bced34e local_cluster: make it clear where Procfile is
It isn't clear where to start with these instructions, fix this.
2016-08-21 17:14:59 -04:00
8c88c1611e Merge pull request #6231 from heyitsanthony/fix-rafthttp-test
rafthttp: fix race in TestStreamWriterAttachOutgoingConn
2016-08-19 20:40:42 -07:00
784c4446d9 rafthttp: fix race in TestStreamWriterAttachOutgoingConn
Fixes #6230
2016-08-19 19:59:16 -07:00
262c98f327 Merge pull request #6229 from xiang90/applynotify
etcdserver: add waitApplyIndex
2016-08-19 16:58:21 -07:00
83de13e4a8 etcdserver: support apply wait 2016-08-19 16:18:35 -07:00
940402a27d Merge pull request #6225 from xiang90/cache
grpc-proxy: invalidate cache entries when there is a put/delete
2016-08-19 15:11:59 -07:00
8db4f5b8e1 pkg/wait: change wait time to use logical clock 2016-08-19 15:10:37 -07:00
146bce3377 Merge pull request #6211 from gyuho/proxy-timeout
integration: improve TestTransferLeader
2016-08-19 13:32:18 -07:00
eaa5d9772f integration: improve TestTransferLeader
so that it can check leader transition
2016-08-19 13:11:38 -07:00
c8bbb8c53e grpc-proxy: invalidate cache entries when there is a put/delete 2016-08-19 12:52:19 -07:00
5e6d2a23b7 Merge pull request #6226 from gyuho/vendor
vendor: update grpc/grpc-go for clientconn patch
2016-08-18 20:35:25 -07:00
01471481a9 vendor: update grpc/grpc-go for clientconn patch 2016-08-18 20:17:24 -07:00
f4b6ed2469 Merge pull request #6223 from heyitsanthony/fix-rafthttp-badoutgoing
rafthttp: remove WaitSchedule() from tests
2016-08-18 16:44:56 -07:00
da1e022890 rafthttp: remove WaitSchedule() from tests
Fixes #6187
2016-08-18 16:26:35 -07:00
5e9fe0dc23 Merge pull request #6222 from hongchaodeng/master
integration: NewClusterV3() should launch cluster before creating clients
2016-08-18 14:52:04 -07:00
5630a76766 integration: NewClusterV3 should launch cluster before creating clients 2016-08-18 14:05:21 -07:00
8021487b7a Merge pull request #6219 from sinsharat/master
raft: handled panic for Term due to IOB
2016-08-18 12:33:52 -07:00
a8fc4396e2 Merge pull request #6218 from gyuho/boltdb
vendor: boltdb/bolt v1.3.0 for Go 1.7
2016-08-18 11:06:05 -07:00
9b3b1f80dd raft: handled panic for Term due to IOB
Instead of raising panic, returning an error instead for better handling

#6215
2016-08-18 23:11:38 +05:30
00f5a01378 vendor: boltdb/bolt v1.3.0 for Go 1.7 2016-08-18 10:36:20 -07:00
cc4f4b47bc Merge pull request #6198 from heyitsanthony/reenable-outside-gopath
build: re-enable building outside gopath
2016-08-18 09:44:34 -07:00
a20d4a2d31 Merge pull request #6209 from heyitsanthony/fix-waittime-test
pkg/wait: don't expect time.Now() to be strict increasing in WaitTime tests
2016-08-17 13:46:11 -07:00
14f6dd4ded Merge pull request #6210 from gyuho/race
integration: fix race in TestDoubleBarrierFailover
2016-08-17 12:19:06 -07:00
10c9e238f0 integration: fix race in TestDoubleBarrierFailover 2016-08-17 11:56:49 -07:00
f9d122066e pkg/wait: don't expect time.Now() to be strict increasing in WaitTime tests 2016-08-17 11:53:34 -07:00
57fde954b9 Merge pull request #6208 from xiang90/better_logging
etcdserver: improve logging for leadership transfer
2016-08-17 11:47:38 -07:00
d0fa390048 etcdserver: improve logging for leadership transfer 2016-08-17 11:40:46 -07:00
5aa935f3b7 Merge pull request #6207 from gyuho/wait-extra
integration: write to leader group first, or wait
2016-08-17 11:25:09 -07:00
f2fedbae9b integration: write to leader group first, or wait
Write to leader group first, or give more time to
acknowledge the leader after network partition recovery
2016-08-17 11:09:33 -07:00
a5022c1cba Merge pull request #6205 from heyitsanthony/ft-large-writes
functional-tester: put large keys
2016-08-17 10:49:56 -07:00
e7a7fb2bb1 Merge pull request #6204 from gyuho/news
NEWS: add v3.0.5
2016-08-17 09:57:06 -07:00
6655afda4b NEWS: add v3.0.5 2016-08-17 09:56:45 -07:00
47b6449934 functional-tester: put large keys
For testing writes that must span multiple pages.
2016-08-17 09:51:44 -07:00
30cf8b7f0f Merge pull request #6197 from gyuho/mutex-proxies
integration: fix race in setting shared proxies
2016-08-17 09:15:10 -07:00
83dd121bae build: re-enable building outside gopath
Have build return an error code if build fails and add a test to travis
to confirm running build outside the gopath works.
2016-08-16 20:06:05 -07:00
38c370a7c5 Merge pull request #6196 from gyuho/clockwork
vendor: use v0.1.0 clockwork
2016-08-16 19:52:34 -07:00
fb00a32b86 integration: fix races in global proxies 2016-08-16 19:43:31 -07:00
f91f7dfb91 v2http: fix tests to use new clockwork 2016-08-16 16:36:24 -07:00
3f0f4bfee7 vendor: clockwork v0.1.0 2016-08-16 16:31:10 -07:00
28b797b538 Merge pull request #6194 from heyitsanthony/fix-gofail
build: don't override gopath by default, demote old gopath on override
2016-08-16 14:27:08 -07:00
cf063ed475 Merge pull request #6193 from xiang90/gw
docs: add gateway
2016-08-16 14:16:22 -07:00
b499f69181 docs: add gateway 2016-08-16 14:02:45 -07:00
e1519cf460 build: don't override gopath by default, demote old gopath on override
Builds already vendor through cmd/ so there's no reason to set the GOPATH; it
was also breaking gofail builds. For builds that need to override GOPATH, also
include the old GOPATH as a fallback for dependencies outside cmd/vendor/.
2016-08-16 13:46:07 -07:00
8d7703528a Merge pull request #5845 from heyitsanthony/clientv3-ignore-dead-eps
clientv3: respect up/down notifications from grpc
2016-08-16 11:56:03 -07:00
3eadf964f4 clientv3: use failfast and retry wrappers for at-most-once rpcs 2016-08-16 10:49:50 -07:00
ee3797ddff integration: treat client TLS connecting to insecure server as timeout 2016-08-16 10:17:16 -07:00
46765ad79c clientv3: respect up/down notifications from grpc
Fixes #5842
2016-08-16 09:49:36 -07:00
462eb511c5 Merge pull request #6183 from heyitsanthony/go-install-etcd
build: support go install github.com/coreos/etcd/cmd/etcd
2016-08-15 16:29:36 -07:00
b125d590cf Merge pull request #6186 from gyuho/grpcproxy-fix
proxy/grpcproxy: fix nil-map assign to 'singles'
2016-08-15 16:25:02 -07:00
b9d01fb98b vendor: update grpc 2016-08-15 16:19:40 -07:00
a4ef36c8bf proxy/grpcproxy: fix nil-map assign to 'singles' 2016-08-15 15:48:45 -07:00
d5d2370fc8 Merge pull request #6172 from xiang90/session
session: remove session manager and add ttl
2016-08-15 15:20:19 -07:00
961b03420e Merge pull request #6185 from heyitsanthony/wait-time-collision
wait: make WaitTime robust against deadline collisions
2016-08-15 15:15:29 -07:00
16b2d9ca5e Merge pull request #6170 from heyitsanthony/default-advertise-ip
use default ip for advertise URL
2016-08-15 15:12:25 -07:00
449923c98b build: support go install github.com/coreos/etcd/cmd/etcd
Could build via github.com/coreos/etcd/cmd but that would generate a binary
named "cmd", which is not ideal.
2016-08-15 15:08:41 -07:00
7b84456366 Merge pull request #6163 from gyuho/vendor
vendor: migrate to glide + update go-systemd, probing
2016-08-15 15:01:09 -07:00
c3f069c9fc wait: make WaitTime robust against deadline collisions 2016-08-15 14:38:41 -07:00
0307382c1a Merge pull request #6184 from xiang90/rm
ROADMAP: update
2016-08-15 14:30:23 -07:00
db834301eb ROADMAP: update 2016-08-15 14:30:10 -07:00
feaff17259 session: remove session manager and add ttl 2016-08-15 14:12:25 -07:00
2cc245e8bf etcdmain: report default advertise detection / fallback 2016-08-15 14:08:09 -07:00
29372f9dd2 vendor: update go-systemd, probing 2016-08-15 14:04:07 -07:00
ddf65421e7 scripts: use glide in updatedep.sh 2016-08-15 14:04:03 -07:00
b207dd095c glide: initial commit 2016-08-15 12:10:32 -07:00
d5900e8b63 vendor: migrate to glide 2016-08-15 12:10:21 -07:00
e810dec662 Merge pull request #6182 from gyuho/fix
rafthttp: use reportCriticalError, fix typo
2016-08-15 11:48:30 -07:00
e8594b60b1 embed: use default route IP for default advertise URL
Fixes #2858
2016-08-15 11:12:26 -07:00
d23392ed8e netutil: GetDefaultHost for getting the default IP of the host machine 2016-08-15 11:12:26 -07:00
bd450c1ba3 rafthttp: use reportCriticalError, fix typo 2016-08-15 10:40:58 -07:00
561c3b918a Merge pull request #6179 from ypu/binDir
e2e: Update binary path with binDir
2016-08-15 10:36:04 -07:00
9eb6ea34bd Merge pull request #6175 from heyitsanthony/fix-conn-race
rafthttp: fix race between streamReader.stop() and connection closer
2016-08-15 09:27:24 -07:00
d0d8e49e20 e2e: Update binary path with binDir
Signed-off-by: Yiqiao Pu <ypu@redhat.com>
2016-08-15 17:22:42 +08:00
911c8442b7 rafthttp: fix race between streamReader.stop() and connection closer 2016-08-15 01:36:09 -07:00
96e018634a Merge pull request #6173 from gyuho/ccc
pkg/httputil: simplify RequestCanceler args
2016-08-14 20:41:19 -07:00
f14fd43548 proxy/httpproxy: fix httputil.RequestCanceler 2016-08-14 14:37:08 -07:00
0503676bde rafthttp: fix httputil.RequestCanceler 2016-08-14 14:36:51 -07:00
ae4b4109b2 pkg/httputil: simplify RequestCanceler args 2016-08-14 14:35:50 -07:00
1b5a129bbe Merge pull request #6171 from gyuho/go-vet
*: fix spell errors from go report card
2016-08-13 23:10:17 -07:00
19b35c939a proxy/grpcproxy: fix spell 'gropu' to 'group' 2016-08-13 20:55:15 -07:00
4d3b281369 etcdserver: fix spell errors 2016-08-13 20:54:48 -07:00
6b671b88dc etcdctl/ctlv3: fix spell errors 2016-08-13 20:54:27 -07:00
d788eb8d92 Merge pull request #6038 from gyuho/leader
*: transfer leadership when stopping leader
2016-08-13 14:47:54 -07:00
a205242ca5 integration: add 'TestTransferLeader/Stop' 2016-08-13 14:32:01 -07:00
64a0e34602 etcdserver: transfer leadership when stopping 2016-08-13 14:31:58 -07:00
7b11c288fe Merge pull request #6169 from sinsharat/master
etcdserver: optimized veryfying local member
2016-08-12 19:09:55 -07:00
1fec4ba127 etcdserver: optimized veryfying local member
moved the code for perparing and sorting of advertising peer urls and
sorting of peer urls only when strict verification needs to be done.
This is done to avoid this processing when strict verification is not
required like in case of VerifyJoinExisting function.

#6165
2016-08-13 06:17:21 +05:30
817de6d212 Merge pull request #6168 from heyitsanthony/fix-periodic-test-block
compactor: wait for After() in TestPeriodic
2016-08-12 13:54:06 -07:00
5eff6fb7db compactor: wait for After() in TestPeriodic
If the test calls clock.Advance() after the compactor checks clock.Now()
but before the compactor calls clock.After(), the compactor will wait
forever on clock.After() expecting the lost clock.Advance().

Reproduced failure by putting a Sleep() in the clock.Now() continue path.

Fixes #6060 (again)
2016-08-12 13:28:40 -07:00
f975fe8068 Merge pull request #6140 from gyuho/network-partition
*: add network partition tests
2016-08-12 12:33:24 -07:00
0a00328a7c integration: add network partition tests 2016-08-12 12:15:29 -07:00
82a3d90763 Merge pull request #6167 from xiang90/fix_txn_rev
etcdserver: fix wrong rev in header when nothing is actually got executed
2016-08-12 12:14:48 -07:00
92a0f08722 etcdserver: fix wrong rev in header when nothing is actually got executed 2016-08-12 11:44:13 -07:00
67b1c7cce5 Merge pull request #6166 from heyitsanthony/clientv3-nonblock-new
clientv3: support non-blocking New()
2016-08-12 10:57:45 -07:00
429d5ab20b clientv3: only block on New() when DialTimeout > 0
Fixes #6162
2016-08-12 10:33:11 -07:00
c6c6cfb502 etcdserver: implement 'CutPeer', 'MendPeer' 2016-08-12 07:38:52 -07:00
c33ea20fef Merge pull request #6161 from sinsharat/master
etcdserver: stats/server - refactored
2016-08-11 17:03:23 -07:00
965b2901d5 Merge pull request #6156 from heyitsanthony/remove-member-quorum
etcdserver: reject member removal that breaks active quorum
2016-08-11 11:40:38 -07:00
aa9837e8ff e2e: support --strict-reconfig-check=false 2016-08-11 11:14:14 -07:00
e742ff331f integration: test member removal which breaks active quorum is rejected 2016-08-11 11:14:14 -07:00
6205a9a6cb etcdserver: stats/server - refactored
removed code duplicacy and improved readability

#6160
2016-08-11 22:09:25 +05:30
de06dc1272 Merge pull request #6155 from gyuho/raft-leader-transfer
*: expose Raft leader transfer
2016-08-11 08:03:28 -07:00
d3812ed664 Merge pull request #6157 from siddontang/siddontang/fix-overflow
raft: fix overflow
2016-08-11 07:53:48 -07:00
f8ee322b08 raft: fix overflow 2016-08-11 09:24:49 +08:00
8a32929d29 Merge pull request #6154 from gyuho/rafthttp-pause
rafthttp: add Transport.Cut/MendPeer
2016-08-10 17:10:30 -07:00
937ae658dd rafthttp: add Transport.Cut/MendPeer
From https://github.com/coreos/etcd/pull/6140.
2016-08-10 17:09:35 -07:00
a1ce07a321 etcdserver: reject member removal that breaks the current active quorum 2016-08-10 17:00:39 -07:00
a56cb82180 etcdserver: add TransferLeadership for raft.Node 2016-08-10 16:26:11 -07:00
e64ef3f261 raft: add 'TransferLeadership' to Node interface 2016-08-10 16:25:22 -07:00
f4141f0f51 raft: handle 'MsgTransferLeader' in follower 2016-08-10 16:24:29 -07:00
d72cee1b0c Merge pull request #6153 from gyuho/example
clientv3: update base example with TLS
2016-08-10 14:53:42 -07:00
1644679d00 clientv3: add 'ExampleConfig_withTLS' 2016-08-10 14:37:34 -07:00
7eb43ea75b Merge pull request #6152 from xiang90/fix_count
mvcc: fix count
2016-08-10 11:42:10 -07:00
f5549cba2a Merge pull request #6151 from heyitsanthony/configfile-defaults
embed: load config defaults before loading from file
2016-08-10 11:27:57 -07:00
de864d3b58 mvcc: fix count 2016-08-10 10:54:25 -07:00
2bb1f9c8a4 Merge pull request #6150 from gyuho/metrics
etcdserver: use Counter for proposals_failed_total
2016-08-10 09:59:10 -07:00
eb97aba581 e2e: test etcd boots with example config file 2016-08-10 09:45:17 -07:00
6de993b468 embed: load config defaults before loading config from file 2016-08-10 09:44:50 -07:00
06e2338108 Merge pull request #6113 from ypu/e2e
Add some test flags for e2e test
2016-08-10 09:28:27 -07:00
d219e96359 etcdserver: use Counter for proposals_failed_total
It only ever goes up.
2016-08-10 09:27:51 -07:00
b6f5b6b1c9 Merge pull request #6147 from sinsharat/master
etcdserver: Error handling for invalid empty raft cluster
2016-08-10 08:52:45 -07:00
2b5a5c77cf etcdserver: Error handling for invalid empty raft cluster
TODO implemented for GetClusterFromRemotePeers should not return nil
error with an invalid empty cluster

#6137
2016-08-10 19:23:19 +05:30
a5e4fbd335 e2e: Make the certificate file path configurable
This commit will help us to run the e2e tests in an enviroment
without e2e source code more convenient.

Signed-off-by: Yiqiao Pu <ypu@redhat.com>
2016-08-10 15:40:12 +08:00
2ca87f6c03 e2e: Make it can run with exist binary
Add the bin-dir option to the command line, so the e2e tests can
run with an exist binary. For example(run the command under e2e
directory):
go test -v -timeout 10m -bin-dir /usr/bin -cpu 1,2,4

Signed-off-by: Yiqiao Pu <ypu@redhat.com>
2016-08-10 15:40:12 +08:00
81f5e31ed2 Merge pull request #6142 from heyitsanthony/fix-cancel-watch-imm
clientv3: handle watchGrpcStream shutdown if prior to goroutine start
2016-08-09 20:53:56 -07:00
2d3eda4afa Merge pull request #6139 from aaronlehmann/export-segment-size
wal: Export SegmentSizeBytes as a variable
2016-08-09 20:39:56 -07:00
1c83a46c6d clientv3: handle watchGrpcStream shutdown if prior to goroutine start
Fixes #6141
2016-08-09 19:59:04 -07:00
2b996b6038 wal: Export SegmentSizeBytes as a variable
In test situations, it's useful to create smaller than usual WAL files
to test rotation and to avoid the overhead of preallocation on old-style
filesystems that don't handle it efficiently. This commit changes
segmentSizeBytes to an exported variable so that tests can override it
from an init() function.
2016-08-09 15:38:30 -07:00
88a77f30e1 Merge pull request #6136 from heyitsanthony/fix-watcher-leak
clientv3: close watcher stream once all watchers detach
2016-08-09 10:23:15 -07:00
8c1c291332 clientv3/integration: test watcher cancelation propagation to server 2016-08-09 00:10:57 -07:00
5e651a0d0d clientv3: close watcher stream once all watchers detach
Fixes #6134
2016-08-09 00:10:57 -07:00
c3c41234f1 integration: support querying member metrics 2016-08-08 23:45:50 -07:00
c7e4198742 Merge pull request #6129 from xiang90/fix_raft
raft: fix getting unapplied log entries
2016-08-08 16:30:42 -07:00
8f3a11c73c Merge pull request #6105 from gyuho/release-notes
NEWS: add release notes for >v3.0.0 releases
2016-08-08 15:39:14 -07:00
f58a119b44 Merge pull request #6132 from gyuho/manual
Documentation/dev-guide: add bash syntax to doc
2016-08-08 15:26:14 -07:00
adbd936f22 Documentation/dev-guide: add bash syntax to doc 2016-08-08 15:06:02 -07:00
39f39c185e NEWS: add release notes for >v3.0.0 releases
Fix https://github.com/coreos/etcd/issues/6049.
2016-08-08 15:01:17 -07:00
918af500c3 Merge pull request #6130 from gyuho/port-e2e
e2e: use unix port for release tests
2016-08-08 14:41:09 -07:00
311c19e494 e2e: use unix port for release tests
Fix https://github.com/coreos/etcd/issues/5947.

When we restart, the previous port could have been still bind
by the OS. Use Unix port to avoid such rebind cases.
2016-08-08 14:26:19 -07:00
5f0c122496 raft: fix getting unapplied log entries 2016-08-08 10:44:02 -07:00
bb28c9ab00 Merge pull request #6126 from gyuho/tester
etcd-tester: fix tester for 5-node cluster
2016-08-07 21:58:49 -07:00
c6cf015e26 etcd-tester: fix tester for 5-node cluster
1. fix failure case counting
2. match ErrClientConnClosing in stresser
3. longer timeout for set-health-key
4. fixed range for range/delete stresser
5. remove Limit in RangeRequest
2016-08-07 21:15:01 -07:00
fb7c4da361 Merge pull request #6124 from heyitsanthony/share-limiter
functional-tester: share limiter among stresser
2016-08-07 19:17:06 -07:00
978ae9de29 functional-tester: share limiter among stresser
Otherwise, adding more members stresses the cluster with more ops.
2016-08-07 19:15:00 -07:00
7678b84f2c Merge pull request #6123 from xiang90/fix_limiter
tools/functional-tester: fix limiter
2016-08-07 16:20:17 -07:00
619a40b22b Merge pull request #6122 from xiang90/debug_stresser
tools/functional-tester: better logging
2016-08-07 16:17:52 -07:00
f6a1585902 functional-tester: reduce rate to 3000 2016-08-07 14:34:01 -07:00
107a07563f tools/functional-tester: fix limiter 2016-08-07 14:28:16 -07:00
69204397ee tools/functional-tester: better logging 2016-08-07 14:21:44 -07:00
f505bcb91a Merge pull request #6117 from gyuho/lease-test
integration: add more lease tests
2016-08-05 19:25:07 -07:00
f1f31f1015 integration: add more lease tests
Fix https://github.com/coreos/etcd/issues/6102.
2016-08-05 19:09:46 -07:00
c71f0ea174 Merge pull request #6106 from heyitsanthony/strict-reconfig-healthy
etcdserver, embed: stricter reconfig checking
2016-08-05 17:15:01 -07:00
9063ce5e3f etcdserver, embed: stricter reconfig checking
Make --strict-reconfig-check a default and check if cluster is healthy when
adding a member.
2016-08-05 16:59:25 -07:00
9764652356 Merge pull request #6081 from gyuho/functional-tester
etcd-tester: delete/range with limit, clean up
2016-08-05 11:28:41 -07:00
854a215329 etcd-tester: delete/range with limit, clean up 2016-08-05 11:21:36 -07:00
4a7fabd219 Merge pull request #6098 from xiang90/lease
Fix Lease
2016-08-05 10:08:24 -07:00
6c3efde51b Merge pull request #6099 from sinsharat/master
raft: handling of applying old snapshots
2016-08-05 07:38:07 -07:00
d69d438289 *: minor cleanup for lease 2016-08-04 20:39:32 -07:00
7ed8a133d2 Merge pull request #6104 from gyuho/typo
pkg/transport: fix minor typo
2016-08-04 16:03:40 -07:00
c38f0290a7 pkg/transport: fix minor typo 2016-08-04 16:00:18 -07:00
c46955b60a Merge pull request #6097 from swingbach/master
raft: fix #6096
2016-08-04 11:40:02 -07:00
e2a956c0c4 Merge pull request #6100 from gyuho/sort-comment
clientv3: ignore sort-ascend-key option
2016-08-04 11:28:49 -07:00
bd62b0a646 mvcc: attach keys to leases after recover all state
The previous logic is wrong. When we have hisotry like Put(foo, bar, lease1),
and Put(foo, bar, lease2), we will end up with attaching foo to two leases 1 and
2. Similar things can happen for deattach by clearing the lease of a key.

Now we try to fix this by starting to attach leases at the end of the recovery.
We use a map to keep the last lease attachment state.
2016-08-04 11:17:58 -07:00
ddddecc3ab clientv3: ignore sort-ascend-key option 2016-08-04 11:13:41 -07:00
75c06cacae lease: do lease delection in the kv txn 2016-08-04 10:06:47 -07:00
4d59b6f52c lease: delete kvs in a txn 2016-08-04 10:06:46 -07:00
fd757756f5 raft: handling of applying old snapshots
There was a TODO requirement to handle ErrorSnapshotOutOfDate for the
function ApplySnapshot. The same has been implemented

#6090
2016-08-04 21:08:24 +05:30
29a077bdbe etcdserver: always recover lessor first 2016-08-04 08:06:19 -07:00
41dee84733 raft: fix #6096 2016-08-04 18:31:22 +08:00
eb36d0dbba Merge pull request #6084 from heyitsanthony/srv-servername
etcdctl: set TLS servername on discovery
2016-08-03 23:51:11 -07:00
a752338d45 Documentation: update clustering guide about PKI SRV record forging 2016-08-03 22:28:03 -07:00
d1809830bb embed: use ServerName on TLS DNS discovery without CA file 2016-08-03 22:28:03 -07:00
ab4ac828f3 etcdmain: check TLS on gateway SRV records 2016-08-03 22:28:03 -07:00
e218834b58 etcdctl: set ServerName for TLS when using --discovery-srv 2016-08-03 22:28:03 -07:00
cd781bf30c transport: add ServerName to TLSConfig and add ValidateSecureEndpoints
ServerName prevents accepting forged SRV records with cross-domain
credentials. ValidateSecureEndpoints prevents downgrade attacks from SRV
records.
2016-08-03 22:28:03 -07:00
6e7baab32c Merge pull request #6070 from swingbach/master
raft: fix #6068
2016-08-03 19:59:07 -07:00
cabd28516c Merge pull request #6092 from gyuho/transport
pkg/transport: update scheme to unix without copy
2016-08-03 10:59:00 -07:00
c8cc87c3f5 pkg/transport: update scheme to unix copying URL 2016-08-03 10:35:28 -07:00
bc9882f521 Merge pull request #6087 from xiang90/grpc_create
grpcproxy: handle create event
2016-08-03 09:31:33 -07:00
57c68ab1db grpcproxy: handle create event 2016-08-02 20:51:30 -07:00
c30a436829 Merge pull request #6086 from xiang90/sc
clientv3: add send created notification
2016-08-02 20:27:04 -07:00
33c3583b50 clientv3: add send created notification 2016-08-02 20:08:11 -07:00
76e62c39b0 Merge pull request #6085 from heyitsanthony/lease-elect-timeout
etcdserver, lease: tie lease min ttl to election timeout
2016-08-02 13:27:04 -07:00
bf71497537 etcdserver, lease: tie lease min ttl to election timeout 2016-08-02 13:06:57 -07:00
c0a8da7fd0 raft: minor refactor 2016-08-02 08:46:43 +08:00
4db07dbc93 Merge pull request #6079 from gyuho/cleanup-functional-tester
etcd-tester: remove unnecessary arg from stresser
2016-08-01 15:40:50 -07:00
755eee0d30 etcd-tester: remove unnecessary arg from stresser 2016-08-01 15:35:31 -07:00
b23045e34d Merge pull request #6078 from gyuho/release-note
dev-internal: update release note
2016-08-01 15:14:05 -07:00
fc4b30a1e0 dev-internal: update release note
For https://github.com/coreos/etcd/issues/6049.
2016-08-01 15:09:47 -07:00
9836990aa7 Merge pull request #6077 from gyuho/auth-guest
v2http: use guest access in non-TLS mode
2016-08-01 14:32:46 -07:00
87498e0209 v2http: use guest access in non-TLS mode
Fix https://github.com/coreos/etcd/issues/6075.
2016-08-01 14:00:38 -07:00
59ac42ff38 Merge pull request #6073 from heyitsanthony/rafthttp-close-stream
rafthttp: close http socket when pipeline handler gets a raft error
2016-07-31 21:49:04 -07:00
911dcc9386 rafthttp: close http socket when pipeline handler gets a raft error
Otherwise the http stream remains open and keeps receiving raft messages.
This can lead to "raft: stopped" log spam on closing an embedded server.

Fixes #5981
2016-07-31 20:25:42 -07:00
a2715e3bda Merge pull request #6072 from xiang90/tls_err
Log TLS error in health checking
2016-07-31 20:17:47 -07:00
9311d7b77e rafthttp: log health checking error early 2016-07-31 19:58:22 -07:00
5a83f05e96 dep: update probing 2016-07-31 18:24:00 -07:00
a60387bab2 Merge pull request #6001 from mitake/auth-errcode
client, etcdserver: propagate status code of auth related error
2016-07-31 08:28:41 -07:00
564bf8d17e client: utility functions for getting detail of v2 auth errors
Current v2 auth API doesn't propagate its error code. This commit adds
utility functions for parsing error messages and getting detail of v2
auth errors.

Fixes https://github.com/coreos/etcd/issues/5894
2016-07-31 21:23:58 +09:00
4d309f0cb7 Merge pull request #6054 from heyitsanthony/serialize-refactor
etcdserver: apply serialized requests outside auth apply lock
2016-07-30 22:44:26 -07:00
06da46c4ee etcdserver: apply serialized requests outside auth apply lock
Fixes #6010
2016-07-30 22:00:49 -07:00
b43722dd48 Merge pull request #6069 from xiang90/raft_doc
raft: better doc
2016-07-30 21:11:57 -07:00
8d12017fe2 raft: better doc 2016-07-30 21:11:37 -07:00
992f628e6e raft: fix #6068 2016-07-30 03:27:29 +08:00
e2088b8073 Merge pull request #6063 from siddontang/siddontang/embed-handler
embed: support registering client handlers
2016-07-27 22:57:27 -07:00
86de0797e1 embed: support registering user handlers 2016-07-28 13:39:06 +08:00
72eb2d8893 Merge pull request #6064 from heyitsanthony/clientv3-watch-filter
clientv3: watch filters
2016-07-27 21:48:25 -07:00
4c9a2a65c9 integration: test clientv3 watch filters 2016-07-27 21:25:06 -07:00
943fe70178 clientv3: support watch filters 2016-07-27 21:24:52 -07:00
79d25a6884 Merge pull request #6061 from heyitsanthony/fix-snapshot-test
etcdserver: don't race when waiting for store in TestSnapshot
2016-07-27 19:15:41 -07:00
3d8e4ace47 Merge pull request #6062 from heyitsanthony/fix-test-periodic
compactor: fix race in TestPeriodic
2016-07-27 19:15:27 -07:00
76a99fa1c3 compactor: fix race in TestPeriodic
Test ordering now similar to TestPeriodicPause

Fixes #6060
2016-07-27 16:03:22 -07:00
1153350a95 Merge pull request #6059 from jlamillan/honor_global_output
etcdctl: Add support for formating output of key related commands
2016-07-27 16:03:17 -07:00
cfe09d34b8 etcdserver: don't race when waiting for store in TestSnapshot 2016-07-27 15:37:27 -07:00
205f10aeb6 etcdctl: Add support for formating output of key related commands
All v2 key and dir related commands will now honor the global format option if
it was specified. Otherwise, the output will remain the same.
2016-07-27 14:17:19 -07:00
6136b26f38 Merge pull request #6056 from gyuho/gateway
scripts/genproto: use latest grpc-gateway c8ec92d0
2016-07-27 13:37:35 -07:00
273c6f6ba9 Merge pull request #6058 from gyuho/dockerfile-release
Dockerfile-release: add '/var/lib/etcd/'
2016-07-27 13:37:26 -07:00
de99dfb134 Dockerfile-release: add '/var/lib/etcd/'
We have '/var/etcd/' in Dockerfile for historical reason.
Most cases, user store data in '/var/lib/etcd/'.
2016-07-27 13:24:07 -07:00
982e18d80b *: regenerate proto with latest grpc-gateway 2016-07-27 13:21:03 -07:00
6e95ce26fb scripts/genproto: use latest grpc-gateway c8ec92d0 2016-07-27 13:20:15 -07:00
13c2d32061 Merge pull request #6045 from heyitsanthony/fix-version-race
etcdserver, api, membership: don't race on setting version
2016-07-27 08:56:39 -07:00
a75688bd17 Merge pull request #6039 from xiang90/fix_r
raft: hide Campaign rules on applying all entries
2016-07-26 20:52:09 -07:00
3c3b33b00f Merge pull request #5911 from mitake/skip-apply-txn
etcdserver: skip range requests in txn if the result is needless
2016-07-26 20:48:41 -07:00
0090573749 etcdserver: skip range requests in txn if the result is needless
If a server isn't serving txn requests from a client, the server
doesn't need the result of range requests in the txn.

This is a succeeding commit of
https://github.com/coreos/etcd/pull/5689
2016-07-26 19:49:07 -07:00
de2c3ec3db etcdserver, api, membership: don't race on setting version
Fixes #6029
2016-07-26 18:21:40 -07:00
640d511684 Merge pull request #6047 from gyuho/doc
Documentation: fix links in upgrades
2016-07-26 12:54:14 -07:00
914e9266cb Documentation: fix links in upgrades 2016-07-26 12:51:59 -07:00
0d6c028aa2 Merge pull request #6032 from xiang90/gateway
fix a few issues in grpc gateway
2016-07-25 16:48:38 -07:00
484f579905 raft: hide Campaign rules on applying all entries 2016-07-25 15:53:39 -07:00
864947a825 Merge pull request #6037 from heyitsanthony/disable-tracing
etcdmain: disable grpc tracing by default
2016-07-25 15:20:28 -07:00
d6b22323a8 etcdmain: disable grpc tracing by default 2016-07-25 14:23:36 -07:00
6079be7dae Merge pull request #6036 from heyitsanthony/fix-embed-defaults
embed: add listen urls to default config
2016-07-25 12:49:45 -07:00
537057bd11 Merge pull request #6033 from heyitsanthony/watch-adapter
integration: support watch with cluster_proxy tag
2016-07-25 11:34:15 -07:00
42fc36b4d6 embed: add listen urls to default config
Was only setting the advertise urls.
2016-07-25 11:06:03 -07:00
7f0f9795bf Merge pull request #6028 from xiang90/plat
doc: update platform.md
2016-07-25 09:58:55 -07:00
2b4c37f54a grpcproxy: don't leak goroutines on watch proxy shutdown 2016-07-25 09:34:36 -07:00
418bb5e176 grpcproxy: bind clientv3.Watcher on initialization 2016-07-25 09:34:36 -07:00
1cad722a6d integration: support watch apis in cluster_proxy build 2016-07-25 09:34:36 -07:00
ac96963003 clientv3: support creating a Watch from a WatchClient 2016-07-25 09:34:36 -07:00
4fa9363aca grpcproxy: client watch adapter 2016-07-25 09:34:36 -07:00
020a24f1c3 *: regenerate proto for handling eof error 2016-07-23 16:21:44 -07:00
38b69a9301 scripts:genproto.sh: update grpc-gateway 2016-07-23 16:18:42 -07:00
fffa484a9f *: regenerate proto for adding deleterange 2016-07-23 16:17:44 -07:00
b4ce427d45 etcdserverpb: add missing deleterange annotation 2016-07-23 15:59:53 -07:00
116a1b5855 Merge pull request #6031 from gyuho/vet-fix
grpcproxy: define 'watchergroups' in pointer
2016-07-22 17:39:36 -07:00
abbefc9e25 grpcproxy: define 'watchergroups' in pointer
To avoid copying mutex lock values
2016-07-22 16:54:11 -07:00
5b288f6cd1 Merge pull request #6030 from gyuho/raft-raft
raft: replace 'reflect.DeepEqual' with bytes.Equal
2016-07-22 16:53:11 -07:00
4ff6c72257 raft: replace 'reflect.DeepEqual' with bytes.Equal 2016-07-22 16:34:13 -07:00
8f4a36fd32 doc: update platform.md 2016-07-22 11:24:19 -07:00
ec5c5d9ddf Merge pull request #6021 from xiang90/gateway_test
e2e: add gateway test
2016-07-21 16:48:04 -07:00
c603b5e6a1 e2e: add gateway test 2016-07-21 16:19:54 -07:00
2bf55e3a15 Merge pull request #6016 from endocode/kayrus/fix_serve_err_return
embed: Fixed serve() err return
2016-07-21 11:17:08 -07:00
fee9e2b183 embed: Fixed serve() err return 2016-07-21 18:06:08 +02:00
de638a5e4d Merge pull request #5991 from gyuho/manual
v2http: client certificate auth via common name
2016-07-21 08:02:17 -07:00
214c1e55b0 Merge pull request #5999 from jlamillan/master
Add support for formating output of ls command in json or extended fo…
2016-07-21 07:09:52 -07:00
32553c5796 Merge pull request #6006 from dongsupark/dongsu/fix-build-error-go-systemd
etcdmain: correctly check return values from SdNotify()
2016-07-21 07:08:58 -07:00
624187d25f etcdmain: correctly check return values from SdNotify()
SdNotify() now returns 2 values, sent and err. So startEtcdOrProxyV2()
needs to check the 2 return values correctly. As the 2 values are
independent of each other, error checking needs to be slightly updated
too.

SdNotifyNoSocket, which was previously provided by go-systemd, does not
exist any more. In that case (false, nil) will be returned instead.
2016-07-21 09:19:07 +02:00
00c9fe4753 vendor: update go-systemd
Godeps.json and vendor need to be updated according to the newest
go-systemd, as SdNotify() in go-systemd has changed its API.
2016-07-21 08:20:52 +02:00
f18d5433cc etcdctl: Add support for formating output of ls command in json
The ls command will check for and honor json or extended output formats.

Fixes #5993
2016-07-20 18:05:23 -07:00
42db8f55b2 e2e: test auth enabled with CN name cert 2016-07-20 16:55:45 -07:00
e001848270 Merge pull request #5772 from heyitsanthony/integration-proxy
integration: build tag for proxy
2016-07-20 16:28:12 -07:00
5066981cc7 v2http: test with 'ClientCertAuthEnabled' 2016-07-20 16:24:33 -07:00
25aeeb35c3 v2http: set 'ClientCertAuthEnabled' in client.go 2016-07-20 16:24:15 -07:00
68ece954fb v2http: add 'ClientCertAuthEnabled' in handlers 2016-07-20 16:23:41 -07:00
be001c44e8 embed: set 'ClientCertAuthEnabled' 2016-07-20 16:23:24 -07:00
9510bd6036 etcdserver: add 'ClientCertAuthEnabled' option 2016-07-20 16:22:59 -07:00
0f0d32b073 v2http: move 'testdata' from 'etcdhttp' 2016-07-20 16:20:42 -07:00
ff5709bb41 v2http: client cert cn authentication
introduce client certificate authentication using certificate cn.
2016-07-20 16:20:13 -07:00
ab17165352 v2http: refactor http basic auth
refactor http basic auth code to combine basic auth extraction and validation
2016-07-20 16:20:05 -07:00
768ccb8c10 grpcproxy: respect prev_kv flag 2016-07-20 15:58:33 -07:00
becbd9f3d6 test: grpcproxy integration test pass
Run via
PASSES=grpcproxy ./test
2016-07-20 15:58:33 -07:00
7b3d502b96 integration: build tag cluster_proxy for testing backed by proxy 2016-07-20 15:40:33 -07:00
17e0164f57 clientv3: add KV constructor using pb.KVClient 2016-07-20 15:40:33 -07:00
54df540c2c grpcproxy: wrapper from pb.KVServer to pb.KVClient 2016-07-20 15:40:33 -07:00
15aa64eb3c Merge pull request #6009 from heyitsanthony/fix-progress-notify
v3rpc: don't elide next progress notification on progress notification
2016-07-20 13:46:11 -07:00
65d7e7963a Merge pull request #6011 from heyitsanthony/fix-migrate-test
e2e: use a single member cluster in TestCtlV3Migrate
2016-07-20 13:27:17 -07:00
8c8742f43c integration: change timeouts for TestWatchWithProgressNotify
a) 2 * progress interval was passing with dropped notifies
b) waitResponse was waiting so long that it expected a dropped notify
2016-07-20 13:23:44 -07:00
a289bf58e6 e2e: use a single member cluster in TestCtlV3Migrate
Occasionally migrate would fail because a minority node would be missing
v2 keys. Instead, just use a single member cluster.

Fixes #5992
2016-07-20 12:10:09 -07:00
299ebc6137 v3rpc: don't elide next progress notification on progress notification
Fixes #5878
2016-07-20 11:37:20 -07:00
a7b098b26d Merge pull request #6007 from heyitsanthony/fix-watch-test
integration: fix race in TestV3WatchMultipleEventsTxnSynced
2016-07-20 10:34:54 -07:00
82ddeb38b4 integration: fix race in TestV3WatchMultipleEventsTxnSynced
Writes between watcher creation request and reply were being dropped.

Fixes #5789
2016-07-20 09:55:39 -07:00
aba478fb8a Merge pull request #5793 from mitake/auth-revision
auth, etcdserver: introduce revision of authStore for avoiding TOCTOU problem
2016-07-20 09:32:54 -07:00
edcfcae332 Merge pull request #5995 from heyitsanthony/clientv3-retry-stopped
rpctypes, clientv3: retry RPC on EtcdStopped
2016-07-20 08:54:14 -07:00
ef6b74411c auth, etcdserver: introduce revision of authStore for avoiding TOCTOU problem
This commit introduces revision of authStore. The revision number
represents a version of authStore that is incremented by updating auth
related information.

The revision is required for avoiding TOCTOU problems. Currently there
are two types of the TOCTOU problems in v3 auth.

The first one is in ordinal linearizable requests with a sequence like
below ():
1. Request from client CA is processed in follower FA. FA looks up the
   username (let it U) for the request from a token of the request. At
   this time, the request is authorized correctly.
2. Another request from client CB is processed in follower FB. CB
   is for changing U's password.
3. FB forwards the request from CB to the leader before FA. Now U's
   password is updated and the request from CA should be rejected.
4. However, the request from CA is processed by the leader because
   authentication is already done in FA.

For avoiding the above sequence, this commit lets
etcdserverpb.RequestHeader have a member revision. The member is
initialized during authentication by followers and checked in a
leader. If the revision in RequestHeader is lower than the leader's
authStore revision, it means a sequence like above happened. In such a
case, the state machine returns auth.ErrAuthRevisionObsolete. The
error code lets nodes retry their requests.

The second one, a case of serializable range and txn, is more
subtle. Because these requests are processed in follower directly. The
TOCTOU problem can be caused by a sequence like below:
1. Serializable request from client CA is processed in follower FA. At
   first, FA looks up the username (let it U) and its permission
   before actual access to KV.
2. Another request from client CB is processed in follower FB and
   forwarded to the leader. The cluster including FA now commits a log
   entry of the request from CB. Assume the request changed the
   permission or password of U.
3. Now the serializable request from CA is accessing to KV. Even if
   the access is allowed at the point of 1, now it can be invalid
   because of the change introduced in 2.

For avoiding the above sequence, this commit lets the functions of
serializable requests (EtcdServer.Range() and EtcdServer.Txn())
compare the revision in the request header with the latest revision of
authStore after the actual access. If the saved revision is lower than
the latest one, it means the permission can be changed. Although it
would introduce false positives (e.g. changing other user's password),
it prevents the TOCTOU problem. This idea is an implementation of
Anthony's comment:
https://github.com/coreos/etcd/pull/5739#issuecomment-228128254
2016-07-20 14:39:04 +09:00
8abae076d1 rpctypes, clientv3: retry RPC on EtcdStopped
Fixes #5983
2016-07-19 18:29:12 -07:00
6e290abee2 Merge pull request #5998 from heyitsanthony/tls-timeout-conn
transport: wrap timeout listener with tls listener
2016-07-19 17:42:05 -07:00
99e0655c2f transport: wrap timeout listener with tls listener
Otherwise the listener will return timeoutConn's, causing a type
assertion to tls.Conn in net.http to fail so http.Request.TLS is never set.
2016-07-19 16:47:14 -07:00
80c2e4098d Merge pull request #5997 from xiang90/l_r
raft: fix readindex
2016-07-19 15:25:53 -07:00
1c5754f02d raft: fix readindex 2016-07-19 15:00:58 -07:00
e5f0cdcc69 Merge pull request #5984 from xiang90/p_b
grpcproxy: do not send duplicate events to watchers
2016-07-19 12:47:23 -07:00
783675f91c grpcproxy: do not send duplicate events to watchers 2016-07-19 10:14:57 -07:00
d3d954d659 Merge pull request #5990 from xiang90/wcr
clientv3/integration: fix race in TestWatchCompactRevision
2016-07-19 10:08:28 -07:00
e177d9eda2 clientv3/integration: fix race in TestWatchCompactRevision 2016-07-19 09:31:44 -07:00
1bf78476cf Merge pull request #5980 from xiang90/gateway
etcdmian: gateway supports dns srv discovery
2016-07-18 22:10:54 -07:00
c7c5cd324b etcdmian: gateway supports dns srv discovery 2016-07-18 21:53:24 -07:00
fcc96c9ebd Merge pull request #5976 from heyitsanthony/fix-kadc
integration: drain keepalives in TestLeaseKeepAliveCloseAfterDisconnectRevoke
2016-07-18 20:21:44 -07:00
d914502090 Merge pull request #5978 from heyitsanthony/fix-compactor
compactor: make event ordering well-defined in TestPeriodicPause
2016-07-18 20:06:57 -07:00
27a30768e1 integration: drain keepalives in TestLeaseKeepAliveCloseAfterDisconnectRevoke
Fixes #5900
2016-07-18 19:45:59 -07:00
a1d823c2aa compactor: make event ordering well-defined in TestPeriodicPause
Fixes #5847
2016-07-18 19:45:31 -07:00
a61862acc7 Merge pull request #5977 from xiang90/b_proxy
grpcproxy: return interface
2016-07-18 19:12:43 -07:00
5cccb49498 Merge pull request #5979 from heyitsanthony/unix-embed
embed: support unix sockets
2016-07-18 17:05:58 -07:00
5271cf0160 grpcproxy: return interface 2016-07-18 16:47:58 -07:00
8d897fd51f integration: use unix sockets in TestEmbedEtcd
Was getting tcp port conflicts in semphore even after assigning unique ports.

Fixes #5953
2016-07-18 16:42:08 -07:00
e177f391f2 embed: support unix peers 2016-07-18 16:41:41 -07:00
32ed0aa0b3 Merge pull request #5626 from gyuho/stresser
etcd-tester: stress with range, delete
2016-07-18 15:26:34 -07:00
969bcd282b etcd-tester: stress with range, delete 2016-07-18 15:17:08 -07:00
7fbc1e39a6 Merge pull request #5973 from heyitsanthony/purge-test
fileutil: rework purge tests so they don't poll
2016-07-18 14:59:19 -07:00
7bfe75cbf3 Merge pull request #5963 from xiang90/p_filter
grpcproxy: add filter to watcher
2016-07-18 14:56:10 -07:00
3a5e418ff9 Merge pull request #5974 from xiang90/a_proxy
grpcproxy: add auth
2016-07-18 14:55:13 -07:00
cae56f583e Merge pull request #5975 from bts/restrict-channel-types-in-demo
contrib/raftexample: Restrict commit/error channel types in raftNode
2016-07-18 14:54:56 -07:00
e1892e264d grpcproxy: add auth 2016-07-18 14:26:22 -07:00
851d69181d Merge pull request #5972 from xiang90/m_proxy
grpcproxy: add maintenance proxy
2016-07-18 14:24:22 -07:00
b86e723107 contrib/raftexample: Restrict channel types 2016-07-18 17:19:54 -04:00
c920ce0453 fileutil: rework purge tests so they don't poll
Fixes #5966
2016-07-18 14:19:09 -07:00
fd24340903 grpcproxy: add maintenance proxy 2016-07-18 13:31:03 -07:00
58aa3483c3 grpcproxy: add filter to watcher 2016-07-18 13:02:34 -07:00
6dbdf6e55f Merge pull request #5958 from xiang90/lease_proxy
*: add lease proxy
2016-07-18 12:57:14 -07:00
3f74e9db0d *: add lease proxy 2016-07-18 12:06:59 -07:00
b61f882635 Merge pull request #5962 from xiang90/c_p
*: add cluster proxy
2016-07-18 11:55:35 -07:00
1c8b30dbdb Merge pull request #5957 from heyitsanthony/wait-panic
testutil, clientv3: wait for panics in txn tests to complete
2016-07-18 11:18:23 -07:00
dc80ae86d9 Merge pull request #5969 from gyuho/vendor-fix
*: fix 'gogo/protobuf' compatibility issue
2016-07-18 10:56:34 -07:00
8893ab0198 Merge pull request #5965 from endocode/kayrus/build_env
build: allow to build outside the etcd directory
2016-07-18 10:36:27 -07:00
984badeb03 testutil, clientv3: wait for panics in txn tests to complete
Fixes #5901
2016-07-18 09:37:33 -07:00
50be793f09 *: regenerate proto 2016-07-18 09:33:32 -07:00
e7c1594c82 vendor: update 'gogo/protobuf' 2016-07-18 09:33:09 -07:00
6e53f75092 scripts: update gogo/protobuf, use 'gofast' plugin
- Fix https://github.com/coreos/etcd/issues/5942
- Partial fix for https://github.com/coreos/etcd/issues/5865
2016-07-18 09:31:27 -07:00
cab2e45319 build: allow to build outside the etcd directory
And added gopath hack which allows to build without setting any GOPATH
env. Just run the build script when you have installed golang.
2016-07-18 17:40:08 +02:00
336e4f2f28 Merge pull request #5960 from xiang90/a_i
etcdserver: set applied index correctly
2016-07-16 19:56:27 -07:00
d9e939d5d1 Merge pull request #5961 from heyitsanthony/test-e2e-unsupported
e2e: run e2e tests on unsupported architectures
2016-07-16 17:12:04 -07:00
52764f1e5a Merge pull request #5959 from heyitsanthony/build-same-place-xarch
build: build cross-compiled binaries in bin/ by default
2016-07-16 17:11:57 -07:00
bdfbd26e94 *: add cluster proxy 2016-07-16 12:15:32 -07:00
2d761d64a4 etcdserver: set applied index correctly 2016-07-16 11:44:18 -07:00
884452c403 e2e: run e2e tests on unsupported architectures 2016-07-16 10:30:19 -07:00
cb9ee7320b build: build cross-compiled binaries in bin/ by default
Otherwise GOARCH=386 PASSES="build integration" ./test fail on amd64
because the e2e tests can't find the binaries. Added a BINDIR option
for writing the build output to somewhere else, in case it's needed.
2016-07-16 10:21:25 -07:00
331ec82400 Merge pull request #5955 from gyuho/port
integration: new ports for embed test
2016-07-15 20:19:33 -07:00
4a5795b55f integration: new ports for embed test 2016-07-15 16:47:32 -07:00
04155423f5 Merge pull request #5956 from xiang90/fix_renew
*: fix issue found in fast lease renew
2016-07-15 15:53:59 -07:00
4835322aa1 Merge pull request #5954 from heyitsanthony/fix-embed-cfg-validate
embed: fix nil dereference on error to set up initial cluster
2016-07-15 15:41:40 -07:00
b26f1bb2b6 Merge pull request #5951 from gyuho/vendor
*: update grpc-gateway and its import paths
2016-07-15 15:33:18 -07:00
93e3112471 Merge pull request #5910 from xiang90/grpc_proxy
grpcproxy: initial watch proxy
2016-07-15 15:12:21 -07:00
3839a55910 *: fix issue found in fast lease renew 2016-07-15 15:07:15 -07:00
34602b87ec embed: fix nil dereference on error to set up initial cluster 2016-07-15 14:43:00 -07:00
5f3aa43899 grpcproxy: initial watch proxy 2016-07-15 14:30:45 -07:00
ecebe7b979 vendor: change to 'grpc-ecosystem' from 'gengo' 2016-07-15 13:29:05 -07:00
5b92e17e86 *: regenerate proto files 2016-07-15 13:24:19 -07:00
4a7b730e69 scripts: update genproto with grpc-ecosystem 2016-07-15 13:21:41 -07:00
4ec94989cf Documentation: change to grpc-ecosystem 2016-07-15 12:11:30 -07:00
b2b98399fb embed: change import path to 'grpc-ecosystem' 2016-07-15 12:10:38 -07:00
1ba7bb237f Merge pull request #5939 from heyitsanthony/x86-unit-test
travis: unit test on 386
2016-07-15 09:43:31 -07:00
38d38f2635 travis: unit test on 386 2016-07-14 20:23:35 -07:00
1dfafd8fe0 test: separate phases of tests into configurable passes 2016-07-14 20:23:35 -07:00
b50d2395fd Merge pull request #5949 from heyitsanthony/fix-functester-failfast
etcd-tester: add FailFast(false) to grpc calls
2016-07-14 19:50:21 -07:00
0419d3ecf7 etcd-tester: add FailFast(false) to grpc calls 2016-07-14 19:16:41 -07:00
3e21d9f023 Merge pull request #5945 from Infra-Red/patch-bench
hack/benchmark: remove deprecated boom parameter
2016-07-14 18:44:48 -07:00
bf0be0fe5e Merge pull request #5948 from heyitsanthony/upgrade-grpc-cred-clobber
vendor: update grpc
2016-07-14 18:44:35 -07:00
b3f8490660 integration: add FailFast(false) to failing tests 2016-07-14 17:58:58 -07:00
d8f0ef0e80 clientv3: use grpc.FailFast(false) for all calls 2016-07-14 17:58:58 -07:00
d9a8a326df vendor: update grpc
Fixes #5871
2016-07-14 17:58:58 -07:00
07ed4da2ff integration: test grpc error equivalence with Error() 2016-07-14 17:58:49 -07:00
51c5c307fa rpctypes: test error equivalence with Error()
grpc.Errorf() now returns *rpcError, which makes comparisons shallow.
2016-07-14 15:59:06 -07:00
ee78f590ba hack/benchmark: remove deprecated boom parameter
Benchmark script will fail to run with -readall flag provided
2016-07-14 23:49:53 +03:00
575682f593 Merge pull request #5944 from heyitsanthony/mvcc-failpoints
build, backend: add backend commit failpoints
2016-07-14 13:08:25 -07:00
14d7dc940d Merge pull request #5943 from gyuho/pause-before-compaction-2
etcd-tester: pause before compaction, fix races, cleanups
2016-07-14 13:02:53 -07:00
ba2725c2d0 build, backend: add backend commit failpoints 2016-07-14 12:26:35 -07:00
ceb9fe4822 etcd-tester: stop stress before compact, fix races
fix race condition between stresser cancel, start
2016-07-14 12:16:42 -07:00
b0f2e5e64a Merge pull request #5927 from xiang90/pacing
*: deny proposals when there is a huge gap between apply/commit
2016-07-14 11:47:53 -07:00
8e59fb749c etcd-tester: increase default qps, fix cleanup 2016-07-14 11:20:16 -07:00
c0cc161ba8 Merge pull request #5937 from coreos/revert-5876-manual
Revert "Dockerfile: use 'ENTRYPOINT' instead of 'CMD'"
2016-07-14 10:35:21 -07:00
27b03f0ed5 *: deny proposals when there is a huge gap between apply/commit 2016-07-14 10:02:55 -07:00
35d379b052 Merge pull request #5934 from heyitsanthony/fix-publish-race
e2e: wait for every etcd server to publish to cluster
2016-07-13 19:22:08 -07:00
2f7da66d43 Revert "Dockerfile: use 'ENTRYPOINT' instead of 'CMD'" 2016-07-13 19:06:20 -07:00
6b487fb199 e2e: wait for every etcd server to publish to cluster
If etcdctl accesses the cluster before all members are published, it
will get an "unsupported protocol scheme" error. To fix, wait for both
the capabilities and published message.

Fixes #5824
2016-07-13 17:01:43 -07:00
3d109be3b4 Merge pull request #3621 from yichengq/usage-stderr
etcdmain: print usage in stderr when flag.Parse fail
2016-07-13 16:56:26 -07:00
071eac3838 Merge pull request #5918 from xiang90/init
etcdmain: only get initial cluster setting if the member is not initi…
2016-07-13 16:28:32 -07:00
c7881fddc2 Merge pull request #5933 from xiang90/doc
doc: better link for embed etcd
2016-07-13 16:27:32 -07:00
9bcf5a83fb doc: better link for embed etcd 2016-07-13 16:24:56 -07:00
c32dd164fe Merge pull request #5932 from heyitsanthony/nuke-etcdctl-v0.4
etcdctl: remove v0.4 support
2016-07-13 16:18:33 -07:00
8368e6a992 embed: only get initial cluster setting if the member is not init 2016-07-13 16:03:27 -07:00
97ff1abb3e etcdctl: remove 0.4 import command 2016-07-13 15:30:37 -07:00
439b96f090 etcdctl: remove 0.4 peer syncing 2016-07-13 15:26:25 -07:00
06fd46f835 Merge pull request #5928 from xiang90/err_code
rpctypes: use permission deny code for permission deny error
2016-07-13 15:00:02 -07:00
41a98dbd66 Merge pull request #5925 from heyitsanthony/embed-etcdmain
embeddable etcdmain
2016-07-13 13:51:19 -07:00
f6ef6157cc Documentation: link embedding etcd into docs 2016-07-13 13:28:11 -07:00
c0299ca6f4 integration: test embedded etcd 2016-07-13 10:40:03 -07:00
f4f33ea767 etcdmain, embed: export Config and StartEtcd into embed/
Lets programs embed etcd.

Fixes #5430
2016-07-13 10:40:03 -07:00
81d5ae3ce1 rpctypes: use permission deny code for permission deny error 2016-07-13 10:32:10 -07:00
7114a27345 Merge pull request #5922 from xiang90/l_b
tools/benchmark: add benchmark for lease keepalive
2016-07-12 10:48:04 -07:00
8273e1c07e tools/benchmark: add benchmark for lease keepalive 2016-07-12 10:40:56 -07:00
a243064e76 Merge pull request #5924 from xiang90/rm_04
integration: remove upgrade test for etcd0.4
2016-07-12 10:36:16 -07:00
6392ef5c44 integration: remove upgrade test for etcd0.4 2016-07-12 10:13:03 -07:00
7432e9fbe9 Merge pull request #5809 from swingbach/master
raft: make leader transferring workable when quorum check is on
2016-07-12 09:46:18 -07:00
b9f6de9277 Merge pull request #5895 from smallfish/master
etcdserver/api/v2http, Documentation: fix debug pprof index miss / in end
2016-07-12 07:10:53 -07:00
b2c1112288 Merge pull request #5921 from xiang90/r
raft: do not change RecentActive when resetState for progress
2016-07-12 06:54:14 -07:00
c36a40ca15 raft: introduce top-level context in message struct 2016-07-12 16:14:06 +08:00
eb08f2274e raft: do not change RecentActive when resetState for progress 2016-07-11 21:12:14 -07:00
cc26f2c889 Merge pull request #5913 from rboyer/correct-sample-peer-config-file
Correct security configuration for peers in sample config file.
2016-07-11 19:41:41 -07:00
4bc29e2b9c Merge pull request #5902 from mitake/bench-auth
tools: add --user for auth in benchmarks
2016-07-11 18:38:07 -07:00
8a21be721f Merge pull request #5919 from gyuho/raft-lead
raft: set leader id in stepFollower
2016-07-11 18:34:07 -07:00
7edb6bcbe1 etcd: correct security configuration for peers in sample config file 2016-07-11 20:19:27 -05:00
6f3a40cb53 raft: set leader id in stepFollower
Follower has already set its leader ID from
previous append messages from the leader, but
to be consistent,  this adds a line to set its
leader id from leader snapshot message.
2016-07-11 16:37:31 -07:00
ea0a569c4d Merge pull request #5917 from xiang90/rm
*: remove unnecessary data upgrade code
2016-07-11 15:38:07 -07:00
f65e75e4b3 *: remove unnecessary data upgrade code 2016-07-11 15:11:56 -07:00
c0f292e6b8 Merge pull request #5916 from xiang90/ctl
etcdctl: only takes 127.0.0.1:2379 as default endpoint
2016-07-11 13:34:55 -07:00
55ca788efe etcdctl: only takes 127.0.0.1:2379 as default endpoint 2016-07-11 13:28:02 -07:00
2b6f04a58e Merge pull request #5906 from gyuho/release-test
e2e: add basic upgrade tests
2016-07-11 12:42:54 -07:00
a3347e3e68 Merge pull request #5915 from heyitsanthony/doc-new-platform
Documentation: clarify support policy
2016-07-11 12:41:38 -07:00
5b0d52f8c3 Documentation: clarify support policy 2016-07-11 12:10:17 -07:00
e8e561e8f5 e2e: add basic upgrade tests 2016-07-11 11:28:04 -07:00
e5b5cf02d3 test: add upgrade test flag 2016-07-11 11:10:24 -07:00
0d9b6ba0ab raft: fix a few problems 2016-07-11 14:59:53 +08:00
da44e17b58 Merge pull request #5908 from gyuho/raft-cleanup
raft: remove unnecessary type-cast, else-clause
2016-07-10 16:42:42 -07:00
c396b6aaaa raft: remove unnecessary type-cast, else-clause 2016-07-09 22:01:19 -07:00
c47689d98f Merge pull request #5689 from mitake/skip-apply
RFC: etcdserver, pkg: skip needless log entry applying
2016-07-10 01:23:35 +09:00
474eb1b44b Merge pull request #5890 from jaredeh/32bit
Easy 32bit architecture fixes
2016-07-08 13:36:52 -07:00
f78d4713ea etcdserver: atomic access alignment
Most fields accessed with sync/atomic functions are 64bit aligned, but a couple
are not.  This makes comments out of date and therefore misleading.

Affected fields reordered, comments scrubbed and updated.
2016-07-08 11:20:47 -07:00
90889ebc0f raftpb: atomic access alignment
The Entry struct has misaligned fields that are accessed atomically.  The
misalignment is caused by the EntryType enum which the Protocol Buffers
spec forces to be a 32bit int.

Moving the order of the fields without renumbering them in the .proto file
seems to align the go structure without changing the wire format.
2016-07-08 11:13:53 -07:00
df94f58462 raft: atomic access alignment
The relevant structures are properly aligned, however, there is no comment
highlighting the need to keep it aligned as is present elsewhere in the
codebase.

Adding note to keep alignment, in line with similar comments in the codebase.
2016-07-08 11:05:41 -07:00
eded9f5f84 Merge pull request #5887 from gyuho/rate-limiting-stresser
etcd-tester: add rate limits to stresser
2016-07-08 09:32:25 -07:00
a153448b84 tools: add --user for auth in benchmarks
This commit adds --user for auth in benchmarks. Its purpose is
measuring overhead of authentication of v3 API. Of course the given
user must be granted permission of target keys before benchmarking.

Example of a case with no authentication:
% ./benchmark range k1
bench with linearizable range
 10000 / 10000 Booooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo! 100.00%2m10s

Summary:
  Total:        130.1850 secs.
  Slowest:      0.4071 secs.
  Fastest:      0.0064 secs.
  Average:      0.0130 secs.
  Stddev:       0.0079 secs.
  Requests/sec: 76.8138

Response time histogram:
  0.006 [1]     |
  0.046 [9990]  |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  0.087 [3]     |
  0.127 [0]     |
  0.167 [3]     |
  0.207 [2]     |
  0.247 [0]     |
  0.287 [0]     |
  0.327 [0]     |
  0.367 [0]     |
  0.407 [1]     |

Latency distribution:
  10% in 0.0076 secs.
  25% in 0.0086 secs.
  50% in 0.0113 secs.
  75% in 0.0146 secs.
  90% in 0.0209 secs.
  95% in 0.0272 secs.
  99% in 0.0344 secs.

Example of a case with authentication:
% ./benchmark --user=u1:p range k1
bench with linearizable range
 10000 / 10000 Booooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo! 100.00%2m11s

Summary:
  Total:        131.4923 secs.
  Slowest:      0.1637 secs.
  Fastest:      0.0065 secs.
  Average:      0.0131 secs.
  Stddev:       0.0070 secs.
  Requests/sec: 76.0501

Response time histogram:
  0.006 [1]     |
  0.022 [9075]  |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  0.038 [875]   |∎∎∎
  0.054 [36]    |
  0.069 [5]     |
  0.085 [1]     |
  0.101 [1]     |
  0.117 [0]     |
  0.132 [0]     |
  0.148 [5]     |
  0.164 [1]     |

Latency distribution:
  10% in 0.0076 secs.
  25% in 0.0087 secs.
  50% in 0.0114 secs.
  75% in 0.0150 secs.
  90% in 0.0215 secs.
  95% in 0.0272 secs.
  99% in 0.0347 secs.

It seems that current auth mechanism does not introduce visible overhead.
2016-07-08 16:53:05 +09:00
abb20ec51f etcdserver, pkg: skip needless log entry applying
This commit lets etcdserver skip needless log entry applying. If the
result of log applying isn't required by the node (client that issued
the request isn't talking with the node) and the operation has no side
effects, applying can be skipped.

It would contribute to reduce disk I/O on followers and be useful for
a cluster that processes much serializable get.
2016-07-08 15:16:45 +09:00
7c39f41e7c etcd-tester: add rate limiter to stresser 2016-07-07 21:55:12 -07:00
b970e03e19 Merge pull request #5446 from gyuho/gateway_log
tcpproxy: log proxy start
2016-07-07 21:38:01 -07:00
ce8900e3b4 Merge pull request #5899 from heyitsanthony/qos-tuning
Documentation: tuning advice for peer prioritization
2016-07-07 19:48:07 -07:00
e6d15b966c etcdserver/api/v2http, Documentation: fix debug pprof index miss / in end 2016-07-08 10:21:05 +08:00
6f0a67603a Documentation: tuning advice for peer prioritization 2016-07-07 19:14:31 -07:00
a2760c9f49 Merge pull request #5888 from heyitsanthony/v2-one-shot
client: make set/delete one shot operations
2016-07-07 16:41:01 -07:00
c30f89f1d0 client/integration: test v2 client one shot operations 2016-07-07 15:58:58 -07:00
946b3cce1d client: make set/delete one shot operations
Old behavior would retry set and delete even if there's an error. This
can lead to the client returning an error for deleting twice, instead
of returning an error for an interdeterminate state.

Fixes #5832
2016-07-07 15:51:08 -07:00
4f2da16d82 Merge pull request #5897 from xiang90/lock
v3rpc: lock progress and prevKV map correctly
2016-07-07 15:20:37 -07:00
427496ebb8 v3rpc: lock progress and prevKV map correctly 2016-07-07 15:01:05 -07:00
dc2dced129 Merge pull request #5892 from heyitsanthony/auth-cheap-bcrypt
auth: cheap bcrypt for tests
2016-07-07 09:04:57 -07:00
b6a497214e Merge pull request #5883 from westhood/master
clientv3: fix sync base
2016-07-07 07:09:55 -07:00
0b0cbaac09 clientv3: use cheap bcrypt for ExampleAuth and use embedded auth api
Fixes #5783
2016-07-06 23:35:14 -07:00
d4e0e419dc auth: set bcrypt cost to minimum for test cases
DefaultCost makes auth tests 10x more expensive than MinCost.

Fixes #5851
2016-07-06 23:35:06 -07:00
16b0c1d1e1 clientv3: fix sync base
It is not correct to use WithPrefix. Range end will change in every
internal batch.
2016-07-07 12:02:53 +08:00
88a9cf2cea clientv3: add public function to get prefix range end 2016-07-07 10:35:40 +08:00
c4a280e511 Merge pull request #5881 from goby/master
hack: fix etcd execute path in k8s example
2016-07-06 17:04:16 -07:00
244b1d7d20 tcpproxy: add start logging line 2016-07-06 14:21:26 -07:00
1c9e0a0e33 Merge pull request #5886 from heyitsanthony/health-check-str
rafthttp: make health check meaning clearer
2016-07-06 11:32:27 -07:00
4db8f018cb Merge pull request #5885 from xiang90/fix_snap_test
etcdserver: fix TestSnap
2016-07-06 11:21:13 -07:00
3a080143a7 rafthttp: make health check meaning clearer 2016-07-06 10:31:13 -07:00
3451623c71 etcdserver: fix TestSnap 2016-07-06 10:30:15 -07:00
8c4df9a96f hack: fix etcd execute path in k8s example
Change /etcd to /usr/local/bin/etcd
2016-07-06 15:07:00 +08:00
234c30c061 Merge pull request #5880 from xiang90/put_prev
add options to return prev_kv
2016-07-05 21:03:56 -07:00
7ec822107a *: add put prevkv 2016-07-05 20:45:01 -07:00
12bf1a3382 *: rename preserveKVs to prevKv 2016-07-05 20:45:01 -07:00
a78cdeae81 Merge pull request #5877 from heyitsanthony/rsa-fixtures
test: certificate fixes for fedora
2016-07-05 19:34:23 -07:00
929d6ab62c Merge pull request #5850 from xiang90/get_o_kv
*: support get-old-kv in watch
2016-07-05 16:37:24 -07:00
c853704ac9 *: support get-old-kv in watch 2016-07-05 16:17:09 -07:00
c642430fae integration: use RSA certs for testing
Some systems don't support EC due to patent issues, but the tests
should still work.

Fixes #5744
2016-07-05 13:21:21 -07:00
066afd6abd Merge pull request #5876 from gyuho/manual
Dockerfile: use 'ENTRYPOINT' instead of 'CMD'
2016-07-05 11:40:02 -07:00
f19cef960e Dockerfile: use 'ENTRYPOINT' instead of 'CMD'
use entrypoint, so people can specify flags to etcd
without providing the binary.

Signed-off-by: Secret <haichuang221@163.com>
2016-07-05 11:28:19 -07:00
beab76c7a9 Merge pull request #5872 from gyuho/build_doc
Documentation: add instruction on vendoring, build
2016-07-05 10:43:28 -07:00
ff5ddd0909 Documentation: add instruction on vendoring, build
Addressing https://github.com/coreos/etcd/issues/5857#issuecomment-230174840.
2016-07-05 09:55:44 -07:00
660f0fcc3d Merge pull request #5873 from gyuho/raft_updates
raft: fix minor grammar, remove TODO
2016-07-05 09:49:08 -07:00
8c71eb71df Merge pull request #5867 from vmatekole/master
Documentation: Example config amendment
2016-07-05 09:17:22 -07:00
c52bf1ac5d Documentation: Example config amendment 2016-07-05 16:27:47 +02:00
9e0de02fde raft: fix minor grammar, remove TODO
- test 'Term' panic cases (remove TODO)
- fix minor grammar in 'Node' godoc
2016-07-05 07:21:52 -07:00
c7dd74d8d3 Merge pull request #5869 from gyuho/raft_log_test
raft: minor updates and clean up in log.go
2016-07-04 21:51:13 -07:00
881a120453 raft: minor updates and clean up in log.go
- remove redundant test case in log_test.go
- fix test case comment ('equal or larger')
- lastnewi after matching index and term
2016-07-04 16:52:17 -07:00
b566ca225c Merge pull request #5855 from heyitsanthony/fix-windows-wal-init
wal: release wal locks before renaming directory on init
2016-07-03 19:21:23 -07:00
8d99a666f9 Merge pull request #5854 from xiang90/r_f
raft: add features section to readme file
2016-07-03 18:00:31 -07:00
c76dcc5190 raft: add features section to readme file 2016-07-03 17:59:59 -07:00
df61322e5b Merge pull request #5862 from xiang90/fix_sn
etcdserver: commit before sending snapshot
2016-07-03 15:30:20 -07:00
7cb61af245 Merge pull request #5864 from gyuho/raft_cleanup
raft: remove unnecessary reflect.DeepEqual in test
2016-07-03 14:03:08 -07:00
70bf768005 Merge pull request #5861 from xiang90/fix_watch
v3rpc: do not panic on user error for watch
2016-07-03 13:56:33 -07:00
8a8a8253fa etcdserver: commit before sending snapshot 2016-07-03 13:54:05 -07:00
9b5e99efe0 raft: remove unnecessary reflect.DeepEqual in test 2016-07-03 13:42:26 -07:00
13a4056327 v3rpc: do not panic on user error for watch 2016-07-03 08:57:48 -07:00
5991209c2d wal: release wal locks before renaming directory on init
Fixes #5852
2016-07-02 12:14:37 -07:00
7cc4596ebd Merge pull request #5849 from heyitsanthony/fix-compactor-test-races
compactor: make tests deterministic
2016-07-01 23:07:36 -07:00
9405583745 Merge pull request #5830 from heyitsanthony/functest-failpoints
functional-tester: failpoint support
2016-07-01 16:58:36 -07:00
1af7c400d1 compactor: make tests deterministic
Fixes #5847
2016-07-01 16:50:05 -07:00
a5f043c85b etcd-tester: add failpoint cases
Fixes #5754
2016-07-01 15:31:49 -07:00
c6a3048e81 Merge pull request #5848 from gyuho/cluster_version
etcdserver/api: print only major.minor version API
2016-07-01 15:19:08 -07:00
ba023e539a etcdserver/api: print only major.minor version API
Before

2016-07-01 14:57:50.927170 I | api: enabled capabilities for version 3.0.0

After

2016-07-01 14:57:50.927170 I | api: enabled capabilities for version 3.0
2016-07-01 14:58:06 -07:00
c8c5f41a01 Merge pull request #5836 from xiang90/better_d_prev
*: support return prev deleted kv
2016-07-01 14:43:33 -07:00
8d4701bb1d etcd-agent: enable GOFAIL_HTTP endpoint 2016-07-01 14:39:48 -07:00
40c4a7894d *: support return prev deleted kv 2016-07-01 14:01:48 -07:00
ab6f49dc67 Merge pull request #5844 from gyuho/go_version
*: test, docs with go1.6+
2016-07-01 11:27:51 -07:00
a53f538f27 *: test, docs with go1.6+
etcd v3 uses http/2, which doesn't work well with go1.5
2016-07-01 11:16:38 -07:00
d163aefc1a Merge pull request #5823 from davygeek/configcheck
*: fixed some  warning
2016-07-01 10:28:59 -07:00
bf0ab6a2df Merge pull request #5843 from gyuho/manual
Documentation: fix typo in api_grpc_gateway.md
2016-07-01 10:21:45 -07:00
c7a0830a62 Merge pull request #5841 from heyitsanthony/fix-be-semver
etcdserver: exit on missing backend only if semver is >= 3.0.0
2016-07-01 10:14:05 -07:00
b3464a918b Documentation: fix typo in api_grpc_gateway.md 2016-07-01 10:07:14 -07:00
b7f5f8fc99 etcdserver: exit on missing backend only if semver is >= 3.0.0 2016-07-01 09:10:01 -07:00
581f847e06 Merge pull request #5829 from gyuho/ftest
etcd-tester: fix slow leader with injectLatency
2016-06-30 13:46:13 -07:00
0d44947c11 etcd-tester: fix slow leader with injectLatency 2016-06-30 13:41:27 -07:00
78b143b800 Merge pull request #5828 from gyuho/docker
release: fix Dockerfile etcd binary paths
2016-06-30 12:25:51 -07:00
a2f6ec3128 release: fix Dockerfile etcd binary paths
release script uses binary files in 'release/image-docker',
not the ones in "bin/". Tested with v3.0.0 release.
2016-06-30 11:47:33 -07:00
c68d60c99f Merge pull request #5827 from gyuho/version
*: clean up beta in docs, bump to 3.0.0+git
2016-06-30 10:03:28 -07:00
4cd834910e version: bump to v3.0.0+git 2016-06-30 09:43:10 -07:00
cb1a1426b1 *: remove beta from docs 2016-06-30 09:39:52 -07:00
04a9141e45 Merge pull request #5825 from sofuture/jeff/tls-setup-fixes
hack/tls-setup minor fixes
2016-06-30 09:29:41 -07:00
548360b140 Merge pull request #5826 from gyuho/back
Doc: fix typo in dev-guide.md
2016-06-30 09:20:07 -07:00
8ce7481a7f Doc: fix typo in dev-guide.md 2016-06-30 09:14:03 -07:00
74d75a96eb hack: install goreman in tls-setup example 2016-06-30 10:11:47 -06:00
0938c861f0 hack: add tls-setup example generated certs to gitignore 2016-06-30 10:11:28 -06:00
8c96d2573f *: fixed some warning 2016-06-30 23:13:46 +08:00
ad556b7e7d Merge pull request #5821 from davygeek/discovery
discovery: Uniform code style
2016-06-30 07:19:08 -07:00
ea0eab84a4 discovery: Uniform code style 2016-06-30 22:00:01 +08:00
5f4d1c8891 Merge pull request #5819 from gyuho/tester_fix
etcd-tester: handle error in RevHash
2016-06-29 19:36:08 -07:00
dc49016987 etcd-tester: handle error in RevHash 2016-06-29 19:31:45 -07:00
0e137e21bc Merge pull request #5817 from gyuho/ctl_consistent
ctlv3: make flags, commands formats consistent
2016-06-29 16:15:54 -07:00
9b47ca5972 ctlv3: make flags, commands formats consistent
1. Capitalize first letter
2. Remove period at the end

(followed the pattern in linux coreutil man page)
2016-06-29 15:52:06 -07:00
3b80df7f4e Merge pull request #5814 from heyitsanthony/functest-refactor
etcd-tester: refactor cluster and failure code
2016-06-29 15:25:55 -07:00
b7d0497c47 Merge pull request #5807 from xiang90/gproxy
*: initial implementation of grpc-proxy
2016-06-29 13:28:57 -07:00
150321f5ac Merge pull request #5815 from gyuho/raft_test_fix
raft: give correct offset in unstable test
2016-06-29 13:27:14 -07:00
2cc2372165 raft: give correct offset in unstable test
`unstable.entries[i] has raft log position i+unstable.offset`

So, this fixes some test cases by giving them correct
offsets.
2016-06-29 12:29:36 -07:00
6d8c647db8 *: initial implementation of grpc-proxy 2016-06-29 12:06:04 -07:00
5f459a64ce etcd-tester: refactor cluster member handling 2016-06-29 11:25:33 -07:00
402df5bd03 etcd-tester: refactor failure code to reduce code duplication 2016-06-29 11:03:34 -07:00
63f78bf7c8 etcd-tester: refactor round loop 2016-06-29 11:03:34 -07:00
66d195ff75 Merge pull request #5813 from nekto0n/encoder-pointer
rafthttp: use pointers to avoid extra copies upon message encoding
2016-06-29 10:01:27 -07:00
ff908b4ba8 Merge pull request #5812 from heyitsanthony/test-merge-base
test: use merge-base for commit title checking
2016-06-29 09:50:26 -07:00
dc218fb41d test: use merge-base for commit title checking
Otherwise, will compare branch with forked master against upstream master.
2016-06-29 09:28:53 -07:00
fd5bc21522 rafthttp: use pointers to avoid extra copies upon message encoding 2016-06-29 21:17:18 +05:00
7f3b2e23a4 Merge pull request #5811 from davygeek/golintnotice
client: follow golint notice change errors.New to fmt.Errorf
2016-06-29 09:12:49 -07:00
e020b2a228 raft: make leader transferring workable when quorum check is on 2016-06-29 18:24:58 +08:00
8e9097d0c0 Merge pull request #5748 from mitake/auth-disable
disabling auth in v3 API
2016-06-28 22:32:44 -07:00
3b91648070 client: follow golint notice change errors.New to fmt.Errorf and use 'var eps []string' instead 'var make([]string, 0)' 2016-06-29 13:21:49 +08:00
a4667cb863 Merge pull request #5700 from mqliang/proxy-compact
proxy: implement compaction function
2016-06-28 20:49:01 -07:00
2e2f405b1e proxy:replace c with client to improve readability 2016-06-29 11:30:03 +08:00
f28a87d835 proxy: implement compaction 2016-06-29 11:28:10 +08:00
83d9ce3d7c Merge pull request #5803 from gyuho/manual
raft: simplify truncateAndAppend
2016-06-28 20:07:35 -07:00
8f8ff4d519 Merge pull request #5805 from gyuho/ftest
etcd-tester: match ErrTimeout in stresser
2016-06-28 19:51:21 -07:00
745e1e2cf9 e2e: enhance the test case of auth disabling 2016-06-29 11:31:42 +09:00
15f2fd0726 etcd-tester: match ErrTimeout in stresser
Fix https://github.com/coreos/etcd/issues/5804.
2016-06-28 19:20:28 -07:00
df31eab136 raft: simplify truncateAndAppend
truncateAndAppend no need the value of 'after' with subbing one
2016-06-28 18:53:12 -07:00
66107b8653 auth: invalidate every token in disabling auth 2016-06-29 10:31:46 +09:00
8e825de35f Merge pull request #5513 from vikstrous/clustererror
improve error message for ClusterError
2016-06-28 18:15:35 -07:00
8216fdc59f Merge pull request #5799 from xiang90/grpcnaming
clientv3: add grpc naming resolver
2016-06-28 17:51:23 -07:00
4f57bb313f clientv3: add grpc naming resolver 2016-06-28 17:06:58 -07:00
1b2f025414 Merge pull request #5801 from heyitsanthony/fix-watch-closeerr-race
clientv3: only use return closeErr when donec is closed
2016-06-28 17:05:48 -07:00
1db4ee8c61 clientv3: only use closeErr on watch when donec is closed
Fixes #5800
2016-06-28 16:14:09 -07:00
81322b498e Merge pull request #5798 from gyuho/tests_more
Tests other projects to ensure it compiles
2016-06-28 15:22:32 -07:00
ede0b584b8 test: test builds on other projects 2016-06-28 15:03:19 -07:00
da180e0790 Merge pull request #5796 from gyuho/bench
benchmark: fix Compact request
2016-06-28 14:14:07 -07:00
bc6d7659af Merge pull request #5795 from xiang90/filter
*: support watch with filters
2016-06-28 14:07:12 -07:00
ae057ec508 benchmark: fix Compact request 2016-06-28 13:58:28 -07:00
dced92f8bd *: support watch with filters
Now user can filter events with types. The API is also extensible.
It might make sense for the proxy to filter out events based on
more expensive/customized filter.
2016-06-28 13:46:57 -07:00
5f1c763993 Merge pull request #5553 from swingbach/master
raft: implemented read-only query when quorum check is on
2016-06-28 12:47:43 -07:00
ddffdc3e37 Merge pull request #5725 from mitake/auth-not-enabled
auth, etcdserver: let Authenticate() fail if auth isn't enabled
2016-06-28 12:34:54 -07:00
ec232ec9d8 Merge pull request #5787 from heyitsanthony/compact-resp
clientv3, ctl3, clientv3/integration: add compact response to compact
2016-06-28 12:27:42 -07:00
38035c8c13 Merge pull request #5794 from xiang90/fix_c
mvcc: do not hash consistent index
2016-06-28 12:25:32 -07:00
ef9754910e mvcc: do not hash consistent index 2016-06-28 09:36:26 -07:00
1c25aa6c48 clientv3, ctl3, clientv3/integration: add compact response to compact 2016-06-28 09:32:31 -07:00
0cd5c658aa Merge pull request #5788 from gyuho/retry_tester
etcd-tester: match ErrTimeoutDueToLeaderFail
2016-06-27 21:16:07 -07:00
ac68f70843 etcd-tester: match ErrTimeoutDueToLeaderFail
stresser in followers should retry when failure is injected to
their leader.
2016-06-27 20:48:06 -07:00
0faae33ace raft: implemented read-only query when quorum check is on 2016-06-28 10:52:53 +08:00
8df37d53d6 auth, etcdserver: let Authenticate() fail if auth isn't enabled
Successful Authenticate() would be confusing and make trouble shooting
harder if auth isn't enabled in a cluster.
2016-06-26 22:49:23 -07:00
da85108ca2 client: improve error message for ClusterError 2016-06-22 13:13:12 -07:00
34b0736f2c mvcc: Reduce number of allocs when watchableStore if no watchers.
When there are no watchers the number of allocations made while handling
a PUT operation can be reduced by exiting early.
2016-05-11 00:51:00 -07:00
7ba352d9ca etcdmain: print usage in stderr when flag.Parse fail
This fits the requirement of stderr.

I still let `etcd --version` and `etcd --help` print out to stdout
because when users ask explicitly for version/help docs, they expect to see
the doc in stdout.

Ref:
http://www.jstorimer.com/blogs/workingwithcode/7766119-when-to-use-stderr-instead-of-stdout
2015-09-30 14:19:39 -07:00
3026 changed files with 603282 additions and 236861 deletions

View File

@ -1 +0,0 @@
.git

View File

@ -1,8 +1,2 @@
# Bug reporting
A good bug report has some very specific qualities, so please read over our short document on
[reporting bugs][report_bugs] before you submit your bug report.
To ask a question, go ahead and ignore this.
[report_bugs]: ../Documentation/reporting_bugs.md
Please read https://github.com/etcd-io/etcd/blob/master/Documentation/reporting_bugs.md.

View File

@ -1,5 +1,2 @@
# Contributing guidelines
Please read our [contribution workflow][contributing] before submitting a pull request.
[contributing]: ../CONTRIBUTING.md#contribution-flow
Please read https://github.com/etcd-io/etcd/blob/master/CONTRIBUTING.md#contribution-flow.

2
.github/SECURITY.md vendored Normal file
View File

@ -0,0 +1,2 @@
Please read https://github.com/etcd-io/etcd/blob/master/security/README.md.

34
.gitignore vendored
View File

@ -1,12 +1,36 @@
/agent-*
/coverage
/covdir
/gopath
/go-bindata
/machine*
/gopath.proto
/release
/bin
.vagrant
*.etcd
*.log
/etcd
*.swp
/hack/insta-discovery/.env
*.coverprofile
*.test
tools/functional-tester/docker/bin
hack/tls-setup/certs
.idea
/contrib/raftexample/raftexample
/contrib/raftexample/raftexample-*
# TODO: use dep prune
# https://github.com/golang/dep/issues/120#issuecomment-306518546
vendor/**/*
!vendor/**/
!vendor/**/*.go
!vendor/**/*.c
!vendor/**/*.cpp
!vendor/**/*.s
!vendor/**/COPYING*
!vendor/**/PATENTS*
!vendor/**/NOTICE*
!vendor/**/Licence*
!vendor/**/License*
!vendor/**/LICENCE*
!vendor/**/LICENSE*
vendor/**/*_test.go
*.bak

1
.godir
View File

@ -1 +0,0 @@
github.com/coreos/etcd

View File

@ -1,60 +1,94 @@
dist: trusty
language: go
go_import_path: github.com/coreos/etcd
sudo: false
go_import_path: go.etcd.io/etcd
sudo: required
services: docker
go:
- 1.5
- 1.6
- tip
- 1.12.12
notifications:
on_success: never
on_failure: never
env:
global:
- GO15VENDOREXPERIMENT=1
matrix:
- TARGET=amd64
- TARGET=arm64
- TARGET=arm
- TARGET=ppc64le
- TARGET=linux-amd64-fmt
- TARGET=linux-amd64-integration-1-cpu
- TARGET=linux-amd64-integration-2-cpu
- TARGET=linux-amd64-integration-4-cpu
- TARGET=linux-amd64-functional
- TARGET=linux-amd64-unit
- TARGET=all-build
- TARGET=linux-amd64-grpcproxy
- TARGET=linux-386-unit
matrix:
fast_finish: true
allow_failures:
- go: tip
exclude:
- go: 1.5
env: TARGET=arm
- go: 1.5
env: TARGET=ppc64le
- go: 1.6
env: TARGET=arm64
- go: tip
env: TARGET=arm
- go: tip
env: TARGET=arm64
- go: tip
env: TARGET=ppc64le
addons:
apt:
packages:
- libpcap-dev
- libaspell-dev
- libhunspell-dev
- go: 1.12.12
env: TARGET=linux-amd64-grpcproxy
- go: 1.12.12
env: TARGET=linux-386-unit
before_install:
- go get -v github.com/chzchzchz/goword
- go get -v honnef.co/go/simple/cmd/gosimple
- go get -v honnef.co/go/unused/cmd/unused
- if [[ $TRAVIS_GO_VERSION == 1.* ]]; then docker pull gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION}; fi
# disable godep restore override
install:
- pushd cmd/ && go get -t -v ./... && popd
- go get -t -v -d ./...
script:
- echo "TRAVIS_GO_VERSION=${TRAVIS_GO_VERSION}"
- >
if [ "${TARGET}" == "amd64" ]; then
GOARCH="${TARGET}" ./test;
else
GOARCH="${TARGET}" ./build;
fi
case "${TARGET}" in
linux-amd64-fmt)
docker run --rm \
--volume=`pwd`:/go/src/go.etcd.io/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
/bin/bash -c "GOARCH=amd64 PASSES='fmt bom dep' ./test"
;;
linux-amd64-integration-1-cpu)
docker run --rm \
--volume=`pwd`:/go/src/go.etcd.io/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
/bin/bash -c "GOARCH=amd64 CPU=1 PASSES='integration' ./test"
;;
linux-amd64-integration-2-cpu)
docker run --rm \
--volume=`pwd`:/go/src/go.etcd.io/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
/bin/bash -c "GOARCH=amd64 CPU=2 PASSES='integration' ./test"
;;
linux-amd64-integration-4-cpu)
docker run --rm \
--volume=`pwd`:/go/src/go.etcd.io/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
/bin/bash -c "GOARCH=amd64 CPU=4 PASSES='integration' ./test"
;;
linux-amd64-functional)
docker run --rm \
--volume=`pwd`:/go/src/go.etcd.io/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
/bin/bash -c "./build && GOARCH=amd64 PASSES='functional' ./test"
;;
linux-amd64-unit)
docker run --rm \
--volume=`pwd`:/go/src/go.etcd.io/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
/bin/bash -c "GOARCH=amd64 PASSES='unit' ./test"
;;
all-build)
docker run --rm \
--volume=`pwd`:/go/src/go.etcd.io/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
/bin/bash -c "GOARCH=amd64 PASSES='build' ./test \
&& GOARCH=386 PASSES='build' ./test \
&& GO_BUILD_FLAGS='-v' GOOS=darwin GOARCH=amd64 ./build \
&& GO_BUILD_FLAGS='-v' GOOS=windows GOARCH=amd64 ./build \
&& GO_BUILD_FLAGS='-v' GOARCH=arm ./build \
&& GO_BUILD_FLAGS='-v' GOARCH=arm64 ./build \
&& GO_BUILD_FLAGS='-v' GOARCH=ppc64le ./build"
;;
linux-amd64-grpcproxy)
sudo HOST_TMP_DIR=/tmp TEST_OPTS="PASSES='build grpcproxy'" make docker-test
;;
linux-386-unit)
docker run --rm \
--volume=`pwd`:/go/src/go.etcd.io/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \
/bin/bash -c "GOARCH=386 PASSES='unit' ./test"
;;
esac

113
.words Normal file
View File

@ -0,0 +1,113 @@
DefaultMaxRequestBytes
ErrCodeEnhanceYourCalm
ErrTimeout
GoAway
KeepAlive
Keepalive
MiB
ResourceExhausted
RPC
RPCs
parsedTarget
SRV
WithRequireLeader
InfoLevel
args
backoff
blackhole
blackholed
cancelable
cancelation
cluster_proxy
defragment
defragmenting
deleter
dev
/dev/null
dev/null
errClientDisconnected
etcd
gRPC
goroutine
goroutines
healthcheck
hostname
iff
inflight
keepalive
keepalives
hasleader
racey
keyspace
linearization
liveness
linearized
localhost
mutex
prefetching
protobuf
prometheus
rafthttp
repin
rpc
serializable
statusError
teardown
too_many_pings
transactional
uncontended
unprefixed
unlisting
nondeterministically
atomics
transferee
Balancer
lexicographically
lexically
accessors
unbuffered
nils
reconnection
mutators
ConsistentIndexGetter
OutputWALDir
WAL
consistentIndex
todo
saveWALAndSnap
SHA
subconns
nop
SubConns
DNS
passthrough
ccBalancerWrapper
rebalanced
addrConns
subConn
TestBalancerDoNotBlockOnClose
middleware
clusterName
jitter
FIXME
retriable
github
retriable
jitter
WithBackoff
BackoffLinearWithJitter
jitter
WithDialer
WithMax
ServerStreams
BidiStreams
transientFailure
BackoffFunc
CallOptions
PermitWithoutStream
__lostleader
ErrConnClosing
unfreed
grpcAddr
clientURLs

View File

@ -1,11 +1,11 @@
# How to contribute
etcd is Apache 2.0 licensed and accepts contributions via GitHub pull requests. This document outlines some of the conventions on commit message formatting, contact points for developers and other resources to make getting your contribution into etcd easier.
etcd is Apache 2.0 licensed and accepts contributions via GitHub pull requests. This document outlines some of the conventions on commit message formatting, contact points for developers, and other resources to help get contributions into etcd.
# Email and chat
- Email: [etcd-dev](https://groups.google.com/forum/?hl=en#!forum/etcd-dev)
- IRC: #[coreos](irc://irc.freenode.org:6667/#coreos) IRC channel on freenode.org
- IRC: #[etcd](irc://irc.freenode.org:6667/#etcd) IRC channel on freenode.org
## Getting started
@ -14,24 +14,20 @@ etcd is Apache 2.0 licensed and accepts contributions via GitHub pull requests.
## Reporting bugs and creating issues
Reporting bugs is one of the best ways to contribute. However, a good bug report
has some very specific qualities, so please read over our short document on
[reporting bugs](https://github.com/coreos/etcd/blob/master/Documentation/reporting_bugs.md)
before you submit your bug report. This document might contain links known
issues, another good reason to take a look there, before reporting your bug.
Reporting bugs is one of the best ways to contribute. However, a good bug report has some very specific qualities, so please read over our short document on [reporting bugs](https://github.com/etcd-io/etcd/blob/master/Documentation/reporting_bugs.md) before submitting a bug report. This document might contain links to known issues, another good reason to take a look there before reporting a bug.
## Contribution flow
This is a rough outline of what a contributor's workflow looks like:
- Create a topic branch from where you want to base your work. This is usually master.
- Create a topic branch from where to base the contribution. This is usually master.
- Make commits of logical units.
- Make sure your commit messages are in the proper format (see below).
- Push your changes to a topic branch in your fork of the repository.
- Submit a pull request to coreos/etcd.
- Your PR must receive a LGTM from two maintainers found in the MAINTAINERS file.
- Make sure commit messages are in the proper format (see below).
- Push changes in a topic branch to a personal fork of the repository.
- Submit a pull request to etcd-io/etcd.
- The PR must receive a LGTM from two maintainers found in the MAINTAINERS file.
Thanks for your contributions!
Thanks for contributing!
### Code style
@ -46,10 +42,13 @@ questions: what changed and why. The subject line should feature the what and
the body of the commit should describe the why.
```
scripts: add the test-cluster command
etcdserver: add grpc interceptor to log info on incoming requests
this uses tmux to setup a test cluster that you can easily kill and
start for debugging.
To improve debuggability of etcd v3. Added a grpc interceptor to log
info on incoming requests to etcd server. The log output includes
remote client info, request content (with value field redacted), request
handling latency, response size, etc. Uses zap logger if available,
otherwise uses capnslog.
Fixes #38
```
@ -57,14 +56,38 @@ Fixes #38
The format can be described more formally as follows:
```
<subsystem>: <what changed>
<package>: <what changed>
<BLANK LINE>
<why this change was made>
<BLANK LINE>
<footer>
```
The first line is the subject and should be no longer than 70 characters, the
second line is always blank, and other lines should be wrapped at 80 characters.
This allows the message to be easier to read on GitHub as well as in various
git tools.
The first line is the subject and should be no longer than 70 characters, the second
line is always blank, and other lines should be wrapped at 80 characters. This allows
the message to be easier to read on GitHub as well as in various git tools.
### Pull request across multiple files and packages
If multiple files in a package are changed in a pull request for example:
```
etcdserver/config.go
etcdserver/corrupt.go
```
At the end of the review process if multiple commits exist for a single package they
should be squashed/rebased into a single commit before being merged.
```
etcdserver: <what changed>
[..]
```
If a pull request spans many packages these commits should be squashed/rebased into a single
commit using message with a more generic `*:` prefix.
```
*: <what changed>
[..]
```

View File

@ -1,6 +0,0 @@
FROM golang
ADD . /go/src/github.com/coreos/etcd
ADD cmd/vendor /go/src/github.com/coreos/etcd/vendor
RUN go install github.com/coreos/etcd
EXPOSE 2379 2380
ENTRYPOINT ["etcd"]

View File

@ -1,8 +1,15 @@
FROM alpine:latest
FROM k8s.gcr.io/debian-base:v1.0.0
ADD bin/etcd /usr/local/bin/
ADD bin/etcdctl /usr/local/bin/
ADD etcd /usr/local/bin/
ADD etcdctl /usr/local/bin/
RUN mkdir -p /var/etcd/
RUN mkdir -p /var/lib/etcd/
# Alpine Linux doesn't use pam, which means that there is no /etc/nsswitch.conf,
# but Golang relies on /etc/nsswitch.conf to check the order of DNS resolving
# (see https://github.com/golang/go/commit/9dee7771f561cf6aee081c0af6658cc81fac3918)
# To fix this we just create /etc/nsswitch.conf and add the following line:
RUN echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf
EXPOSE 2379 2380

11
Dockerfile-release.arm64 Normal file
View File

@ -0,0 +1,11 @@
FROM k8s.gcr.io/debian-base-arm64:v1.0.0
ADD etcd /usr/local/bin/
ADD etcdctl /usr/local/bin/
ADD var/etcd /var/etcd
ADD var/lib/etcd /var/lib/etcd
EXPOSE 2379 2380
# Define default command.
CMD ["/usr/local/bin/etcd"]

View File

@ -0,0 +1,11 @@
FROM k8s.gcr.io/debian-base-ppc64le:v1.0.0
ADD etcd /usr/local/bin/
ADD etcdctl /usr/local/bin/
ADD var/etcd /var/etcd
ADD var/lib/etcd /var/lib/etcd
EXPOSE 2379 2380
# Define default command.
CMD ["/usr/local/bin/etcd"]

1
Documentation/README.md Symbolic link
View File

@ -0,0 +1 @@
docs.md

View File

@ -1,3 +1,7 @@
---
title: Benchmarking etcd v2.1.0
---
## Physical machines
GCE n1-highcpu-2 machine type
@ -14,7 +18,7 @@ GCE n1-highcpu-2 machine type
## Testing
Bootstrap another machine and use the [boom HTTP benchmark tool][boom] to send requests to each etcd member. Check the [benchmark hacking guide][hack-benchmark] for detailed instructions.
Bootstrap another machine and use the [hey HTTP benchmark tool][hey] to send requests to each etcd member. Check the [benchmark hacking guide][hack-benchmark] for detailed instructions.
## Performance
@ -48,5 +52,5 @@ Bootstrap another machine and use the [boom HTTP benchmark tool][boom] to send r
| 256 | 64 | all servers | 1033 | 121.5 |
| 256 | 256 | all servers | 3061 | 119.3 |
[boom]: https://github.com/rakyll/boom
[hack-benchmark]: /hack/benchmark/
[hey]: https://github.com/rakyll/hey
[hack-benchmark]: https://github.com/coreos/etcd/tree/master/hack/benchmark

View File

@ -1,4 +1,6 @@
# Benchmarking etcd v2.2.0
---
title: Benchmarking etcd v2.2.0
---
## Physical Machines
@ -24,9 +26,9 @@ Go OS/Arch: linux/amd64
## Testing
Bootstrap another machine, outside of the etcd cluster, and run the [`boom` HTTP benchmark tool](https://github.com/rakyll/boom) with a connection reuse patch to send requests to each etcd cluster member. See the [benchmark instructions](../../hack/benchmark/) for the patch and the steps to reproduce our procedures.
Bootstrap another machine, outside of the etcd cluster, and run the [`hey` HTTP benchmark tool](https://github.com/rakyll/hey) with a connection reuse patch to send requests to each etcd cluster member. See the [benchmark instructions](../../hack/benchmark/) for the patch and the steps to reproduce our procedures.
The performance is calulated through results of 100 benchmark rounds.
The performance is calculated through results of 100 benchmark rounds.
## Performance
@ -66,4 +68,4 @@ The performance is calulated through results of 100 benchmark rounds.
- Write QPS to cluster leaders seems to be increased by a small margin. This is because the main loop and entry apply loops were decoupled in the etcd raft logic, eliminating several blocks between them.
- Write QPS to all members seems to be increased by a significant margin, because followers now receive the latest commit index sooner, and commit proposals more quickly.
- Write QPS to all members seems to be increased by a significant margin, because followers now receive the latest commit index sooner, and commit proposals more quickly.

View File

@ -1,4 +1,8 @@
## Physical machines
---
title: Benchmarking etcd v2.2.0-rc
---
## Physical machine
GCE n1-highcpu-2 machine type
@ -24,7 +28,7 @@ Also, we use 3 etcd 2.1.0 alpha-stage members to form cluster to get base perfor
## Testing
Bootstrap another machine and use the [boom HTTP benchmark tool][boom] to send requests to each etcd member. Check the [benchmark hacking guide][hack-benchmark] for detailed instructions.
Bootstrap another machine and use the [hey HTTP benchmark tool][hey] to send requests to each etcd member. Check the [benchmark hacking guide][hack-benchmark] for detailed instructions.
## Performance
@ -66,7 +70,7 @@ Bootstrap another machine and use the [boom HTTP benchmark tool][boom] to send r
- write QPS to all servers is increased by 30~80% because follower could receive latest commit index earlier and commit proposals faster.
[boom]: https://github.com/rakyll/boom
[hey]: https://github.com/rakyll/hey
[c7146bd5]: https://github.com/coreos/etcd/commits/c7146bd5f2c73716091262edc638401bb8229144
[etcd-2.1-benchmark]: etcd-2-1-0-alpha-benchmarks.md
[hack-benchmark]: /hack/benchmark/
[hack-benchmark]: ../../hack/benchmark/

View File

@ -1,3 +1,7 @@
---
title: Benchmarking etcd v2.2.0-rc-memory
---
## Physical machine
GCE n1-standard-2 machine type
@ -39,7 +43,7 @@ The length of key name is always 64 bytes, which is a reasonable length of avera
## Data Size Threshold
- When etcd reaches data size threshold, it may trigger leader election easily and drop part of proposals.
- At most cases, etcd cluster should work smoothly if it doesn't hit the threshold. If it doesn't work well due to insufficient resources, you need to decrease its data size.
- For most cases, the etcd cluster should work smoothly if it doesn't hit the threshold. If it doesn't work well due to insufficient resources, decrease its data size.
| value bytes | key number limitation | suggested data size threshold(MB) | consumed RSS(MB) |
|-------------|-----------------------|-----------------------------------|------------------|

View File

@ -1,3 +1,7 @@
---
title: Benchmarking etcd v3
---
## Physical machines
GCE n1-highcpu-2 machine type
@ -39,4 +43,4 @@ The performance is nearly the same as the one with empty server handler.
The performance with empty server handler is not affected by one put. So the
performance downgrade should be caused by storage package.
[etcd-v3-benchmark]: /tools/benchmark/
[etcd-v3-benchmark]: ../../tools/benchmark/

View File

@ -1,4 +1,6 @@
# Watch Memory Usage Benchmark
---
title: Watch Memory Usage Benchmark
---
*NOTE*: The watch features are under active development, and their memory usage may change as that development progresses. We do not expect it to significantly increase beyond the figures stated below.

View File

@ -1,4 +1,6 @@
# Storage Memory Usage Benchmark
---
title: Storage Memory Usage Benchmark
---
<!---todo: link storage to storage design doc-->
Two components of etcd storage consume physical memory. The etcd process allocates an *in-memory index* to speed key lookup. The process's *page cache*, managed by the operating system, stores recently-accessed data from disk for quick re-use.

View File

@ -1,4 +1,6 @@
# Branch management
---
title: Branch management
---
## Guide
@ -7,7 +9,7 @@
* Backwards-compatible bug fixes should target the master branch and subsequently be ported to stable branches.
* Once the master branch is ready for release, it will be tagged and become the new stable branch.
The etcd team has adopted a *rolling release model* and supports one stable version of etcd.
The etcd team has adopted a *rolling release model* and supports two stable versions of etcd.
### Master branch
@ -15,12 +17,12 @@ The `master` branch is our development branch. All new features land here first.
To try new and experimental features, pull `master` and play with it. Note that `master` may not be stable because new features may introduce bugs.
Before the release of the next stable version, feature PRs will be frozen. We will focus on the testing, bug-fix and documentation for one to two weeks.
Before the release of the next stable version, feature PRs will be frozen. A [release manager](./dev-internal/release.md#release-management) will be assigned to major/minor version and will lead the etcd community in test, bug-fix and documentation of the release for one to two weeks.
### Stable branches
All branches with prefix `release-` are considered _stable_ branches.
After every minor release (http://semver.org/), we will have a new stable branch for that release. We will keep fixing the backwards-compatible bugs for the latest stable release, but not previous releases. The _patch_ release, incorporating any bug fixes, will be once every two weeks, given any patches.
After every minor release (http://semver.org/), we will have a new stable branch for that release, managed by a [patch release manager](./dev-internal/release.md#release-management). We will keep fixing the backwards-compatible bugs for the latest two stable releases. A _patch_ release to each supported release branch, incorporating any bug fixes, will be once every two weeks, given any patches.
[master]: https://github.com/coreos/etcd/tree/master

View File

@ -1,4 +1,6 @@
# Demo
---
title: Demo
---
This series of examples shows the basic procedures for working with an etcd cluster.
@ -269,7 +271,10 @@ etcdctl --endpoints=$ENDPOINTS endpoint health
<img src="https://storage.googleapis.com/etcd/demo/11_etcdctl_snapshot_2016051001.gif" alt="11_etcdctl_snapshot_2016051001"/>
Snapshot can only be requested from one etcd node, so `--endpoints` flag should contain only one endpoint.
```
ENDPOINTS=$HOST_1:2379
etcdctl --endpoints=$ENDPOINTS snapshot save my.db
Snapshot saved at my.db

View File

@ -0,0 +1,168 @@
### etcd concurrency API Reference
This is a generated documentation. Please read the proto files for more.
##### service `Lock` (etcdserver/api/v3lock/v3lockpb/v3lock.proto)
The lock service exposes client-side locking facilities as a gRPC interface.
| Method | Request Type | Response Type | Description |
| ------ | ------------ | ------------- | ----------- |
| Lock | LockRequest | LockResponse | Lock acquires a distributed shared lock on a given named lock. On success, it will return a unique key that exists so long as the lock is held by the caller. This key can be used in conjunction with transactions to safely ensure updates to etcd only occur while holding lock ownership. The lock is held until Unlock is called on the key or the lease associate with the owner expires. |
| Unlock | UnlockRequest | UnlockResponse | Unlock takes a key returned by Lock and releases the hold on lock. The next Lock caller waiting for the lock will then be woken up and given ownership of the lock. |
##### message `LockRequest` (etcdserver/api/v3lock/v3lockpb/v3lock.proto)
| Field | Description | Type |
| ----- | ----------- | ---- |
| name | name is the identifier for the distributed shared lock to be acquired. | bytes |
| lease | lease is the ID of the lease that will be attached to ownership of the lock. If the lease expires or is revoked and currently holds the lock, the lock is automatically released. Calls to Lock with the same lease will be treated as a single acquisition; locking twice with the same lease is a no-op. | int64 |
##### message `LockResponse` (etcdserver/api/v3lock/v3lockpb/v3lock.proto)
| Field | Description | Type |
| ----- | ----------- | ---- |
| header | | etcdserverpb.ResponseHeader |
| key | key is a key that will exist on etcd for the duration that the Lock caller owns the lock. Users should not modify this key or the lock may exhibit undefined behavior. | bytes |
##### message `UnlockRequest` (etcdserver/api/v3lock/v3lockpb/v3lock.proto)
| Field | Description | Type |
| ----- | ----------- | ---- |
| key | key is the lock ownership key granted by Lock. | bytes |
##### message `UnlockResponse` (etcdserver/api/v3lock/v3lockpb/v3lock.proto)
| Field | Description | Type |
| ----- | ----------- | ---- |
| header | | etcdserverpb.ResponseHeader |
##### service `Election` (etcdserver/api/v3election/v3electionpb/v3election.proto)
The election service exposes client-side election facilities as a gRPC interface.
| Method | Request Type | Response Type | Description |
| ------ | ------------ | ------------- | ----------- |
| Campaign | CampaignRequest | CampaignResponse | Campaign waits to acquire leadership in an election, returning a LeaderKey representing the leadership if successful. The LeaderKey can then be used to issue new values on the election, transactionally guard API requests on leadership still being held, and resign from the election. |
| Proclaim | ProclaimRequest | ProclaimResponse | Proclaim updates the leader's posted value with a new value. |
| Leader | LeaderRequest | LeaderResponse | Leader returns the current election proclamation, if any. |
| Observe | LeaderRequest | LeaderResponse | Observe streams election proclamations in-order as made by the election's elected leaders. |
| Resign | ResignRequest | ResignResponse | Resign releases election leadership so other campaigners may acquire leadership on the election. |
##### message `CampaignRequest` (etcdserver/api/v3election/v3electionpb/v3election.proto)
| Field | Description | Type |
| ----- | ----------- | ---- |
| name | name is the election's identifier for the campaign. | bytes |
| lease | lease is the ID of the lease attached to leadership of the election. If the lease expires or is revoked before resigning leadership, then the leadership is transferred to the next campaigner, if any. | int64 |
| value | value is the initial proclaimed value set when the campaigner wins the election. | bytes |
##### message `CampaignResponse` (etcdserver/api/v3election/v3electionpb/v3election.proto)
| Field | Description | Type |
| ----- | ----------- | ---- |
| header | | etcdserverpb.ResponseHeader |
| leader | leader describes the resources used for holding leadereship of the election. | LeaderKey |
##### message `LeaderKey` (etcdserver/api/v3election/v3electionpb/v3election.proto)
| Field | Description | Type |
| ----- | ----------- | ---- |
| name | name is the election identifier that correponds to the leadership key. | bytes |
| key | key is an opaque key representing the ownership of the election. If the key is deleted, then leadership is lost. | bytes |
| rev | rev is the creation revision of the key. It can be used to test for ownership of an election during transactions by testing the key's creation revision matches rev. | int64 |
| lease | lease is the lease ID of the election leader. | int64 |
##### message `LeaderRequest` (etcdserver/api/v3election/v3electionpb/v3election.proto)
| Field | Description | Type |
| ----- | ----------- | ---- |
| name | name is the election identifier for the leadership information. | bytes |
##### message `LeaderResponse` (etcdserver/api/v3election/v3electionpb/v3election.proto)
| Field | Description | Type |
| ----- | ----------- | ---- |
| header | | etcdserverpb.ResponseHeader |
| kv | kv is the key-value pair representing the latest leader update. | mvccpb.KeyValue |
##### message `ProclaimRequest` (etcdserver/api/v3election/v3electionpb/v3election.proto)
| Field | Description | Type |
| ----- | ----------- | ---- |
| leader | leader is the leadership hold on the election. | LeaderKey |
| value | value is an update meant to overwrite the leader's current value. | bytes |
##### message `ProclaimResponse` (etcdserver/api/v3election/v3electionpb/v3election.proto)
| Field | Description | Type |
| ----- | ----------- | ---- |
| header | | etcdserverpb.ResponseHeader |
##### message `ResignRequest` (etcdserver/api/v3election/v3electionpb/v3election.proto)
| Field | Description | Type |
| ----- | ----------- | ---- |
| leader | leader is the leadership to relinquish by resignation. | LeaderKey |
##### message `ResignResponse` (etcdserver/api/v3election/v3electionpb/v3election.proto)
| Field | Description | Type |
| ----- | ----------- | ---- |
| header | | etcdserverpb.ResponseHeader |
##### message `Event` (mvcc/mvccpb/kv.proto)
| Field | Description | Type |
| ----- | ----------- | ---- |
| type | type is the kind of event. If type is a PUT, it indicates new data has been stored to the key. If type is a DELETE, it indicates the key was deleted. | EventType |
| kv | kv holds the KeyValue for the event. A PUT event contains current kv pair. A PUT event with kv.Version=1 indicates the creation of a key. A DELETE/EXPIRE event contains the deleted key with its modification revision set to the revision of deletion. | KeyValue |
| prev_kv | prev_kv holds the key-value pair before the event happens. | KeyValue |
##### message `KeyValue` (mvcc/mvccpb/kv.proto)
| Field | Description | Type |
| ----- | ----------- | ---- |
| key | key is the key in bytes. An empty key is not allowed. | bytes |
| create_revision | create_revision is the revision of last creation on this key. | int64 |
| mod_revision | mod_revision is the revision of last modification on this key. | int64 |
| version | version is the version of the key. A deletion resets the version to zero and any modification of the key increases its version. | int64 |
| value | value is the value held by the key, in bytes. | bytes |
| lease | lease is the ID of the lease that attached to key. When the attached lease expires, the key will be deleted. If lease is 0, then no lease is attached to the key. | int64 |

View File

@ -1,12 +1,29 @@
---
title: Why gRPC gateway
---
## Why grpc-gateway
etcd v3 uses [gRPC][grpc] for its messaging protocol. The etcd project includes a gRPC-based [Go client][go-client] and a command line utility, [etcdctl][etcdctl], for communicating with an etcd cluster through gRPC. For languages with no gRPC support, etcd provides a JSON [gRPC gateway][grpc-gateway]. This gateway serves a RESTful proxy that translates HTTP/JSON requests into gRPC messages.
etcd v3 uses [gRPC][grpc] for its messaging protocol. The etcd project includes a gRPC-based [Go client][go-client] and a command line utility, [etcdctl][etcdctl], for communicating with an etcd cluster through gRPC. For languages with no gRPC support, etcd provides a JSON [grpc-gateway][grpc-gateway]. This gateway serves a RESTful proxy that translates HTTP/JSON requests into gRPC messages.
## Using gRPC gateway
The gateway accepts a [JSON mapping][json-mapping] for etcd's [protocol buffer][api-ref] message definitions. Note that `key` and `value` fields are defined as byte arrays and therefore must be base64 encoded in JSON. The following examples use `curl`, but any HTTP/JSON client should work all the same.
## Using grpc-gateway
### Notes
The gateway accepts a [JSON mapping][json-mapping] for etcd's [protocol buffer][api-ref] message definitions. Note that `key` and `value` fields are defined as byte arrays and therefore must be base64 encoded in JSON.
gRPC gateway endpoint has changed since etcd v3.3:
- etcd v3.2 or before uses only `[CLIENT-URL]/v3alpha/*`.
- etcd v3.3 uses `[CLIENT-URL]/v3beta/*` while keeping `[CLIENT-URL]/v3alpha/*`.
- etcd v3.4 uses `[CLIENT-URL]/v3/*` while keeping `[CLIENT-URL]/v3beta/*`.
- **`[CLIENT-URL]/v3alpha/*` is deprecated**.
- etcd v3.5 or later uses only `[CLIENT-URL]/v3/*`.
- **`[CLIENT-URL]/v3beta/*` is deprecated**.
gRPC-gateway does not support authentication using TLS Common Name.
### Put and get keys
Use the `/v3/kv/range` and `/v3/kv/put` services to read and write keys:
```bash
<<COMMENT
@ -15,24 +32,106 @@ foo is 'Zm9v' in Base64
bar is 'YmFy'
COMMENT
curl -L http://localhost:2379/v3alpha/kv/put \
-X POST -d '{"key": "Zm9v", "value": "YmFy"}'
curl -L http://localhost:2379/v3/kv/put \
-X POST -d '{"key": "Zm9v", "value": "YmFy"}'
# {"header":{"cluster_id":"12585971608760269493","member_id":"13847567121247652255","revision":"2","raft_term":"3"}}
curl -L http://localhost:2379/v3alpha/kv/range \
-X POST -d '{"key": "Zm9v"}'
curl -L http://localhost:2379/v3/kv/range \
-X POST -d '{"key": "Zm9v"}'
# {"header":{"cluster_id":"12585971608760269493","member_id":"13847567121247652255","revision":"2","raft_term":"3"},"kvs":[{"key":"Zm9v","create_revision":"2","mod_revision":"2","version":"1","value":"YmFy"}],"count":"1"}
# get all keys prefixed with "foo"
curl -L http://localhost:2379/v3/kv/range \
-X POST -d '{"key": "Zm9v", "range_end": "Zm9w"}'
# {"header":{"cluster_id":"12585971608760269493","member_id":"13847567121247652255","revision":"2","raft_term":"3"},"kvs":[{"key":"Zm9v","create_revision":"2","mod_revision":"2","version":"1","value":"YmFy"}],"count":"1"}
```
### Watch keys
Use the `/v3/watch` service to watch keys:
```bash
curl -N http://localhost:2379/v3/watch \
-X POST -d '{"create_request": {"key":"Zm9v"} }' &
# {"result":{"header":{"cluster_id":"12585971608760269493","member_id":"13847567121247652255","revision":"1","raft_term":"2"},"created":true}}
curl -L http://localhost:2379/v3/kv/put \
-X POST -d '{"key": "Zm9v", "value": "YmFy"}' >/dev/null 2>&1
# {"result":{"header":{"cluster_id":"12585971608760269493","member_id":"13847567121247652255","revision":"2","raft_term":"2"},"events":[{"kv":{"key":"Zm9v","create_revision":"2","mod_revision":"2","version":"1","value":"YmFy"}}]}}
```
### Transactions
Issue a transaction with `/v3/kv/txn`:
```bash
# target CREATE
curl -L http://localhost:2379/v3/kv/txn \
-X POST \
-d '{"compare":[{"target":"CREATE","key":"Zm9v","createRevision":"2"}],"success":[{"requestPut":{"key":"Zm9v","value":"YmFy"}}]}'
# {"header":{"cluster_id":"12585971608760269493","member_id":"13847567121247652255","revision":"3","raft_term":"2"},"succeeded":true,"responses":[{"response_put":{"header":{"revision":"3"}}}]}
```
```bash
# target VERSION
curl -L http://localhost:2379/v3/kv/txn \
-X POST \
-d '{"compare":[{"version":"4","result":"EQUAL","target":"VERSION","key":"Zm9v"}],"success":[{"requestRange":{"key":"Zm9v"}}]}'
# {"header":{"cluster_id":"14841639068965178418","member_id":"10276657743932975437","revision":"6","raft_term":"3"},"succeeded":true,"responses":[{"response_range":{"header":{"revision":"6"},"kvs":[{"key":"Zm9v","create_revision":"2","mod_revision":"6","version":"4","value":"YmF6"}],"count":"1"}}]}
```
### Authentication
Set up authentication with the `/v3/auth` service:
```bash
# create root user
curl -L http://localhost:2379/v3/auth/user/add \
-X POST -d '{"name": "root", "password": "pass"}'
# {"header":{"cluster_id":"14841639068965178418","member_id":"10276657743932975437","revision":"1","raft_term":"2"}}
# create root role
curl -L http://localhost:2379/v3/auth/role/add \
-X POST -d '{"name": "root"}'
# {"header":{"cluster_id":"14841639068965178418","member_id":"10276657743932975437","revision":"1","raft_term":"2"}}
# grant root role
curl -L http://localhost:2379/v3/auth/user/grant \
-X POST -d '{"user": "root", "role": "root"}'
# {"header":{"cluster_id":"14841639068965178418","member_id":"10276657743932975437","revision":"1","raft_term":"2"}}
# enable auth
curl -L http://localhost:2379/v3/auth/enable -X POST -d '{}'
# {"header":{"cluster_id":"14841639068965178418","member_id":"10276657743932975437","revision":"1","raft_term":"2"}}
```
Authenticate with etcd for an authentication token using `/v3/auth/authenticate`:
```bash
# get the auth token for the root user
curl -L http://localhost:2379/v3/auth/authenticate \
-X POST -d '{"name": "root", "password": "pass"}'
# {"header":{"cluster_id":"14841639068965178418","member_id":"10276657743932975437","revision":"1","raft_term":"2"},"token":"sssvIpwfnLAcWAQH.9"}
```
Set the `Authorization` header to the authentication token to fetch a key using authentication credentials:
```bash
curl -L http://localhost:2379/v3/kv/put \
-H 'Authorization : sssvIpwfnLAcWAQH.9' \
-X POST -d '{"key": "Zm9v", "value": "YmFy"}'
# {"header":{"cluster_id":"14841639068965178418","member_id":"10276657743932975437","revision":"2","raft_term":"2"}}
```
## Swagger
Generated [Swapper][swagger] API definitions can be found at [rpc.swagger.json][swagger-doc].
Generated [Swagger][swagger] API definitions can be found at [rpc.swagger.json][swagger-doc].
[api-ref]: ./api_reference_v3.md
[go-client]: https://github.com/coreos/etcd/tree/master/clientv3
[etcdctl]: https://github.com/coreos/etcd/tree/master/etcdctl
[grpc]: http://www.grpc.io/
[grpc-gateway]: https://github.com/gengo/grpc-gateway
[grpc]: https://www.grpc.io/
[grpc-gateway]: https://github.com/grpc-ecosystem/grpc-gateway
[json-mapping]: https://developers.google.com/protocol-buffers/docs/proto3#json
[swagger]: http://swagger.io/
[swagger-doc]: apispec/swagger/rpc.swagger.json

View File

@ -11,14 +11,14 @@ This is a generated documentation. Please read the proto files for more.
| AuthEnable | AuthEnableRequest | AuthEnableResponse | AuthEnable enables authentication. |
| AuthDisable | AuthDisableRequest | AuthDisableResponse | AuthDisable disables authentication. |
| Authenticate | AuthenticateRequest | AuthenticateResponse | Authenticate processes an authenticate request. |
| UserAdd | AuthUserAddRequest | AuthUserAddResponse | UserAdd adds a new user. |
| UserAdd | AuthUserAddRequest | AuthUserAddResponse | UserAdd adds a new user. User name cannot be empty. |
| UserGet | AuthUserGetRequest | AuthUserGetResponse | UserGet gets detailed user information. |
| UserList | AuthUserListRequest | AuthUserListResponse | UserList gets a list of all users. |
| UserDelete | AuthUserDeleteRequest | AuthUserDeleteResponse | UserDelete deletes a specified user. |
| UserChangePassword | AuthUserChangePasswordRequest | AuthUserChangePasswordResponse | UserChangePassword changes the password of a specified user. |
| UserGrantRole | AuthUserGrantRoleRequest | AuthUserGrantRoleResponse | UserGrant grants a role to a specified user. |
| UserRevokeRole | AuthUserRevokeRoleRequest | AuthUserRevokeRoleResponse | UserRevokeRole revokes a role of specified user. |
| RoleAdd | AuthRoleAddRequest | AuthRoleAddResponse | RoleAdd adds a new role. |
| RoleAdd | AuthRoleAddRequest | AuthRoleAddResponse | RoleAdd adds a new role. Role name cannot be empty. |
| RoleGet | AuthRoleGetRequest | AuthRoleGetResponse | RoleGet gets detailed role information. |
| RoleList | AuthRoleListRequest | AuthRoleListResponse | RoleList gets lists of all roles. |
| RoleDelete | AuthRoleDeleteRequest | AuthRoleDeleteResponse | RoleDelete deletes a specified role. |
@ -35,13 +35,12 @@ This is a generated documentation. Please read the proto files for more.
| MemberRemove | MemberRemoveRequest | MemberRemoveResponse | MemberRemove removes an existing member from the cluster. |
| MemberUpdate | MemberUpdateRequest | MemberUpdateResponse | MemberUpdate updates the member configuration. |
| MemberList | MemberListRequest | MemberListResponse | MemberList lists all the members in the cluster. |
| MemberPromote | MemberPromoteRequest | MemberPromoteResponse | MemberPromote promotes a member from raft learner (non-voting) to raft voting member. |
##### service `KV` (etcdserver/etcdserverpb/rpc.proto)
for grpc-gateway
| Method | Request Type | Response Type | Description |
| ------ | ------------ | ------------- | ----------- |
| Range | RangeRequest | RangeResponse | Range gets the keys in the range from the key-value store. |
@ -59,6 +58,8 @@ for grpc-gateway
| LeaseGrant | LeaseGrantRequest | LeaseGrantResponse | LeaseGrant creates a lease which expires if the server does not receive a keepAlive within a given time to live period. All keys attached to the lease will be expired and deleted if the lease expires. Each expired key generates a delete event in the event history. |
| LeaseRevoke | LeaseRevokeRequest | LeaseRevokeResponse | LeaseRevoke revokes a lease. All keys attached to the lease will expire and be deleted. |
| LeaseKeepAlive | LeaseKeepAliveRequest | LeaseKeepAliveResponse | LeaseKeepAlive keeps the lease alive by streaming keep alive requests from the client to the server and streaming keep alive responses from the server to the client. |
| LeaseTimeToLive | LeaseTimeToLiveRequest | LeaseTimeToLiveResponse | LeaseTimeToLive retrieves lease information. |
| LeaseLeases | LeaseLeasesRequest | LeaseLeasesResponse | LeaseLeases lists all existing leases. |
@ -69,8 +70,10 @@ for grpc-gateway
| Alarm | AlarmRequest | AlarmResponse | Alarm activates, deactivates, and queries alarms regarding cluster health. |
| Status | StatusRequest | StatusResponse | Status gets the status of the member. |
| Defragment | DefragmentRequest | DefragmentResponse | Defragment defragments a member's backend database to recover storage space. |
| Hash | HashRequest | HashResponse | Hash returns the hash of the local KV state for consistency checking purpose. This is designed for testing; do not use this in production when there are ongoing transactions. |
| Hash | HashRequest | HashResponse | Hash computes the hash of whole backend keyspace, including key, lease, and other buckets in storage. This is designed for testing ONLY! Do not rely on this in production with ongoing transactions, since Hash operation does not hold MVCC locks. Use "HashKV" API instead for "key" bucket consistency checks. |
| HashKV | HashKVRequest | HashKVResponse | HashKV computes the hash of all MVCC keys up to a given revision. It only iterates "key" bucket in backend storage. |
| Snapshot | SnapshotRequest | SnapshotResponse | Snapshot sends a snapshot of the entire backend from a member over a stream to a client. |
| MoveLeader | MoveLeaderRequest | MoveLeaderResponse | MoveLeader requests current leader node to transfer its leadership to transferee. |
@ -93,8 +96,6 @@ for grpc-gateway
##### message `AlarmRequest` (etcdserver/etcdserverpb/rpc.proto)
default, used to query if any alarm is active space quota is exhausted
| Field | Description | Type |
| ----- | ----------- | ---- |
| action | action is the kind of alarm request to issue. The action may GET alarm statuses, ACTIVATE an alarm, or DEACTIVATE a raised alarm. | AlarmAction |
@ -226,8 +227,8 @@ Empty field.
| Field | Description | Type |
| ----- | ----------- | ---- |
| role | | string |
| key | | string |
| range_end | | string |
| key | | bytes |
| range_end | | bytes |
@ -245,6 +246,7 @@ Empty field.
| ----- | ----------- | ---- |
| name | | string |
| password | | string |
| options | | authpb.UserAddOptions |
@ -404,6 +406,8 @@ CompactionRequest compacts the key-value store up to a given revision. All super
| create_revision | create_revision is the creation revision of the given key | int64 |
| mod_revision | mod_revision is the last modified revision of the given key. | int64 |
| value | value is the value of the given key, in bytes. | bytes |
| lease | lease is the lease id of the given key. | int64 |
| range_end | range_end compares the given target to all keys in the range [key, range_end). See RangeRequest for more details on key ranges. | bytes |
@ -426,7 +430,8 @@ Empty field.
| Field | Description | Type |
| ----- | ----------- | ---- |
| key | key is the first key to delete in the range. | bytes |
| range_end | range_end is the key following the last key to delete for the range [key, range_end). If range_end is not given, the range is defined to contain only the key argument. If range_end is '\0', the range is all keys greater than or equal to the key argument. | bytes |
| range_end | range_end is the key following the last key to delete for the range [key, range_end). If range_end is not given, the range is defined to contain only the key argument. If range_end is one bit larger than the given key, then the range is all the keys with the prefix (the given key). If range_end is '\0', the range is all keys greater than or equal to the key argument. | bytes |
| prev_kv | If prev_kv is set, etcd gets the previous key-value pairs before deleting it. The previous key-value pairs will be returned in the delete response. | bool |
@ -436,6 +441,25 @@ Empty field.
| ----- | ----------- | ---- |
| header | | ResponseHeader |
| deleted | deleted is the number of keys deleted by the delete range request. | int64 |
| prev_kvs | if prev_kv is set in the request, the previous key-value pairs will be returned. | (slice of) mvccpb.KeyValue |
##### message `HashKVRequest` (etcdserver/etcdserverpb/rpc.proto)
| Field | Description | Type |
| ----- | ----------- | ---- |
| revision | revision is the key-value store revision for the hash operation. | int64 |
##### message `HashKVResponse` (etcdserver/etcdserverpb/rpc.proto)
| Field | Description | Type |
| ----- | ----------- | ---- |
| header | | ResponseHeader |
| hash | hash is the hash value computed from the responding member's MVCC keys up to a given revision. | uint32 |
| compact_revision | compact_revision is the compacted revision of key-value store when hash begins. | int64 |
@ -450,7 +474,32 @@ Empty field.
| Field | Description | Type |
| ----- | ----------- | ---- |
| header | | ResponseHeader |
| hash | hash is the hash value computed from the responding member's key-value store. | uint32 |
| hash | hash is the hash value computed from the responding member's KV's backend. | uint32 |
##### message `LeaseCheckpoint` (etcdserver/etcdserverpb/rpc.proto)
| Field | Description | Type |
| ----- | ----------- | ---- |
| ID | ID is the lease ID to checkpoint. | int64 |
| remaining_TTL | Remaining_TTL is the remaining time until expiry of the lease. | int64 |
##### message `LeaseCheckpointRequest` (etcdserver/etcdserverpb/rpc.proto)
| Field | Description | Type |
| ----- | ----------- | ---- |
| checkpoints | | (slice of) LeaseCheckpoint |
##### message `LeaseCheckpointResponse` (etcdserver/etcdserverpb/rpc.proto)
| Field | Description | Type |
| ----- | ----------- | ---- |
| header | | ResponseHeader |
@ -458,7 +507,7 @@ Empty field.
| Field | Description | Type |
| ----- | ----------- | ---- |
| TTL | TTL is the advisory time-to-live in seconds. | int64 |
| TTL | TTL is the advisory time-to-live in seconds. Expired lease will return -1. | int64 |
| ID | ID is the requested ID for the lease. If ID is set to 0, the lessor chooses an ID. | int64 |
@ -492,6 +541,21 @@ Empty field.
##### message `LeaseLeasesRequest` (etcdserver/etcdserverpb/rpc.proto)
Empty field.
##### message `LeaseLeasesResponse` (etcdserver/etcdserverpb/rpc.proto)
| Field | Description | Type |
| ----- | ----------- | ---- |
| header | | ResponseHeader |
| leases | | (slice of) LeaseStatus |
##### message `LeaseRevokeRequest` (etcdserver/etcdserverpb/rpc.proto)
| Field | Description | Type |
@ -508,6 +572,35 @@ Empty field.
##### message `LeaseStatus` (etcdserver/etcdserverpb/rpc.proto)
| Field | Description | Type |
| ----- | ----------- | ---- |
| ID | | int64 |
##### message `LeaseTimeToLiveRequest` (etcdserver/etcdserverpb/rpc.proto)
| Field | Description | Type |
| ----- | ----------- | ---- |
| ID | ID is the lease ID for the lease. | int64 |
| keys | keys is true to query all the keys attached to this lease. | bool |
##### message `LeaseTimeToLiveResponse` (etcdserver/etcdserverpb/rpc.proto)
| Field | Description | Type |
| ----- | ----------- | ---- |
| header | | ResponseHeader |
| ID | ID is the lease ID from the keep alive request. | int64 |
| TTL | TTL is the remaining TTL in seconds for the lease; the lease will expire in under TTL+1 seconds. | int64 |
| grantedTTL | GrantedTTL is the initial granted time in seconds upon lease creation/renewal. | int64 |
| keys | Keys is the list of keys attached to this lease. | (slice of) bytes |
##### message `Member` (etcdserver/etcdserverpb/rpc.proto)
| Field | Description | Type |
@ -516,6 +609,7 @@ Empty field.
| name | name is the human-readable name of the member. If the member is not started, the name will be an empty string. | string |
| peerURLs | peerURLs is the list of URLs the member exposes to the cluster for communication. | (slice of) string |
| clientURLs | clientURLs is the list of URLs the member exposes to clients for communication. If the member is not started, clientURLs will be empty. | (slice of) string |
| isLearner | isLearner indicates if the member is raft learner. | bool |
@ -524,6 +618,7 @@ Empty field.
| Field | Description | Type |
| ----- | ----------- | ---- |
| peerURLs | peerURLs is the list of URLs the added member will use to communicate with the cluster. | (slice of) string |
| isLearner | isLearner indicates if the added member is raft learner. | bool |
@ -533,6 +628,7 @@ Empty field.
| ----- | ----------- | ---- |
| header | | ResponseHeader |
| member | member is the member information for the added member. | Member |
| members | members is a list of all members after adding the new member. | (slice of) Member |
@ -551,6 +647,23 @@ Empty field.
##### message `MemberPromoteRequest` (etcdserver/etcdserverpb/rpc.proto)
| Field | Description | Type |
| ----- | ----------- | ---- |
| ID | ID is the member ID of the member to promote. | uint64 |
##### message `MemberPromoteResponse` (etcdserver/etcdserverpb/rpc.proto)
| Field | Description | Type |
| ----- | ----------- | ---- |
| header | | ResponseHeader |
| members | members is a list of all members after promoting the member. | (slice of) Member |
##### message `MemberRemoveRequest` (etcdserver/etcdserverpb/rpc.proto)
| Field | Description | Type |
@ -564,6 +677,7 @@ Empty field.
| Field | Description | Type |
| ----- | ----------- | ---- |
| header | | ResponseHeader |
| members | members is a list of all members after removing the member. | (slice of) Member |
@ -581,6 +695,23 @@ Empty field.
| Field | Description | Type |
| ----- | ----------- | ---- |
| header | | ResponseHeader |
| members | members is a list of all members after updating the member. | (slice of) Member |
##### message `MoveLeaderRequest` (etcdserver/etcdserverpb/rpc.proto)
| Field | Description | Type |
| ----- | ----------- | ---- |
| targetID | targetID is the node ID for the new leader. | uint64 |
##### message `MoveLeaderResponse` (etcdserver/etcdserverpb/rpc.proto)
| Field | Description | Type |
| ----- | ----------- | ---- |
| header | | ResponseHeader |
@ -591,6 +722,9 @@ Empty field.
| key | key is the key, in bytes, to put into the key-value store. | bytes |
| value | value is the value, in bytes, to associate with the key in the key-value store. | bytes |
| lease | lease is the lease ID to associate with the key in the key-value store. A lease value of 0 indicates no lease. | int64 |
| prev_kv | If prev_kv is set, etcd gets the previous key-value pair before changing it. The previous key-value pair will be returned in the put response. | bool |
| ignore_value | If ignore_value is set, etcd updates the key using its current value. Returns an error if the key does not exist. | bool |
| ignore_lease | If ignore_lease is set, etcd updates the key using its current lease. Returns an error if the key does not exist. | bool |
@ -599,6 +733,7 @@ Empty field.
| Field | Description | Type |
| ----- | ----------- | ---- |
| header | | ResponseHeader |
| prev_kv | if prev_kv is set in the request, the previous key-value pair will be returned. | mvccpb.KeyValue |
@ -606,13 +741,19 @@ Empty field.
| Field | Description | Type |
| ----- | ----------- | ---- |
| key | default, no sorting lowest target value first highest target value first key is the first key for the range. If range_end is not given, the request only looks up key. | bytes |
| range_end | range_end is the upper bound on the requested range [key, range_end). If range_end is '\0', the range is all keys >= key. If the range_end is one bit larger than the given key, then the range requests get the all keys with the prefix (the given key). If both key and range_end are '\0', then range requests returns all keys. | bytes |
| limit | limit is a limit on the number of keys returned for the request. | int64 |
| key | key is the first key for the range. If range_end is not given, the request only looks up key. | bytes |
| range_end | range_end is the upper bound on the requested range [key, range_end). If range_end is '\0', the range is all keys >= key. If range_end is key plus one (e.g., "aa"+1 == "ab", "a\xff"+1 == "b"), then the range request gets all keys prefixed with key. If both key and range_end are '\0', then the range request returns all keys. | bytes |
| limit | limit is a limit on the number of keys returned for the request. When limit is set to 0, it is treated as no limit. | int64 |
| revision | revision is the point-in-time of the key-value store to use for the range. If revision is less or equal to zero, the range is over the newest key-value store. If the revision has been compacted, ErrCompacted is returned as a response. | int64 |
| sort_order | sort_order is the order for returned sorted results. | SortOrder |
| sort_target | sort_target is the key-value field to use for sorting. | SortTarget |
| serializable | serializable sets the range request to use serializable member-local reads. Range requests are linearizable by default; linearizable requests have higher latency and lower throughput than serializable requests but reflect the current consensus of the cluster. For better performance, in exchange for possible stale reads, a serializable range request is served locally without needing to reach consensus with other nodes in the cluster. | bool |
| keys_only | keys_only when set returns only the keys and not the values. | bool |
| count_only | count_only when set returns only the count of the keys in the range. | bool |
| min_mod_revision | min_mod_revision is the lower bound for returned key mod revisions; all keys with lesser mod revisions will be filtered away. | int64 |
| max_mod_revision | max_mod_revision is the upper bound for returned key mod revisions; all keys with greater mod revisions will be filtered away. | int64 |
| min_create_revision | min_create_revision is the lower bound for returned key create revisions; all keys with lesser create revisions will be filtered away. | int64 |
| max_create_revision | max_create_revision is the upper bound for returned key create revisions; all keys with greater create revisions will be filtered away. | int64 |
@ -621,8 +762,9 @@ Empty field.
| Field | Description | Type |
| ----- | ----------- | ---- |
| header | | ResponseHeader |
| kvs | kvs is the list of key-value pairs matched by the range request. | (slice of) mvccpb.KeyValue |
| kvs | kvs is the list of key-value pairs matched by the range request. kvs is empty when count is requested. | (slice of) mvccpb.KeyValue |
| more | more indicates if there are more keys to return in the requested range. | bool |
| count | count is set to the number of keys within the range when requested. | int64 |
@ -634,6 +776,7 @@ Empty field.
| request_range | | RangeRequest |
| request_put | | PutRequest |
| request_delete_range | | DeleteRangeRequest |
| request_txn | | TxnRequest |
@ -643,7 +786,7 @@ Empty field.
| ----- | ----------- | ---- |
| cluster_id | cluster_id is the ID of the cluster which sent the response. | uint64 |
| member_id | member_id is the ID of the member which sent the response. | uint64 |
| revision | revision is the key-value store revision when the request was applied. | int64 |
| revision | revision is the key-value store revision when the request was applied. For watch progress responses, the header.revision indicates progress. All future events recieved in this stream are guaranteed to have a higher revision number than the header.revision number. | int64 |
| raft_term | raft_term is the raft term when the request was applied. | uint64 |
@ -656,6 +799,7 @@ Empty field.
| response_range | | RangeResponse |
| response_put | | PutResponse |
| response_delete_range | | DeleteRangeResponse |
| response_txn | | TxnResponse |
@ -687,10 +831,14 @@ Empty field.
| ----- | ----------- | ---- |
| header | | ResponseHeader |
| version | version is the cluster protocol version used by the responding member. | string |
| dbSize | dbSize is the size of the backend database, in bytes, of the responding member. | int64 |
| dbSize | dbSize is the size of the backend database physically allocated, in bytes, of the responding member. | int64 |
| leader | leader is the member ID which the responding member believes is the current leader. | uint64 |
| raftIndex | raftIndex is the current raft index of the responding member. | uint64 |
| raftIndex | raftIndex is the current raft committed index of the responding member. | uint64 |
| raftTerm | raftTerm is the current raft term of the responding member. | uint64 |
| raftAppliedIndex | raftAppliedIndex is the current raft applied index of the responding member. | uint64 |
| errors | errors contains alarm/health information and status. | (slice of) string |
| dbSizeInUse | dbSizeInUse is the size of the backend database logically in use, in bytes, of the responding member. | int64 |
| isLearner | isLearner indicates if the member is raft learner. | bool |
@ -729,9 +877,21 @@ From google paxosdb paper: Our implementation hinges around a powerful primitive
| Field | Description | Type |
| ----- | ----------- | ---- |
| key | key is the key to register for watching. | bytes |
| range_end | range_end is the end of the range [key, range_end) to watch. If range_end is not given, only the key argument is watched. If range_end is equal to '\0', all keys greater than or equal to the key argument are watched. | bytes |
| range_end | range_end is the end of the range [key, range_end) to watch. If range_end is not given, only the key argument is watched. If range_end is equal to '\0', all keys greater than or equal to the key argument are watched. If the range_end is one bit larger than the given key, then all keys with the prefix (the given key) will be watched. | bytes |
| start_revision | start_revision is an optional revision to watch from (inclusive). No start_revision is "now". | int64 |
| progress_notify | progress_notify is set so that the etcd server will periodically send a WatchResponse with no events to the new watcher if there are no recent events. It is useful when clients wish to recover a disconnected watcher starting from a recent known revision. The etcd server may decide how often it will send notifications based on current load. | bool |
| filters | filters filter the events at server side before it sends back to the watcher. | (slice of) FilterType |
| prev_kv | If prev_kv is set, created watcher gets the previous KV before the event happens. If the previous KV is already compacted, nothing will be returned. | bool |
| watch_id | If watch_id is provided and non-zero, it will be assigned to this watcher. Since creating a watcher in etcd is not a synchronous operation, this can be used ensure that ordering is correct when creating multiple watchers on the same stream. Creating a watcher with an ID already in use on the stream will cause an error to be returned. | int64 |
| fragment | fragment enables splitting large revisions into multiple watch responses. | bool |
##### message `WatchProgressRequest` (etcdserver/etcdserverpb/rpc.proto)
Requests the a watch stream progress status be sent in the watch response stream as soon as possible.
Empty field.
@ -742,6 +902,7 @@ From google paxosdb paper: Our implementation hinges around a powerful primitive
| request_union | request_union is a request to either create a new watcher or cancel an existing watcher. | oneof |
| create_request | | WatchCreateRequest |
| cancel_request | | WatchCancelRequest |
| progress_request | | WatchProgressRequest |
@ -754,6 +915,8 @@ From google paxosdb paper: Our implementation hinges around a powerful primitive
| created | created is set to true if the response is for a create watch request. The client should record the watch_id and expect to receive events for the created watcher from the same stream. All events sent to the created watcher will attach with the same watch_id. | bool |
| canceled | canceled is set to true if the response is for a cancel watch request. No further events will be sent to the canceled watcher. | bool |
| compact_revision | compact_revision is set to the minimum index if a watcher tries to watch at a compacted index. This happens when creating a watcher at a compacted revision or the watcher cannot catch up with the progress of the key-value store. The client should treat the watcher as canceled and should not try to create any watcher with the same start_revision again. | int64 |
| cancel_reason | cancel_reason indicates the reason for canceling the watcher. | string |
| fragment | framgment is true if large watch response was split over multiple responses. | bool |
| events | | (slice of) mvccpb.Event |
@ -764,6 +927,7 @@ From google paxosdb paper: Our implementation hinges around a powerful primitive
| ----- | ----------- | ---- |
| type | type is the kind of event. If type is a PUT, it indicates new data has been stored to the key. If type is a DELETE, it indicates the key was deleted. | EventType |
| kv | kv holds the KeyValue for the event. A PUT event contains current kv pair. A PUT event with kv.Version=1 indicates the creation of a key. A DELETE/EXPIRE event contains the deleted key with its modification revision set to the revision of deletion. | KeyValue |
| prev_kv | prev_kv holds the key-value pair before the event happens. | KeyValue |
@ -786,6 +950,23 @@ From google paxosdb paper: Our implementation hinges around a powerful primitive
| ----- | ----------- | ---- |
| ID | | int64 |
| TTL | | int64 |
| RemainingTTL | | int64 |
##### message `LeaseInternalRequest` (lease/leasepb/lease.proto)
| Field | Description | Type |
| ----- | ----------- | ---- |
| LeaseTimeToLiveRequest | | etcdserverpb.LeaseTimeToLiveRequest |
##### message `LeaseInternalResponse` (lease/leasepb/lease.proto)
| Field | Description | Type |
| ----- | ----------- | ---- |
| LeaseTimeToLiveResponse | | etcdserverpb.LeaseTimeToLiveResponse |
@ -821,6 +1002,15 @@ User is a single entry in the bucket authUsers
| name | | bytes |
| password | | bytes |
| roles | | (slice of) string |
| options | | UserAddOptions |
##### message `UserAddOptions` (auth/authpb/auth.proto)
| Field | Description | Type |
| ----- | ----------- | ---- |
| no_password | | bool |

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,385 @@
{
"swagger": "2.0",
"info": {
"title": "etcdserver/api/v3election/v3electionpb/v3election.proto",
"version": "version not set"
},
"schemes": [
"http",
"https"
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"paths": {
"/v3/election/campaign": {
"post": {
"summary": "Campaign waits to acquire leadership in an election, returning a LeaderKey\nrepresenting the leadership if successful. The LeaderKey can then be used\nto issue new values on the election, transactionally guard API requests on\nleadership still being held, and resign from the election.",
"operationId": "Campaign",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/v3electionpbCampaignResponse"
}
}
},
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/v3electionpbCampaignRequest"
}
}
],
"tags": [
"Election"
]
}
},
"/v3/election/leader": {
"post": {
"summary": "Leader returns the current election proclamation, if any.",
"operationId": "Leader",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/v3electionpbLeaderResponse"
}
}
},
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/v3electionpbLeaderRequest"
}
}
],
"tags": [
"Election"
]
}
},
"/v3/election/observe": {
"post": {
"summary": "Observe streams election proclamations in-order as made by the election's\nelected leaders.",
"operationId": "Observe",
"responses": {
"200": {
"description": "A successful response.(streaming responses)",
"schema": {
"$ref": "#/x-stream-definitions/v3electionpbLeaderResponse"
}
}
},
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/v3electionpbLeaderRequest"
}
}
],
"tags": [
"Election"
]
}
},
"/v3/election/proclaim": {
"post": {
"summary": "Proclaim updates the leader's posted value with a new value.",
"operationId": "Proclaim",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/v3electionpbProclaimResponse"
}
}
},
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/v3electionpbProclaimRequest"
}
}
],
"tags": [
"Election"
]
}
},
"/v3/election/resign": {
"post": {
"summary": "Resign releases election leadership so other campaigners may acquire\nleadership on the election.",
"operationId": "Resign",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/v3electionpbResignResponse"
}
}
},
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/v3electionpbResignRequest"
}
}
],
"tags": [
"Election"
]
}
}
},
"definitions": {
"etcdserverpbResponseHeader": {
"type": "object",
"properties": {
"cluster_id": {
"type": "string",
"format": "uint64",
"description": "cluster_id is the ID of the cluster which sent the response."
},
"member_id": {
"type": "string",
"format": "uint64",
"description": "member_id is the ID of the member which sent the response."
},
"revision": {
"type": "string",
"format": "int64",
"description": "revision is the key-value store revision when the request was applied.\nFor watch progress responses, the header.revision indicates progress. All future events\nrecieved in this stream are guaranteed to have a higher revision number than the\nheader.revision number."
},
"raft_term": {
"type": "string",
"format": "uint64",
"description": "raft_term is the raft term when the request was applied."
}
}
},
"mvccpbKeyValue": {
"type": "object",
"properties": {
"key": {
"type": "string",
"format": "byte",
"description": "key is the key in bytes. An empty key is not allowed."
},
"create_revision": {
"type": "string",
"format": "int64",
"description": "create_revision is the revision of last creation on this key."
},
"mod_revision": {
"type": "string",
"format": "int64",
"description": "mod_revision is the revision of last modification on this key."
},
"version": {
"type": "string",
"format": "int64",
"description": "version is the version of the key. A deletion resets\nthe version to zero and any modification of the key\nincreases its version."
},
"value": {
"type": "string",
"format": "byte",
"description": "value is the value held by the key, in bytes."
},
"lease": {
"type": "string",
"format": "int64",
"description": "lease is the ID of the lease that attached to key.\nWhen the attached lease expires, the key will be deleted.\nIf lease is 0, then no lease is attached to the key."
}
}
},
"protobufAny": {
"type": "object",
"properties": {
"type_url": {
"type": "string"
},
"value": {
"type": "string",
"format": "byte"
}
}
},
"runtimeStreamError": {
"type": "object",
"properties": {
"grpc_code": {
"type": "integer",
"format": "int32"
},
"http_code": {
"type": "integer",
"format": "int32"
},
"message": {
"type": "string"
},
"http_status": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"$ref": "#/definitions/protobufAny"
}
}
}
},
"v3electionpbCampaignRequest": {
"type": "object",
"properties": {
"name": {
"type": "string",
"format": "byte",
"description": "name is the election's identifier for the campaign."
},
"lease": {
"type": "string",
"format": "int64",
"description": "lease is the ID of the lease attached to leadership of the election. If the\nlease expires or is revoked before resigning leadership, then the\nleadership is transferred to the next campaigner, if any."
},
"value": {
"type": "string",
"format": "byte",
"description": "value is the initial proclaimed value set when the campaigner wins the\nelection."
}
}
},
"v3electionpbCampaignResponse": {
"type": "object",
"properties": {
"header": {
"$ref": "#/definitions/etcdserverpbResponseHeader"
},
"leader": {
"$ref": "#/definitions/v3electionpbLeaderKey",
"description": "leader describes the resources used for holding leadereship of the election."
}
}
},
"v3electionpbLeaderKey": {
"type": "object",
"properties": {
"name": {
"type": "string",
"format": "byte",
"description": "name is the election identifier that correponds to the leadership key."
},
"key": {
"type": "string",
"format": "byte",
"description": "key is an opaque key representing the ownership of the election. If the key\nis deleted, then leadership is lost."
},
"rev": {
"type": "string",
"format": "int64",
"description": "rev is the creation revision of the key. It can be used to test for ownership\nof an election during transactions by testing the key's creation revision\nmatches rev."
},
"lease": {
"type": "string",
"format": "int64",
"description": "lease is the lease ID of the election leader."
}
}
},
"v3electionpbLeaderRequest": {
"type": "object",
"properties": {
"name": {
"type": "string",
"format": "byte",
"description": "name is the election identifier for the leadership information."
}
}
},
"v3electionpbLeaderResponse": {
"type": "object",
"properties": {
"header": {
"$ref": "#/definitions/etcdserverpbResponseHeader"
},
"kv": {
"$ref": "#/definitions/mvccpbKeyValue",
"description": "kv is the key-value pair representing the latest leader update."
}
}
},
"v3electionpbProclaimRequest": {
"type": "object",
"properties": {
"leader": {
"$ref": "#/definitions/v3electionpbLeaderKey",
"description": "leader is the leadership hold on the election."
},
"value": {
"type": "string",
"format": "byte",
"description": "value is an update meant to overwrite the leader's current value."
}
}
},
"v3electionpbProclaimResponse": {
"type": "object",
"properties": {
"header": {
"$ref": "#/definitions/etcdserverpbResponseHeader"
}
}
},
"v3electionpbResignRequest": {
"type": "object",
"properties": {
"leader": {
"$ref": "#/definitions/v3electionpbLeaderKey",
"description": "leader is the leadership to relinquish by resignation."
}
}
},
"v3electionpbResignResponse": {
"type": "object",
"properties": {
"header": {
"$ref": "#/definitions/etcdserverpbResponseHeader"
}
}
}
},
"x-stream-definitions": {
"v3electionpbLeaderResponse": {
"type": "object",
"properties": {
"result": {
"$ref": "#/definitions/v3electionpbLeaderResponse"
},
"error": {
"$ref": "#/definitions/runtimeStreamError"
}
},
"title": "Stream result of v3electionpbLeaderResponse"
}
}
}

View File

@ -0,0 +1,146 @@
{
"swagger": "2.0",
"info": {
"title": "etcdserver/api/v3lock/v3lockpb/v3lock.proto",
"version": "version not set"
},
"schemes": [
"http",
"https"
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"paths": {
"/v3/lock/lock": {
"post": {
"summary": "Lock acquires a distributed shared lock on a given named lock.\nOn success, it will return a unique key that exists so long as the\nlock is held by the caller. This key can be used in conjunction with\ntransactions to safely ensure updates to etcd only occur while holding\nlock ownership. The lock is held until Unlock is called on the key or the\nlease associate with the owner expires.",
"operationId": "Lock",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/v3lockpbLockResponse"
}
}
},
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/v3lockpbLockRequest"
}
}
],
"tags": [
"Lock"
]
}
},
"/v3/lock/unlock": {
"post": {
"summary": "Unlock takes a key returned by Lock and releases the hold on lock. The\nnext Lock caller waiting for the lock will then be woken up and given\nownership of the lock.",
"operationId": "Unlock",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"$ref": "#/definitions/v3lockpbUnlockResponse"
}
}
},
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/v3lockpbUnlockRequest"
}
}
],
"tags": [
"Lock"
]
}
}
},
"definitions": {
"etcdserverpbResponseHeader": {
"type": "object",
"properties": {
"cluster_id": {
"type": "string",
"format": "uint64",
"description": "cluster_id is the ID of the cluster which sent the response."
},
"member_id": {
"type": "string",
"format": "uint64",
"description": "member_id is the ID of the member which sent the response."
},
"revision": {
"type": "string",
"format": "int64",
"description": "revision is the key-value store revision when the request was applied.\nFor watch progress responses, the header.revision indicates progress. All future events\nrecieved in this stream are guaranteed to have a higher revision number than the\nheader.revision number."
},
"raft_term": {
"type": "string",
"format": "uint64",
"description": "raft_term is the raft term when the request was applied."
}
}
},
"v3lockpbLockRequest": {
"type": "object",
"properties": {
"name": {
"type": "string",
"format": "byte",
"description": "name is the identifier for the distributed shared lock to be acquired."
},
"lease": {
"type": "string",
"format": "int64",
"description": "lease is the ID of the lease that will be attached to ownership of the\nlock. If the lease expires or is revoked and currently holds the lock,\nthe lock is automatically released. Calls to Lock with the same lease will\nbe treated as a single acquisition; locking twice with the same lease is a\nno-op."
}
}
},
"v3lockpbLockResponse": {
"type": "object",
"properties": {
"header": {
"$ref": "#/definitions/etcdserverpbResponseHeader"
},
"key": {
"type": "string",
"format": "byte",
"description": "key is a key that will exist on etcd for the duration that the Lock caller\nowns the lock. Users should not modify this key or the lock may exhibit\nundefined behavior."
}
}
},
"v3lockpbUnlockRequest": {
"type": "object",
"properties": {
"key": {
"type": "string",
"format": "byte",
"description": "key is the lock ownership key granted by Lock."
}
}
},
"v3lockpbUnlockResponse": {
"type": "object",
"properties": {
"header": {
"$ref": "#/definitions/etcdserverpbResponseHeader"
}
}
}
}
}

View File

@ -1,8 +1,9 @@
# Experimental APIs and features
---
title: Experimental APIs and features
---
For the most part, the etcd project is stable, but we are still moving fast! We believe in the release fast philosophy. We want to get early feedback on features still in development and stabilizing. Thus, there are, and will be more, experimental features and APIs. We plan to improve these features based on the early feedback from the community, or abandon them if there is little interest, in the next few releases. If you are running a production system, please do not rely on any experimental features or APIs.
For the most part, the etcd project is stable, but we are still moving fast! We believe in the release fast philosophy. We want to get early feedback on features still in development and stabilizing. Thus, there are, and will be more, experimental features and APIs. We plan to improve these features based on the early feedback from the community, or abandon them if there is little interest, in the next few releases. Please do not rely on any experimental features or APIs in production environment.
## The current experimental API/features are:
- v3 auth API: expect to be stale in 3.1 release
- etcd gateway: expect to be stable in 3.1 release
- [KV ordering](https://godoc.org/github.com/etcd-io/etcd/clientv3/ordering) wrapper. When an etcd client switches endpoints, responses to serializable reads may go backward in time if the new endpoint is lagging behind the rest of the cluster. The ordering wrapper caches the current cluster revision from response headers. If a response revision is less than the cached revision, the client selects another endpoint and reissues the read. Enable in grpcproxy with `--experimental-serializable-ordering`.

View File

@ -0,0 +1,67 @@
---
title: gRPC naming and discovery
---
etcd provides a gRPC resolver to support an alternative name system that fetches endpoints from etcd for discovering gRPC services. The underlying mechanism is based on watching updates to keys prefixed with the service name.
## Using etcd discovery with go-grpc
The etcd client provides a gRPC resolver for resolving gRPC endpoints with an etcd backend. The resolver is initialized with an etcd client and given a target for resolution:
```go
import (
"go.etcd.io/etcd/clientv3"
etcdnaming "go.etcd.io/etcd/clientv3/naming"
"google.golang.org/grpc"
)
...
cli, cerr := clientv3.NewFromURL("http://localhost:2379")
r := &etcdnaming.GRPCResolver{Client: cli}
b := grpc.RoundRobin(r)
conn, gerr := grpc.Dial("my-service", grpc.WithBalancer(b), grpc.WithBlock(), ...)
```
## Managing service endpoints
The etcd resolver treats all keys under the prefix of the resolution target following a "/" (e.g., "my-service/") with JSON-encoded go-grpc `naming.Update` values as potential service endpoints. Endpoints are added to the service by creating new keys and removed from the service by deleting keys.
### Adding an endpoint
New endpoints can be added to the service through `etcdctl`:
```sh
ETCDCTL_API=3 etcdctl put my-service/1.2.3.4 '{"Addr":"1.2.3.4","Metadata":"..."}'
```
The etcd client's `GRPCResolver.Update` method can also register new endpoints with a key matching the `Addr`:
```go
r.Update(context.TODO(), "my-service", naming.Update{Op: naming.Add, Addr: "1.2.3.4", Metadata: "..."})
```
### Deleting an endpoint
Hosts can be deleted from the service through `etcdctl`:
```sh
ETCDCTL_API=3 etcdctl del my-service/1.2.3.4
```
The etcd client's `GRPCResolver.Update` method also supports deleting endpoints:
```go
r.Update(context.TODO(), "my-service", naming.Update{Op: naming.Delete, Addr: "1.2.3.4"})
```
### Registering an endpoint with a lease
Registering an endpoint with a lease ensures that if the host can't maintain a keepalive heartbeat (e.g., its machine fails), it will be removed from the service:
```sh
lease=`ETCDCTL_API=3 etcdctl lease grant 5 | cut -f2 -d' '`
ETCDCTL_API=3 etcdctl put --lease=$lease my-service/1.2.3.4 '{"Addr":"1.2.3.4","Metadata":"..."}'
ETCDCTL_API=3 etcdctl lease keep-alive $lease
```

View File

@ -1,33 +1,62 @@
# Interacting with etcd
---
title: Interacting with etcd
---
Users mostly interact with etcd by putting or getting the value of a key. This section describes how to do that by using etcdctl, a command line tool for interacting with etcd server. The concepts described here should apply to the gRPC APIs or client library APIs.
By default, etcdctl talks to the etcd server with the v2 API for backward compatibility. For etcdctl to speak to etcd using the v3 API, the API version must be set to version 3 via the `ETCDCTL_API` environment variable.
The API version used by etcdctl to speak to etcd may be set to version `2` or `3` via the `ETCDCTL_API` environment variable. By default, etcdctl on master (3.4) uses the v3 API and earlier versions (3.3 and earlier) default to the v2 API.
``` bash
Note that any key that was created using the v2 API will not be able to be queried via the v3 API. A v3 API ```etcdctl get``` of a v2 key will exit with 0 and no key data, this is the expected behaviour.
```bash
export ETCDCTL_API=3
```
## Find versions
etcdctl version and Server API version can be useful in finding the appropriate commands to be used for performing various operations on etcd.
Here is the command to find the versions:
```bash
$ etcdctl version
etcdctl version: 3.1.0-alpha.0+git
API version: 3.1
```
## Write a key
Applications store keys into the etcd cluster by writing to keys. Every stored key is replicated to all etcd cluster members through the Raft protocol to achieve consistency and reliability.
Here is the command to set the value of key `foo` to `bar`:
``` bash
```bash
$ etcdctl put foo bar
OK
```
Also a key can be set for a specified interval of time by attaching lease to it.
Here is the command to set the value of key `foo1` to `bar1` for 10s.
```bash
$ etcdctl put foo1 bar1 --lease=1234abcd
OK
```
Note: The lease id `1234abcd` in the above command refers to id returned on creating the lease of 10s. This id can then be attached to the key.
## Read keys
Applications can read values of keys from an etcd cluster. Queries may read a single key, or a range of keys.
Applications can read values of keys from an etcd cluster. Queries may read a single key, or a range of keys.
Suppose the etcd cluster has stored the following keys:
```
```bash
foo = bar
foo1 = bar1
foo2 = bar2
foo3 = bar3
```
@ -39,18 +68,59 @@ foo
bar
```
Here is the command to range over the keys from `foo` to `foo9`:
Here is the command to read the value of key `foo` in hex format:
```bash
$ etcdctl get foo foo9
$ etcdctl get foo --hex
\x66\x6f\x6f # Key
\x62\x61\x72 # Value
```
Here is the command to read only the value of key `foo`:
```bash
$ etcdctl get foo --print-value-only
bar
```
Here is the command to range over the keys from `foo` to `foo3`:
```bash
$ etcdctl get foo foo3
foo
bar
foo1
bar1
foo2
bar2
```
Note that `foo3` is excluded since the range is over the half-open interval `[foo, foo3)`, excluding `foo3`.
Here is the command to range over all keys prefixed with `foo`:
```bash
$ etcdctl get --prefix foo
foo
bar
foo1
bar1
foo2
bar2
foo3
bar3
```
Here is the command to range over all keys prefixed with `foo`, limiting the number of results to 2:
```bash
$ etcdctl get --prefix --limit=2 foo
foo
bar
foo1
bar1
```
## Read past version of keys
Applications may want to read superseded versions of a key. For example, an application may wish to roll back to an old configuration by accessing an earlier version of a key. Alternatively, an application may want a consistent view over multiple keys through multiple requests by accessing key history.
@ -58,45 +128,81 @@ Since every modification to the etcd cluster key-value store increments the glob
Suppose an etcd cluster already has the following keys:
``` bash
$ etcdctl put foo bar # revision = 2
$ etcdctl put foo1 bar1 # revision = 3
$ etcdctl put foo bar_new # revision = 4
$ etcdctl put foo1 bar1_new # revision = 5
```bash
foo = bar # revision = 2
foo1 = bar1 # revision = 3
foo = bar_new # revision = 4
foo1 = bar1_new # revision = 5
```
Here are an example to access the past versions of keys:
```bash
$ etcdctl get foo foo9 # access the most recent versions of keys
$ etcdctl get --prefix foo # access the most recent versions of keys
foo
bar_new
foo1
bar1_new
$ etcdctl get --rev=4 foo foo9 # access the versions of keys at revision 4
$ etcdctl get --prefix --rev=4 foo # access the versions of keys at revision 4
foo
bar_new
foo1
bar1
$ etcdctl get --rev=3 foo foo9 # access the versions of keys at revision 3
$ etcdctl get --prefix --rev=3 foo # access the versions of keys at revision 3
foo
bar
foo1
bar1
$ etcdctl get --rev=2 foo foo9 # access the versions of keys at revision 2
$ etcdctl get --prefix --rev=2 foo # access the versions of keys at revision 2
foo
bar
$ etcdctl get --rev=1 foo foo9 # access the versions of keys at revision 1
$ etcdctl get --prefix --rev=1 foo # access the versions of keys at revision 1
```
## Read keys which are greater than or equal to the byte value of the specified key
Applications may want to read keys which are greater than or equal to the byte value of the specified key.
Suppose an etcd cluster already has the following keys:
```bash
a = 123
b = 456
z = 789
```
Here is the command to read keys which are greater than or equal to the byte value of key `b` :
```bash
$ etcdctl get --from-key b
b
456
z
789
```
## Delete keys
Applications can delete a key or a range of keys from an etcd cluster.
Suppose an etcd cluster already has the following keys:
```bash
foo = bar
foo1 = bar1
foo3 = bar3
zoo = val
zoo1 = val1
zoo2 = val2
a = 123
b = 456
z = 789
```
Here is the command to delete key `foo`:
```bash
@ -111,6 +217,29 @@ $ etcdctl del foo foo9
2 # two keys are deleted
```
Here is the command to delete key `zoo` with the deleted key value pair returned:
```bash
$ etcdctl del --prev-kv zoo
1 # one key is deleted
zoo # deleted key
val # the value of the deleted key
```
Here is the command to delete keys having prefix as `zoo`:
```bash
$ etcdctl del --prefix zoo
2 # two keys are deleted
```
Here is the command to delete keys which are greater than or equal to the byte value of key `b` :
```bash
$ etcdctl del --from-key b
2 # two keys are deleted
```
## Watch key changes
Applications can watch on a key or a range of keys to monitor for any updates.
@ -118,38 +247,86 @@ Applications can watch on a key or a range of keys to monitor for any updates.
Here is the command to watch on key `foo`:
```bash
$ etcdctl watch foo
$ etcdctl watch foo
# in another terminal: etcdctl put foo bar
PUT
foo
bar
```
Here is the command to watch on key `foo` in hex format:
```bash
$ etcdctl watch foo --hex
# in another terminal: etcdctl put foo bar
PUT
\x66\x6f\x6f # Key
\x62\x61\x72 # Value
```
Here is the command to watch on a range key from `foo` to `foo9`:
```bash
$ etcdctl watch foo foo9
# in another terminal: etcdctl put foo bar
PUT
foo
bar
# in another terminal: etcdctl put foo1 bar1
PUT
foo1
bar1
```
Here is the command to watch on keys having prefix `foo`:
```bash
$ etcdctl watch --prefix foo
# in another terminal: etcdctl put foo bar
PUT
foo
bar
# in another terminal: etcdctl put fooz1 barz1
PUT
fooz1
barz1
```
Here is the command to watch on multiple keys `foo` and `zoo`:
```bash
$ etcdctl watch -i
$ watch foo
$ watch zoo
# in another terminal: etcdctl put foo bar
PUT
foo
bar
# in another terminal: etcdctl put zoo val
PUT
zoo
val
```
## Watch historical changes of keys
Applications may want to watch for historical changes of keys in etcd. For example, an application may wish to receive all the modifications of a key; if the application stays connected to etcd, then `watch` is good enough. However, if the application or etcd fails, a change may happen during the failure, and the application will not receive the update in real time. To guarantee the update is delivered, the application must be able to watch for historical changes to keys. To do this, an application can specify a historical revision on a watch, just like reading past version of keys.
Suppose we finished the following sequence of operations:
``` bash
etcdctl put foo bar # revision = 2
etcdctl put foo1 bar1 # revision = 3
etcdctl put foo bar_new # revision = 4
etcdctl put foo1 bar1_new # revision = 5
```bash
$ etcdctl put foo bar # revision = 2
OK
$ etcdctl put foo1 bar1 # revision = 3
OK
$ etcdctl put foo bar_new # revision = 4
OK
$ etcdctl put foo1 bar1_new # revision = 5
OK
```
Here is an example to watch the historical changes:
```bash
# watch for changes on key `foo` since revision 2
$ etcdctl watch --rev=2 foo
@ -159,7 +336,9 @@ bar
PUT
foo
bar_new
```
```bash
# watch for changes on key `foo` since revision 3
$ etcdctl watch --rev=3 foo
PUT
@ -167,6 +346,39 @@ foo
bar_new
```
Here is an example to watch only from the last historical change:
```bash
# watch for changes on key `foo` and return last revision value along with modified value
$ etcdctl watch --prev-kv foo
# in another terminal: etcdctl put foo bar_latest
PUT
foo # key
bar_new # last value of foo key before modification
foo # key
bar_latest # value of foo key after modification
```
## Watch progress
Applications may want to check the progress of a watch to determine how up-to-date the watch stream is. For example, if a watch is used to update a cache, it can be useful to know if the cache is stale compared to the revision from a quorum read.
Progress requests can be issued using the "progress" command in interactive watch session to ask the etcd server to send a progress notify update in the watch stream:
```bash
$ etcdctl watch -i
$ watch a
$ progress
progress notify: 1
# in another terminal: etcdctl put x 0
# in another terminal: etcdctl put y 1
$ progress
progress notify: 3
```
Note: The revision number in the progress notify response is the revision from the local etcd server node that the watch stream is connected to. If this node is partitioned and not part of quorum, this progress notify revision might be lower than
than the revision returned by a quorum read against a non-partitioned etcd server node.
## Compacted revisions
As we mentioned, etcd keeps revisions so that applications can read past versions of keys. However, to avoid accumulating an unbounded amount of history, it is important to compact past revisions. After compacting, etcd removes historical revisions, releasing resources for future use. All superseded data with revisions before the compacted revision will be unavailable.
@ -182,13 +394,20 @@ $ etcdctl get --rev=4 foo
Error: rpc error: code = 11 desc = etcdserver: mvcc: required revision has been compacted
```
Note: The current revision of etcd server can be found using get command on any key (existent or non-existent) in json format. Example is shown below for mykey which does not exist in etcd server:
```bash
$ etcdctl get mykey -w=json
{"header":{"cluster_id":14841639068965178418,"member_id":10276657743932975437,"revision":15,"raft_term":4}}
```
## Grant leases
Applications can grant leases for keys from an etcd cluster. When a key is attached to a lease, its lifetime is bound to the lease's lifetime which in turn is governed by a time-to-live (TTL). Each lease has a minimum time-to-live (TTL) value specified by the application at grant time. The lease's actual TTL value is at least the minimum TTL and is chosen by the etcd cluster. Once a lease's TTL elapses, the lease expires and all attached keys are deleted.
Here is the command to grant a lease:
```
```bash
# grant a lease with 10 second TTL
$ etcdctl lease grant 10
lease 32695410dcc0ca06 granted with TTL(10s)
@ -204,7 +423,7 @@ Applications revoke leases by lease ID. Revoking a lease deletes all of its atta
Suppose we finished the following sequence of operations:
```
```bash
$ etcdctl lease grant 10
lease 32695410dcc0ca06 granted with TTL(10s)
$ etcdctl put --lease=32695410dcc0ca06 foo bar
@ -213,7 +432,7 @@ OK
Here is the command to revoke the same lease:
```
```bash
$ etcdctl lease revoke 32695410dcc0ca06
lease 32695410dcc0ca06 revoked
@ -227,17 +446,54 @@ Applications can keep a lease alive by refreshing its TTL so it does not expire.
Suppose we finished the following sequence of operations:
```
```bash
$ etcdctl lease grant 10
lease 32695410dcc0ca06 granted with TTL(10s)
```
Here is the command to keep the same lease alive:
```
$ etcdctl lease keep-alive 32695410dcc0ca0
lease 32695410dcc0ca0 keepalived with TTL(100)
lease 32695410dcc0ca0 keepalived with TTL(100)
lease 32695410dcc0ca0 keepalived with TTL(100)
```bash
$ etcdctl lease keep-alive 32695410dcc0ca06
lease 32695410dcc0ca06 keepalived with TTL(10)
lease 32695410dcc0ca06 keepalived with TTL(10)
lease 32695410dcc0ca06 keepalived with TTL(10)
...
```
## Get lease information
Applications may want to know about lease information, so that they can be renewed or to check if the lease still exists or it has expired. Applications may also want to know the keys to which a particular lease is attached.
Suppose we finished the following sequence of operations:
```bash
# grant a lease with 500 second TTL
$ etcdctl lease grant 500
lease 694d5765fc71500b granted with TTL(500s)
# attach key zoo1 to lease 694d5765fc71500b
$ etcdctl put zoo1 val1 --lease=694d5765fc71500b
OK
# attach key zoo2 to lease 694d5765fc71500b
$ etcdctl put zoo2 val2 --lease=694d5765fc71500b
OK
```
Here is the command to get information about the lease:
```bash
$ etcdctl lease timetolive 694d5765fc71500b
lease 694d5765fc71500b granted with TTL(500s), remaining(258s)
```
Here is the command to get information about the lease along with the keys attached with the lease:
```bash
$ etcdctl lease timetolive --keys 694d5765fc71500b
lease 694d5765fc71500b granted with TTL(500s), remaining(132s), attached keys([zoo2 zoo1])
# if the lease has expired or does not exist it will give the below response:
Error: etcdserver: requested lease not found
```

View File

@ -0,0 +1,11 @@
---
title: System limits
---
## Request size limit
etcd is designed to handle small key value pairs typical for metadata. Larger requests will work, but may increase the latency of other requests. By default, the maximum size of any request is 1.5 MiB. This limit is configurable through `--max-request-bytes` flag for etcd server.
## Storage size limit
The default storage size limit is 2GB, configurable with `--quota-backend-bytes` flag. 8GB is a suggested maximum size for normal environments and etcd warns at startup if the configured value exceeds it.

View File

@ -1,90 +1,151 @@
# Setup a local cluster
---
title: Set up a local cluster
---
For testing and development deployments, the quickest and easiest way is to set up a local cluster. For a production deployment, refer to the [clustering][clustering] section.
For testing and development deployments, the quickest and easiest way is to configure a local cluster. For a production deployment, refer to the [clustering][clustering] section.
## Local standalone cluster
Deploying an etcd cluster as a standalone cluster is straightforward. Start it with just one command:
### Starting a cluster
Run the following to deploy an etcd cluster as a standalone cluster:
```
$ ./etcd
...
```
The started etcd member listens on `localhost:2379` for client requests.
If the `etcd` binary is not present in the current working directory, it might be located either at `$GOPATH/bin/etcd` or at `/usr/local/bin/etcd`. Run the command appropriately.
To interact with the started cluster by using etcdctl:
The running etcd member listens on `localhost:2379` for client requests.
```
# use API version 3
$ export ETCDCTL_API=3
### Interacting with the cluster
$ ./etcdctl put foo bar
OK
Use `etcdctl` to interact with the running cluster:
$ ./etcdctl get foo
bar
```
1. Store an example key-value pair in the cluster:
```
$ ./etcdctl put foo bar
OK
```
If OK is printed, storing key-value pair is successful.
2. Retrieve the value of `foo`:
```
$ ./etcdctl get foo
bar
```
If `bar` is returned, interaction with the etcd cluster is working as expected.
## Local multi-member cluster
A Procfile is provided to easily set up a local multi-member cluster. Start a multi-member cluster with a few commands:
### Starting a cluster
```
# install goreman program to control Profile-based applications.
$ go get github.com/mattn/goreman
$ goreman -f Procfile start
...
```
A `Procfile` at the base of the etcd git repository is provided to easily configure a local multi-member cluster. To start a multi-member cluster, navigate to the root of the etcd source tree and perform the following:
The started members listen on `localhost:12379`, `localhost:22379`, and `localhost:32379` for client requests respectively.
1. Install `goreman` to control Procfile-based applications:
To interact with the started cluster by using etcdctl:
```
$ go get github.com/mattn/goreman
```
```
# use API version 3
$ export ETCDCTL_API=3
2. Start a cluster with `goreman` using etcd's stock Procfile:
$ etcdctl --write-out=table --endpoints=localhost:12379 member list
+------------------+---------+--------+------------------------+------------------------+
| ID | STATUS | NAME | PEER ADDRS | CLIENT ADDRS |
+------------------+---------+--------+------------------------+------------------------+
| 8211f1d0f64f3269 | started | infra1 | http://127.0.0.1:12380 | http://127.0.0.1:12379 |
| 91bc3c398fb3c146 | started | infra2 | http://127.0.0.1:22380 | http://127.0.0.1:22379 |
| fd422379fda50e48 | started | infra3 | http://127.0.0.1:32380 | http://127.0.0.1:32379 |
+------------------+---------+--------+------------------------+------------------------+
```
$ goreman -f Procfile start
```
$ etcdctl --endpoints=localhost:12379 put foo bar
OK
```
The members start running. They listen on `localhost:2379`, `localhost:22379`, and `localhost:32379` respectively for client requests.
To exercise etcd's fault tolerance, kill a member:
### Interacting with the cluster
```
# kill etcd2
$ goreman run stop etcd2
Use `etcdctl` to interact with the running cluster:
$ etcdctl --endpoints=localhost:12379 put key hello
OK
1. Print the list of members:
$ etcdctl --endpoints=localhost:12379 get key
hello
```
$ etcdctl --write-out=table --endpoints=localhost:2379 member list
```
The list of etcd members are displayed as follows:
# try to get key from the killed member
$ etcdctl --endpoints=localhost:22379 get key
2016/04/18 23:07:35 grpc: Conn.resetTransport failed to create client transport: connection error: desc = "transport: dial tcp 127.0.0.1:22379: getsockopt: connection refused"; Reconnecting to "localhost:22379"
Error: grpc: timed out trying to connect
```
+------------------+---------+--------+------------------------+------------------------+
| ID | STATUS | NAME | PEER ADDRS | CLIENT ADDRS |
+------------------+---------+--------+------------------------+------------------------+
| 8211f1d0f64f3269 | started | infra1 | http://127.0.0.1:2380 | http://127.0.0.1:2379 |
| 91bc3c398fb3c146 | started | infra2 | http://127.0.0.1:22380 | http://127.0.0.1:22379 |
| fd422379fda50e48 | started | infra3 | http://127.0.0.1:32380 | http://127.0.0.1:32379 |
+------------------+---------+--------+------------------------+------------------------+
```
# restart the killed member
$ goreman run restart etcd2
2. Store an example key-value pair in the cluster:
# get the key from restarted member
$ etcdctl --endpoints=localhost:22379 get key
hello
```
```
$ etcdctl put foo bar
OK
```
To learn more about interacting with etcd, read [interacting with etcd section][interacting].
If OK is printed, storing key-value pair is successful.
### Testing fault tolerance
To exercise etcd's fault tolerance, kill a member and attempt to retrieve the key.
1. Identify the process name of the member to be stopped.
The `Procfile` lists the properties of the multi-member cluster. For example, consider the member with the process name, `etcd2`.
2. Stop the member:
```
# kill etcd2
$ goreman run stop etcd2
```
3. Store a key:
```
$ etcdctl put key hello
OK
```
4. Retrieve the key that is stored in the previous step:
```
$ etcdctl get key
hello
```
5. Retrieve a key from the stopped member:
```
$ etcdctl --endpoints=localhost:22379 get key
```
The command should display an error caused by connection failure:
```
2017/06/18 23:07:35 grpc: Conn.resetTransport failed to create client transport: connection error: desc = "transport: dial tcp 127.0.0.1:22379: getsockopt: connection refused"; Reconnecting to "localhost:22379"
Error: grpc: timed out trying to connect
```
6. Restart the stopped member:
```
$ goreman run restart etcd2
```
7. Get the key from the restarted member:
```
$ etcdctl --endpoints=localhost:22379 get key
hello
```
Restarting the member re-establish the connection. `etcdctl` will now be able to retrieve the key successfully. To learn more about interacting with etcd, read [interacting with etcd section][interacting].
[interacting]: ./interacting_v3.md
[clustering]: ../op-guide/clustering.md

View File

@ -1,4 +1,6 @@
# Discovery service protocol
---
title: Discovery service protocol
---
Discovery service protocol helps new etcd member to discover all other members in cluster bootstrap phase using a shared discovery URL.

View File

@ -1,9 +1,11 @@
# Logging conventions
---
title: Logging conventions
---
etcd uses the [capnslog][capnslog] library for logging application output categorized into *levels*. A log message's level is determined according to these conventions:
* Error: Data has been lost, a request has failed for a bad reason, or a required resource has been lost
* Examples:
* Examples:
* A failure to allocate disk space for WAL
* Warning: (Hopefully) Temporary conditions that may cause errors, but may work fine. A replica disappearing (that may reconnect) is a warning.
@ -26,4 +28,4 @@ etcd uses the [capnslog][capnslog] library for logging application output catego
* Send a normal message to a remote peer
* Write a log entry to disk
[capnslog]: [https://github.com/coreos/pkg/tree/master/capnslog]
[capnslog]: https://github.com/coreos/pkg/tree/master/capnslog

View File

@ -1,8 +1,22 @@
# etcd release guide
---
title: etcd release guide
---
The guide talks about how to release a new version of etcd.
The procedure includes some manual steps for sanity checking but it can probably be further scripted. Please keep this document up-to-date if making changes to the release process.
The procedure includes some manual steps for sanity checking, but it can probably be further scripted. Please keep this document up-to-date if making changes to the release process.
## Release management
etcd community members are assigned to manage the release each etcd major/minor version as well as manage patches
and to each stable release branch. The managers are responsible for communicating the timelines and status of each
release and for ensuring the stability of the release branch.
| Releases | Manager |
| -------- | ------- |
| 3.1 patch (post 3.1.0) | Joe Betz [@jpbetz](https://github.com/jpbetz) |
| 3.2 patch (post 3.2.0) | Joe Betz [@jpbetz](https://github.com/jpbetz) |
| 3.3 patch (post 3.3.0) | Gyuho Lee [@gyuho](https://github.com/gyuho) |
## Prepare release
@ -18,47 +32,48 @@ All releases version numbers follow the format of [semantic versioning 2.0.0](ht
### Major, minor version release, or its pre-release
- Ensure the relevant milestone on GitHub is complete. All referenced issues should be closed, or moved elsewhere.
- Remove this release from [roadmap](https://github.com/coreos/etcd/blob/master/ROADMAP.md), if necessary.
- Remove this release from [roadmap](https://github.com/etcd-io/etcd/blob/master/ROADMAP.md), if necessary.
- Ensure the latest upgrade documentation is available.
- Bump [hardcoded MinClusterVerion in the repository](https://github.com/coreos/etcd/blob/master/version/version.go#L29), if necessary.
- Bump [hardcoded MinClusterVerion in the repository](https://github.com/etcd-io/etcd/blob/master/version/version.go#L29), if necessary.
- Add feature capability maps for the new version, if necessary.
### Patch version release
- Discuss about commits that are backported to the patch release. The commits should not include merge commits.
- Cherry-pick these commits starting from the oldest one into stable branch.
- To request a backport, devlopers submit cherrypick PRs targeting the release branch. The commits should not include merge commits. The commits should be restricted to bug fixes and security patches.
- The cherrypick PRs should target the appropriate release branch (`base:release-<major>-<minor>`). `hack/patch/cherrypick.sh` may be used to automatically generate cherrypick PRs.
- The release patch manager reviews the cherrypick PRs. Please discuss carefully what is backported to the patch release. Each patch release should be strictly better than it's predecessor.
- The release patch manager will cherry-pick these commits starting from the oldest one into stable branch.
## Write release note
- Write introduction for the new release. For example, what major bug we fix, what new features we introduce or what performance improvement we make.
- Write changelog for the last release. ChangeLog should be straightforward and easy to understand for the end-user.
- Put `[GH XXXX]` at the head of change line to reference Pull Request that introduces the change. Moreover, add a link on it to jump to the Pull Request.
- Find PRs with `release-note` label and explain them in `NEWS` file, as a straightforward summary of changes for end-users.
## Tag version
- Bump [hardcoded Version in the repository](https://github.com/coreos/etcd/blob/master/version/version.go#L30) to the latest version `${VERSION}`.
- Bump [hardcoded Version in the repository](https://github.com/etcd-io/etcd/blob/master/version/version.go#L30) to the latest version `${VERSION}`.
- Ensure all tests on CI system are passed.
- Manually check etcd is buildable in Linux, Darwin and Windows.
- Manually check upgrade etcd cluster of previous minor version works well.
- Manually check new features work well.
- Add a signed tag through `git tag -s ${VERSION}`.
- Sanity check tag correctness through `git show tags/$VERSION`.
- Push the tag to GitHub through `git push origin tags/$VERSION`. This assumes `origin` corresponds to "https://github.com/coreos/etcd".
- Push the tag to GitHub through `git push origin tags/$VERSION`. This assumes `origin` corresponds to "https://github.com/etcd-io/etcd".
## Build release binaries and images
- Ensure `actool` is available, or installing it through `go get github.com/appc/spec/actool`.
- Ensure `docker` is available.
Run release script in root directory:
```
./scripts/release.sh ${VERSION}
TAG=gcr.io/etcd-development/etcd ./scripts/release.sh ${VERSION}
```
It generates all release binaries and images under directory ./release.
## Sign binaries and images
## Sign binaries, images, and source code
etcd project key must be used to sign the generated binaries and images.`$SUBKEYID` is the key ID of etcd project Yubikey. Connect the key and run `gpg2 --card-status` to get the ID.
@ -68,6 +83,15 @@ The following commands are used for public release sign:
cd release
for i in etcd-*{.zip,.tar.gz}; do gpg2 --default-key $SUBKEYID --armor --output ${i}.asc --detach-sign ${i}; done
for i in etcd-*{.zip,.tar.gz}; do gpg2 --verify ${i}.asc ${i}; done
# sign zipped source code files
wget https://github.com/etcd-io/etcd/archive/${VERSION}.zip
gpg2 --armor --default-key $SUBKEYID --output ${VERSION}.zip.asc --detach-sign ${VERSION}.zip
gpg2 --verify ${VERSION}.zip.asc ${VERSION}.zip
wget https://github.com/etcd-io/etcd/archive/${VERSION}.tar.gz
gpg2 --armor --default-key $SUBKEYID --output ${VERSION}.tar.gz.asc --detach-sign ${VERSION}.tar.gz
gpg2 --verify ${VERSION}.tar.gz.asc ${VERSION}.tar.gz
```
The public key for GPG signing can be found at [CoreOS Application Signing Key](https://coreos.com/security/app-signing-key)
@ -77,17 +101,45 @@ The public key for GPG signing can be found at [CoreOS Application Signing Key](
- Set release title as the version name.
- Follow the format of previous release pages.
- Attach the generated binaries, aci image and signatures.
- Attach the generated binaries and signatures.
- Select whether it is a pre-release.
- Publish the release!
## Publish docker image in gcr.io
- Push docker image:
```
gcloud docker -- login -u _json_key -p "$(cat /etc/gcp-key-etcd.json)" https://gcr.io
for TARGET_ARCH in "-arm64" "-ppc64le" ""; do
gcloud docker -- push gcr.io/etcd-development/etcd:${VERSION}${TARGET_ARCH}
done
```
- Add `latest` tag to the new image on [gcr.io](https://console.cloud.google.com/gcr/images/etcd-development/GLOBAL/etcd?project=etcd-development&authuser=1) if this is a stable release.
## Publish docker image in Quay.io
- Build docker images with quay.io:
```
for TARGET_ARCH in "amd64" "arm64" "ppc64le"; do
TAG=quay.io/coreos/etcd GOARCH=${TARGET_ARCH} \
BINARYDIR=release/etcd-${VERSION}-linux-${TARGET_ARCH} \
BUILDDIR=release \
./scripts/build-docker ${VERSION}
done
```
- Push docker image:
```
docker login quay.io
docker push quay.io/coreos/etcd:${VERSION}
for TARGET_ARCH in "-arm64" "-ppc64le" ""; do
docker push quay.io/coreos/etcd:${VERSION}${TARGET_ARCH}
done
```
- Add `latest` tag to the new image on [quay.io](https://quay.io/repository/coreos/etcd?tag=latest&tab=tags) if this is a stable release.
@ -105,5 +157,5 @@ git log ...${PREV_VERSION} --pretty=format:"%an" | sort | uniq | tr '\n' ',' | s
## Post release
- Create new stable branch through `git push origin ${VERSION_MAJOR}.${VERSION_MINOR}` if this is a major stable release. This assumes `origin` corresponds to "https://github.com/coreos/etcd".
- Bump [hardcoded Version in the repository](https://github.com/coreos/etcd/blob/master/version/version.go#L30) to the version `${VERSION}+git`.
- Create new stable branch through `git push origin ${VERSION_MAJOR}.${VERSION_MINOR}` if this is a major stable release. This assumes `origin` corresponds to "https://github.com/etcd-io/etcd".
- Bump [hardcoded Version in the repository](https://github.com/etcd-io/etcd/blob/master/version/version.go#L30) to the version `${VERSION}+git`.

View File

@ -1,8 +1,10 @@
# Download and build
---
title: Download and build
---
## System requirements
The etcd performance benchmarks run etcd on 8 vCPU, 16GB RAM, 50GB SSD GCE instances, but any relatively modern machine with low latency storage and a few gigabytes of memory should suffice for most use cases. Applications with large v2 data stores will require more memory than a large v3 data store since data is kept in anonymous memory instead of memory mapped from a file. than For running etcd on a cloud provider, we suggest at least a medium instance on AWS or a standard-1 instance on GCE.
The etcd performance benchmarks run etcd on 8 vCPU, 16GB RAM, 50GB SSD GCE instances, but any relatively modern machine with low latency storage and a few gigabytes of memory should suffice for most use cases. Applications with large v2 data stores will require more memory than a large v3 data store since data is kept in anonymous memory instead of memory mapped from a file. For running etcd on a cloud provider, see the [Example hardware configuration][example-hardware-configurations] documentation.
## Download the pre-built binary
@ -10,47 +12,58 @@ The easiest way to get etcd is to use one of the pre-built release binaries whic
## Build the latest version
For those wanting to try the very latest version, build etcd from the `master` branch.
[Go](https://golang.org/) version 1.5+ is required to build the latest version of etcd.
For those wanting to try the very latest version, build etcd from the `master` branch. [Go](https://golang.org/) version 1.9+ is required to build the latest version of etcd. To ensure etcd is built against well-tested libraries, etcd vendors its dependencies for official release binaries. However, etcd's vendoring is also optional to avoid potential import conflicts when embedding the etcd server or using the etcd client.
Here are the commands to build an etcd binary from the `master` branch:
To build `etcd` from the `master` branch without a `GOPATH` using the official `build` script:
```
# go is required
$ go version
go version go1.6 darwin/amd64
# GOPATH should be set correctly
$ echo $GOPATH
/Users/example/go
$ mkdir -p $GOPATH/src/github.com/coreos
$ cd $GOPATH/src/github.com/coreos
$ git clone github.com:coreos/etcd.git
```sh
$ git clone https://github.com/etcd-io/etcd.git
$ cd etcd
$ ./build
$ ./bin/etcd
...
```
To build a vendored `etcd` from the `master` branch via `go get`:
```sh
# GOPATH should be set
$ echo $GOPATH
/Users/example/go
$ go get -v go.etcd.io/etcd
$ go get -v go.etcd.io/etcd/etcdctl
```
## Test the installation
Check the etcd binary is built correctly by starting etcd and setting a key.
Start etcd:
### Starting etcd
```
If etcd is built without using `go get`, run the following:
```sh
$ ./bin/etcd
```
If etcd is built using `go get`, run the following:
Set a key:
```sh
$ $GOPATH/bin/etcd
```
$ ETCDCTL_API=3 ./bin/etcdctl put foo bar
### Setting a key
Run the following:
```sh
$ ./bin/etcdctl put foo bar
OK
```
(or `$GOPATH/bin/etcdctl put foo bar` if etcdctl was installed with `go get`)
If OK is printed, then etcd is working!
[github-release]: https://github.com/coreos/etcd/releases/
[github-release]: https://github.com/etcd-io/etcd/releases/
[go]: https://golang.org/doc/install
[build-script]: ../build
[cmd-directory]: ../cmd
[example-hardware-configurations]: op-guide/hardware.md#example-hardware-configurations

View File

@ -12,62 +12,107 @@ The easiest way to get started using etcd as a distributed key-value store is to
- [Setting up local clusters][local_cluster]
- [Interacting with etcd][interacting]
- [API references][api_ref]
- [gRPC gateway][api_grpc_gateway]
- gRPC [etcd core][api_ref] and [etcd concurrency][api_concurrency_ref] API references
- [HTTP JSON API through the gRPC gateway][api_grpc_gateway]
- [gRPC naming and discovery][grpc_naming]
- [Client][namespace_client] and [proxy][namespace_proxy] namespacing
- [Embedding etcd][embed_etcd]
- [Experimental features and APIs][experimental]
- [System limits][system-limit]
## Operating etcd clusters
Administrators who need to create reliable and scalable key-value stores for the developers they support should begin with a [cluster on multiple machines][clustering].
Administrators who need a fault-tolerant etcd cluster for either development or production should begin with a [cluster on multiple machines][clustering].
- [Setting up clusters][clustering]
- [Run etcd clusters inside containers][container]
- [Configuration][conf]
- [Security][security]
- Monitoring
### Setting up etcd
- [Configuration flags][conf]
- [Multi-member cluster][clustering]
- [gRPC proxy][grpc_proxy]
- [L4 gateway][gateway]
### System configuration
- [Supported systems][supported_platforms]
- [Hardware recommendations][hardware]
- [Performance benchmarking][performance]
- [Tuning][tuning]
### Platform guides
- [Amazon Web Services][aws_platform]
- [Container Linux, systemd][container_linux_platform]
- [FreeBSD][freebsd_platform]
- [Docker container][container_docker]
- [rkt container][container_rkt]
### Security
- [TLS][security]
- [Role-based access control][authentication]
### Maintenance and troubleshooting
- [Frequently asked questions][faq]
- [Monitoring][monitoring]
- [Maintenance][maintenance]
- [Understand failures][failures]
- [Failure modes][failures]
- [Disaster recovery][recovery]
- [Performance][performance]
- [Versioning][versioning]
- [Supported platform][supported_platform]
- [Upgrading][upgrading]
## Learning
To learn more about the concepts and internals behind etcd, read the following pages:
- Why etcd (TODO)
- [Why etcd?][why]
- [Understand data model][data_model]
- [Understand APIs][understand_apis]
- [Glossary][glossary]
- Internals (TODO)
## Upgrading and compatibility
- [Migrate applications from using API v2 to API v3][v2_migration]
- [Updating v2.3 to v3.0][v3_upgrade]
## Troubleshooting
- Design
- [Auth subsystem][design-auth-v3]
- [Client][design-client]
- [Learner][design-learner]
[api_ref]: dev-guide/api_reference_v3.md
[api_concurrency_ref]: dev-guide/api_concurrency_reference_v3.md
[api_grpc_gateway]: dev-guide/api_grpc_gateway.md
[clustering]: op-guide/clustering.md
[conf]: op-guide/configuration.md
[system-limit]: dev-guide/limit.md
[faq]: faq.md
[why]: learning/why.md
[data_model]: learning/data_model.md
[demo]: demo.md
[download_build]: dl_build.md
[embed_etcd]: https://godoc.org/github.com/etcd-io/etcd/embed
[grpc_naming]: dev-guide/grpc_naming.md
[failures]: op-guide/failures.md
[gateway]: op-guide/gateway.md
[glossary]: learning/glossary.md
[namespace_client]: https://godoc.org/github.com/etcd-io/etcd/clientv3/namespace
[namespace_proxy]: op-guide/grpc_proxy.md#namespacing
[grpc_proxy]: op-guide/grpc_proxy.md
[hardware]: op-guide/hardware.md
[interacting]: dev-guide/interacting_v3.md
[local_cluster]: dev-guide/local_cluster.md
[performance]: op-guide/performance.md
[recovery]: op-guide/recovery.md
[maintenance]: op-guide/maintenance.md
[security]: op-guide/security.md
[monitoring]: op-guide/monitoring.md
[v2_migration]: op-guide/v2-migration.md
[container]: op-guide/container.md
[container_rkt]: op-guide/container.md#rkt
[container_docker]: op-guide/container.md#docker
[understand_apis]: learning/api.md
[versioning]: op-guide/versioning.md
[supported_platform]: op-guide/supported-platform.md
[supported_platforms]: op-guide/supported-platform.md
[container_linux_platform]: platforms/container-linux-systemd.md
[freebsd_platform]: platforms/freebsd.md
[aws_platform]: platforms/aws.md
[experimental]: dev-guide/experimental_apis.md
[v3_upgrade]: upgrades/upgrade_3_0.md
[authentication]: op-guide/authentication.md
[design-auth-v3]: learning/design-auth-v3.md
[design-client]: learning/design-client.md
[design-learner]: learning/design-learner.md
[tuning]: tuning.md
[upgrading]: upgrades/upgrading-etcd.md

View File

@ -0,0 +1,25 @@
# Prometheus Monitoring Mixin for etcd
> NOTE: This project is *alpha* stage. Flags, configuration, behaviour and design may change significantly in following releases.
A set of customisable Prometheus alerts for etcd.
Instructions for use are the same as the [kubernetes-mixin](https://github.com/kubernetes-monitoring/kubernetes-mixin).
## Background
* For more information about monitoring mixins, see this [design doc](https://docs.google.com/document/d/1A9xvzwqnFVSOZ5fD3blKODXfsat5fg6ZhnKu9LK3lB4/edit#).
## Testing alerts
Make sure to have [jsonnet](https://jsonnet.org/) and [gojsontoyaml](https://github.com/brancz/gojsontoyaml) installed.
First compile the mixin to a YAML file, which the promtool will read:
```
jsonnet -e '(import "mixin.libsonnet").prometheusAlerts' | gojsontoyaml > mixin.yaml
```
Then run the unit test:
```
promtool test rules test.yaml
```

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,85 @@
rule_files:
- mixin.yaml
evaluation_interval: 1m
tests:
- interval: 1m
input_series:
- series: 'up{job="etcd",instance="10.10.10.0"}'
values: '1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0'
- series: 'up{job="etcd",instance="10.10.10.1"}'
values: '1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0'
- series: 'up{job="etcd",instance="10.10.10.2"}'
values: '1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0'
alert_rule_test:
- eval_time: 3m
alertname: etcdInsufficientMembers
- eval_time: 5m
alertname: etcdInsufficientMembers
- eval_time: 5m
alertname: etcdMembersDown
- eval_time: 7m
alertname: etcdMembersDown
exp_alerts:
- exp_labels:
job: etcd
severity: critical
exp_annotations:
message: 'etcd cluster "etcd": members are down (1).'
- eval_time: 7m
alertname: etcdInsufficientMembers
- eval_time: 11m
alertname: etcdInsufficientMembers
exp_alerts:
- exp_labels:
job: etcd
severity: critical
exp_annotations:
message: 'etcd cluster "etcd": insufficient members (1).'
- eval_time: 15m
alertname: etcdInsufficientMembers
exp_alerts:
- exp_labels:
job: etcd
severity: critical
exp_annotations:
message: 'etcd cluster "etcd": insufficient members (0).'
- interval: 1m
input_series:
- series: 'up{job="etcd",instance="10.10.10.0"}'
values: '1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0'
- series: 'up{job="etcd",instance="10.10.10.1"}'
values: '1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0'
- series: 'up{job="etcd",instance="10.10.10.2"}'
values: '1 1 1 1 0 0 0 0'
alert_rule_test:
- eval_time: 10m
alertname: etcdMembersDown
exp_alerts:
- exp_labels:
job: etcd
severity: critical
exp_annotations:
message: 'etcd cluster "etcd": members are down (2).'
- interval: 1m
input_series:
- series: 'up{job="etcd",instance="10.10.10.0"}'
values: '1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0'
- series: 'up{job="etcd",instance="10.10.10.1"}'
values: '1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0'
- series: 'etcd_network_peer_sent_failures_total{To="member-1",job="etcd",endpoint="test"}'
values: '0 0 1 2 3 4 5 6 7 8 9 10'
alert_rule_test:
- eval_time: 4m
alertname: etcdMembersDown
- eval_time: 6m
alertname: etcdMembersDown
exp_alerts:
- exp_labels:
job: etcd
severity: critical
exp_annotations:
message: 'etcd cluster "etcd": members are down (1).'

165
Documentation/faq.md Normal file
View File

@ -0,0 +1,165 @@
---
title: Frequently Asked Questions (FAQ)
---
## etcd, general
### Do clients have to send requests to the etcd leader?
[Raft][raft] is leader-based; the leader handles all client requests which need cluster consensus. However, the client does not need to know which node is the leader. Any request that requires consensus sent to a follower is automatically forwarded to the leader. Requests that do not require consensus (e.g., serialized reads) can be processed by any cluster member.
## Configuration
### What is the difference between listen-<client,peer>-urls, advertise-client-urls or initial-advertise-peer-urls?
`listen-client-urls` and `listen-peer-urls` specify the local addresses etcd server binds to for accepting incoming connections. To listen on a port for all interfaces, specify `0.0.0.0` as the listen IP address.
`advertise-client-urls` and `initial-advertise-peer-urls` specify the addresses etcd clients or other etcd members should use to contact the etcd server. The advertise addresses must be reachable from the remote machines. Do not advertise addresses like `localhost` or `0.0.0.0` for a production setup since these addresses are unreachable from remote machines.
### Why doesn't changing `--listen-peer-urls` or `--initial-advertise-peer-urls` update the advertised peer URLs in `etcdctl member list`?
A member's advertised peer URLs come from `--initial-advertise-peer-urls` on initial cluster boot. Changing the listen peer URLs or the initial advertise peers after booting the member won't affect the exported advertise peer URLs since changes must go through quorum to avoid membership configuration split brain. Use `etcdctl member update` to update a member's peer URLs.
## Deployment
### System requirements
Since etcd writes data to disk, its performance strongly depends on disk performance. For this reason, SSD is highly recommended. To assess whether a disk is fast enough for etcd, one possibility is using a disk benchmarking tool such as [fio][fio]. For an example on how to do that, read [here][fio-blog-post]. To prevent performance degradation or unintentionally overloading the key-value store, etcd enforces a configurable storage size quota set to 2GB by default. To avoid swapping or running out of memory, the machine should have at least as much RAM to cover the quota. 8GB is a suggested maximum size for normal environments and etcd warns at startup if the configured value exceeds it. At CoreOS, an etcd cluster is usually deployed on dedicated CoreOS Container Linux machines with dual-core processors, 2GB of RAM, and 80GB of SSD *at the very least*. **Note that performance is intrinsically workload dependent; please test before production deployment**. See [hardware][hardware-setup] for more recommendations.
Most stable production environment is Linux operating system with amd64 architecture; see [supported platform][supported-platform] for more.
### Why an odd number of cluster members?
An etcd cluster needs a majority of nodes, a quorum, to agree on updates to the cluster state. For a cluster with n members, quorum is (n/2)+1. For any odd-sized cluster, adding one node will always increase the number of nodes necessary for quorum. Although adding a node to an odd-sized cluster appears better since there are more machines, the fault tolerance is worse since exactly the same number of nodes may fail without losing quorum but there are more nodes that can fail. If the cluster is in a state where it can't tolerate any more failures, adding a node before removing nodes is dangerous because if the new node fails to register with the cluster (e.g., the address is misconfigured), quorum will be permanently lost.
### What is maximum cluster size?
Theoretically, there is no hard limit. However, an etcd cluster probably should have no more than seven nodes. [Google Chubby lock service][chubby], similar to etcd and widely deployed within Google for many years, suggests running five nodes. A 5-member etcd cluster can tolerate two member failures, which is enough in most cases. Although larger clusters provide better fault tolerance, the write performance suffers because data must be replicated across more machines.
### What is failure tolerance?
An etcd cluster operates so long as a member quorum can be established. If quorum is lost through transient network failures (e.g., partitions), etcd automatically and safely resumes once the network recovers and restores quorum; Raft enforces cluster consistency. For power loss, etcd persists the Raft log to disk; etcd replays the log to the point of failure and resumes cluster participation. For permanent hardware failure, the node may be removed from the cluster through [runtime reconfiguration][runtime reconfiguration].
It is recommended to have an odd number of members in a cluster. An odd-size cluster tolerates the same number of failures as an even-size cluster but with fewer nodes. The difference can be seen by comparing even and odd sized clusters:
| Cluster Size | Majority | Failure Tolerance |
|:-:|:-:|:-:|
| 1 | 1 | 0 |
| 2 | 2 | 0 |
| 3 | 2 | 1 |
| 4 | 3 | 1 |
| 5 | 3 | 2 |
| 6 | 4 | 2 |
| 7 | 4 | 3 |
| 8 | 5 | 3 |
| 9 | 5 | 4 |
Adding a member to bring the size of cluster up to an even number doesn't buy additional fault tolerance. Likewise, during a network partition, an odd number of members guarantees that there will always be a majority partition that can continue to operate and be the source of truth when the partition ends.
### Does etcd work in cross-region or cross data center deployments?
Deploying etcd across regions improves etcd's fault tolerance since members are in separate failure domains. The cost is higher consensus request latency from crossing data center boundaries. Since etcd relies on a member quorum for consensus, the latency from crossing data centers will be somewhat pronounced because at least a majority of cluster members must respond to consensus requests. Additionally, cluster data must be replicated across all peers, so there will be bandwidth cost as well.
With longer latencies, the default etcd configuration may cause frequent elections or heartbeat timeouts. See [tuning] for adjusting timeouts for high latency deployments.
## Operation
### How to backup a etcd cluster?
etcdctl provides a `snapshot` command to create backups. See [backup][backup] for more details.
### Should I add a member before removing an unhealthy member?
When replacing an etcd node, it's important to remove the member first and then add its replacement.
etcd employs distributed consensus based on a quorum model; (n/2)+1 members, a majority, must agree on a proposal before it can be committed to the cluster. These proposals include key-value updates and membership changes. This model totally avoids any possibility of split brain inconsistency. The downside is permanent quorum loss is catastrophic.
How this applies to membership: If a 3-member cluster has 1 downed member, it can still make forward progress because the quorum is 2 and 2 members are still live. However, adding a new member to a 3-member cluster will increase the quorum to 3 because 3 votes are required for a majority of 4 members. Since the quorum increased, this extra member buys nothing in terms of fault tolerance; the cluster is still one node failure away from being unrecoverable.
Additionally, that new member is risky because it may turn out to be misconfigured or incapable of joining the cluster. In that case, there's no way to recover quorum because the cluster has two members down and two members up, but needs three votes to change membership to undo the botched membership addition. etcd will by default reject member add attempts that could take down the cluster in this manner.
On the other hand, if the downed member is removed from cluster membership first, the number of members becomes 2 and the quorum remains at 2. Following that removal by adding a new member will also keep the quorum steady at 2. So, even if the new node can't be brought up, it's still possible to remove the new member through quorum on the remaining live members.
### Why won't etcd accept my membership changes?
etcd sets `strict-reconfig-check` in order to reject reconfiguration requests that would cause quorum loss. Abandoning quorum is really risky (especially when the cluster is already unhealthy). Although it may be tempting to disable quorum checking if there's quorum loss to add a new member, this could lead to full fledged cluster inconsistency. For many applications, this will make the problem even worse ("disk geometry corruption" being a candidate for most terrifying).
### Why does etcd lose its leader from disk latency spikes?
This is intentional; disk latency is part of leader liveness. Suppose the cluster leader takes a minute to fsync a raft log update to disk, but the etcd cluster has a one second election timeout. Even though the leader can process network messages within the election interval (e.g., send heartbeats), it's effectively unavailable because it can't commit any new proposals; it's waiting on the slow disk. If the cluster frequently loses its leader due to disk latencies, try [tuning][tuning] the disk settings or etcd time parameters.
### What does the etcd warning "request ignored (cluster ID mismatch)" mean?
Every new etcd cluster generates a new cluster ID based on the initial cluster configuration and a user-provided unique `initial-cluster-token` value. By having unique cluster ID's, etcd is protected from cross-cluster interaction which could corrupt the cluster.
Usually this warning happens after tearing down an old cluster, then reusing some of the peer addresses for the new cluster. If any etcd process from the old cluster is still running it will try to contact the new cluster. The new cluster will recognize a cluster ID mismatch, then ignore the request and emit this warning. This warning is often cleared by ensuring peer addresses among distinct clusters are disjoint.
### What does "mvcc: database space exceeded" mean and how do I fix it?
The [multi-version concurrency control][api-mvcc] data model in etcd keeps an exact history of the keyspace. Without periodically compacting this history (e.g., by setting `--auto-compaction`), etcd will eventually exhaust its storage space. If etcd runs low on storage space, it raises a space quota alarm to protect the cluster from further writes. So long as the alarm is raised, etcd responds to write requests with the error `mvcc: database space exceeded`.
To recover from the low space quota alarm:
1. [Compact][maintenance-compact] etcd's history.
2. [Defragment][maintenance-defragment] every etcd endpoint.
3. [Disarm][maintenance-disarm] the alarm.
### What does the etcd warning "etcdserver/api/v3rpc: transport: http2Server.HandleStreams failed to read frame: read tcp 127.0.0.1:2379->127.0.0.1:43020: read: connection reset by peer" mean?
This is gRPC-side warning when a server receives a TCP RST flag with client-side streams being prematurely closed. For example, a client closes its connection, while gRPC server has not yet processed all HTTP/2 frames in the TCP queue. Some data may have been lost in server side, but it is ok so long as client connection has already been closed.
Only [old versions of gRPC](https://github.com/grpc/grpc-go/issues/1362) log this. etcd [>=v3.2.13 by default log this with DEBUG level](https://github.com/etcd-io/etcd/pull/9080), thus only visible with `--debug` flag enabled.
## Performance
### How should I benchmark etcd?
Try the [benchmark] tool. Current [benchmark results][benchmark-result] are available for comparison.
### What does the etcd warning "apply entries took too long" mean?
After a majority of etcd members agree to commit a request, each etcd server applies the request to its data store and persists the result to disk. Even with a slow mechanical disk or a virtualized network disk, such as Amazons EBS or Googles PD, applying a request should normally take fewer than 50 milliseconds. If the average apply duration exceeds 100 milliseconds, etcd will warn that entries are taking too long to apply.
Usually this issue is caused by a slow disk. The disk could be experiencing contention among etcd and other applications, or the disk is too simply slow (e.g., a shared virtualized disk). To rule out a slow disk from causing this warning, monitor [backend_commit_duration_seconds][backend_commit_metrics] (p99 duration should be less than 25ms) to confirm the disk is reasonably fast. If the disk is too slow, assigning a dedicated disk to etcd or using faster disk will typically solve the problem.
The second most common cause is CPU starvation. If monitoring of the machines CPU usage shows heavy utilization, there may not be enough compute capacity for etcd. Moving etcd to dedicated machine, increasing process resource isolation cgroups, or renicing the etcd server process into a higher priority can usually solve the problem.
Expensive user requests which access too many keys (e.g., fetching the entire keyspace) can also cause long apply latencies. Accessing fewer than a several hundred keys per request, however, should always be performant.
If none of the above suggestions clear the warnings, please [open an issue][new_issue] with detailed logging, monitoring, metrics and optionally workload information.
### What does the etcd warning "failed to send out heartbeat on time" mean?
etcd uses a leader-based consensus protocol for consistent data replication and log execution. Cluster members elect a single leader, all other members become followers. The elected leader must periodically send heartbeats to its followers to maintain its leadership. Followers infer leader failure if no heartbeats are received within an election interval and trigger an election. If a leader doesnt send its heartbeats in time but is still running, the election is spurious and likely caused by insufficient resources. To catch these soft failures, if the leader skips two heartbeat intervals, etcd will warn it failed to send a heartbeat on time.
Usually this issue is caused by a slow disk. Before the leader sends heartbeats attached with metadata, it may need to persist the metadata to disk. The disk could be experiencing contention among etcd and other applications, or the disk is too simply slow (e.g., a shared virtualized disk). To rule out a slow disk from causing this warning, monitor [wal_fsync_duration_seconds][wal_fsync_duration_seconds] (p99 duration should be less than 10ms) to confirm the disk is reasonably fast. If the disk is too slow, assigning a dedicated disk to etcd or using faster disk will typically solve the problem. To tell whether a disk is fast enough for etcd, a benchmarking tool such as [fio][fio] can be used. Read [here][fio-blog-post] for an example.
The second most common cause is CPU starvation. If monitoring of the machines CPU usage shows heavy utilization, there may not be enough compute capacity for etcd. Moving etcd to dedicated machine, increasing process resource isolation with cgroups, or renicing the etcd server process into a higher priority can usually solve the problem.
A slow network can also cause this issue. If network metrics among the etcd machines shows long latencies or high drop rate, there may not be enough network capacity for etcd. Moving etcd members to a less congested network will typically solve the problem. However, if the etcd cluster is deployed across data centers, long latency between members is expected. For such deployments, tune the `heartbeat-interval` configuration to roughly match the round trip time between the machines, and the `election-timeout` configuration to be at least 5 * `heartbeat-interval`. See [tuning documentation][tuning] for detailed information.
If none of the above suggestions clear the warnings, please [open an issue][new_issue] with detailed logging, monitoring, metrics and optionally workload information.
### What does the etcd warning "snapshotting is taking more than x seconds to finish ..." mean?
etcd sends a snapshot of its complete key-value store to refresh slow followers and for [backups][backup]. Slow snapshot transfer times increase MTTR; if the cluster is ingesting data with high throughput, slow followers may livelock by needing a new snapshot before finishing receiving a snapshot. To catch slow snapshot performance, etcd warns when sending a snapshot takes more than thirty seconds and exceeds the expected transfer time for a 1Gbps connection.
[hardware-setup]: ./op-guide/hardware.md
[supported-platform]: ./op-guide/supported-platform.md
[wal_fsync_duration_seconds]: ./metrics.md#disk
[tuning]: ./tuning.md
[new_issue]: https://github.com/etcd-io/etcd/issues/new
[backend_commit_metrics]: ./metrics.md#disk
[raft]: https://raft.github.io/raft.pdf
[backup]: https://github.com/etcd-io/etcd/blob/master/Documentation/op-guide/recovery.md#snapshotting-the-keyspace
[chubby]: http://static.googleusercontent.com/media/research.google.com/en//archive/chubby-osdi06.pdf
[runtime reconfiguration]: https://github.com/etcd-io/etcd/blob/master/Documentation/op-guide/runtime-configuration.md
[benchmark]: https://github.com/coreos/etcd/tree/master/tools/benchmark
[benchmark-result]: https://github.com/etcd-io/etcd/blob/master/Documentation/op-guide/performance.md
[api-mvcc]: learning/api.md#revisions
[maintenance-compact]: op-guide/maintenance.md#history-compaction
[maintenance-defragment]: op-guide/maintenance.md#defragmentation
[maintenance-disarm]: ../etcdctl/README.md#alarm-disarm
[fio]: https://github.com/axboe/fio
[fio-blog-post]: https://www.ibm.com/blogs/bluemix/2019/04/using-fio-to-tell-whether-your-storage-is-fast-enough-for-etcd/

View File

@ -0,0 +1,179 @@
---
title: Libraries and tools
---
**Tools**
- [etcdctl](https://github.com/etcd-io/etcd/tree/master/etcdctl) - A command line client for etcd
- [etcd-backup](https://github.com/fanhattan/etcd-backup) - A powerful command line utility for dumping/restoring etcd - Supports v2
- [etcd-dump](https://npmjs.org/package/etcd-dump) - Command line utility for dumping/restoring etcd.
- [etcd-fs](https://github.com/xetorthio/etcd-fs) - FUSE filesystem for etcd
- [etcddir](https://github.com/rekby/etcddir) - Realtime sync etcd and local directory. Work with windows and linux.
- [etcd-browser](https://github.com/henszey/etcd-browser) - A web-based key/value editor for etcd using AngularJS
- [etcd-lock](https://github.com/datawisesystems/etcd-lock) - Master election & distributed r/w lock implementation using etcd - Supports v2
- [etcd-console](https://github.com/matishsiao/etcd-console) - A web-base key/value editor for etcd using PHP
- [etcd-viewer](https://github.com/nikfoundas/etcd-viewer) - An etcd key-value store editor/viewer written in Java
- [etcdtool](https://github.com/mickep76/etcdtool) - Export/Import/Edit etcd directory as JSON/YAML/TOML and Validate directory using JSON schema
- [etcd-rest](https://github.com/mickep76/etcd-rest) - Create generic REST API in Go using etcd as a backend with validation using JSON schema
- [etcdsh](https://github.com/kamilhark/etcdsh) - A command line client with support of command history and tab completion. Supports v2
- [etcdloadtest](https://github.com/sinsharat/etcdloadtest) - A command line load test client for etcd version 3.0 and above.
- [lucas](https://github.com/ringtail/lucas) - A web-based key-value viewer for kubernetes etcd3.0+ cluster.
**Go libraries**
- [etcd/clientv3](https://github.com/etcd-io/etcd/blob/master/clientv3) - the officially maintained Go client for v3
- [etcd/client](https://github.com/etcd-io/etcd/blob/master/client) - the officially maintained Go client for v2
- [go-etcd](https://github.com/coreos/go-etcd) - the deprecated official client. May be useful for older (<2.0.0) versions of etcd.
- [encWrapper](https://github.com/lumjjb/etcd/tree/enc_wrapper/clientwrap/encwrapper) - encWrapper is an encryption wrapper for the etcd client Keys API/KV.
**Java libraries**
- [coreos/jetcd](https://github.com/etcd-io/jetcd) - Supports v3
- [boonproject/etcd](https://github.com/boonproject/boon/blob/master/etcd/README.md) - Supports v2, Async/Sync and waits
- [justinsb/jetcd](https://github.com/justinsb/jetcd)
- [diwakergupta/jetcd](https://github.com/diwakergupta/jetcd) - Supports v2
- [jurmous/etcd4j](https://github.com/jurmous/etcd4j) - Supports v2, Async/Sync, waits and SSL
- [AdoHe/etcd4j](http://github.com/AdoHe/etcd4j) - Supports v2 (enhance for real production cluster)
- [cdancy/etcd-rest](https://github.com/cdancy/etcd-rest) - Uses jclouds to provide a complete implementation of v2 API.
**Scala libraries**
- [maciej/etcd-client](https://github.com/maciej/etcd-client) - Supports v2. Akka HTTP-based fully async client
- [eiipii/etcdhttpclient](https://bitbucket.org/eiipii/etcdhttpclient) - Supports v2. Async HTTP client based on Netty and Scala Futures.
**Perl libraries**
- [hexfusion/perl-net-etcd](https://github.com/hexfusion/perl-net-etcd) - Supports v3 grpc gateway HTTP API
- [robn/p5-etcd](https://github.com/robn/p5-etcd) - Supports v2
**Python libraries**
- [kragniz/python-etcd3](https://github.com/kragniz/python-etcd3) - Client for v3
- [jplana/python-etcd](https://github.com/jplana/python-etcd) - Supports v2
- [russellhaering/txetcd](https://github.com/russellhaering/txetcd) - a Twisted Python library
- [cholcombe973/autodock](https://github.com/cholcombe973/autodock) - A docker deployment automation tool
- [lisael/aioetcd](https://github.com/lisael/aioetcd) - (Python 3.4+) Asyncio coroutines client (Supports v2)
- [txaio-etcd](https://github.com/crossbario/txaio-etcd) - Asynchronous etcd v3-only client library for Twisted (today) and asyncio (future)
- [dims/etcd3-gateway](https://github.com/dims/etcd3-gateway) - etcd v3 API library using the HTTP grpc gateway
- [aioetcd3](https://github.com/gaopeiliang/aioetcd3) - (Python 3.6+) etcd v3 API for asyncio
- [Revolution1/etcd3-py](https://github.com/Revolution1/etcd3-py) - (python2.7 and python3.5+) Python client for etcd v3, using gRPC-JSON-Gateway
**Node libraries**
- [mixer/etcd3](https://github.com/mixer/etcd3) - Supports v3
- [stianeikeland/node-etcd](https://github.com/stianeikeland/node-etcd) - Supports v2 (w Coffeescript)
- [lavagetto/nodejs-etcd](https://github.com/lavagetto/nodejs-etcd) - Supports v2
- [deedubs/node-etcd-config](https://github.com/deedubs/node-etcd-config) - Supports v2
**Ruby libraries**
- [iconara/etcd-rb](https://github.com/iconara/etcd-rb)
- [jpfuentes2/etcd-ruby](https://github.com/jpfuentes2/etcd-ruby)
- [ranjib/etcd-ruby](https://github.com/ranjib/etcd-ruby) - Supports v2
- [davissp14/etcdv3-ruby](https://github.com/davissp14/etcdv3-ruby) - Supports v3
**C libraries**
- [apache/celix/etcdlib](https://github.com/apache/celix/tree/develop/etcdlib) - Supports v2
- [jdarcy/etcd-api](https://github.com/jdarcy/etcd-api) - Supports v2
- [shafreeck/cetcd](https://github.com/shafreeck/cetcd) - Supports v2
**C++ libraries**
- [edwardcapriolo/etcdcpp](https://github.com/edwardcapriolo/etcdcpp) - Supports v2
- [suryanathan/etcdcpp](https://github.com/suryanathan/etcdcpp) - Supports v2 (with waits)
- [nokia/etcd-cpp-api](https://github.com/nokia/etcd-cpp-api) - Supports v2
- [nokia/etcd-cpp-apiv3](https://github.com/nokia/etcd-cpp-apiv3) - Supports v3
**Clojure libraries**
- [aterreno/etcd-clojure](https://github.com/aterreno/etcd-clojure)
- [dwwoelfel/cetcd](https://github.com/dwwoelfel/cetcd) - Supports v2
- [rthomas/clj-etcd](https://github.com/rthomas/clj-etcd) - Supports v2
**Erlang libraries**
- [marshall-lee/etcd.erl](https://github.com/marshall-lee/etcd.erl) - Supports v2
- [zhongwencool/eetcd](https://github.com/zhongwencool/eetcd) - Supports v3+ (GRPC only)
**.Net Libraries**
- [wangjia184/etcdnet](https://github.com/wangjia184/etcdnet) - Supports v2
- [drusellers/etcetera](https://github.com/drusellers/etcetera)
- [shubhamranjan/dotnet-etcd](https://github.com/shubhamranjan/dotnet-etcd) - Supports v3+ (GRPC only)
**PHP Libraries**
- [linkorb/etcd-php](https://github.com/linkorb/etcd-php)
- [activecollab/etcd](https://github.com/activecollab/etcd)
- [ouqiang/etcd-php](https://github.com/ouqiang/etcd-php) - Client for v3 gRPC gateway
**Haskell libraries**
- [wereHamster/etcd-hs](https://github.com/wereHamster/etcd-hs)
**R libraries**
- [ropensci/etseed](https://github.com/ropensci/etseed)
**Nim libraries**
- [etcd_client](https://github.com/FedericoCeratto/nim-etcd-client)
**Tcl libraries**
- [efrecon/etcd-tcl](https://github.com/efrecon/etcd-tcl) - Supports v2, except wait.
**Rust libraries**
- [jimmycuadra/rust-etcd](https://github.com/jimmycuadra/rust-etcd) - Supports v2
**Gradle Plugins**
- [gradle-etcd-rest-plugin](https://github.com/cdancy/gradle-etcd-rest-plugin) - Supports v2
**Chef Integration**
- [coderanger/etcd-chef](https://github.com/coderanger/etcd-chef)
**Chef Cookbook**
- [spheromak/etcd-cookbook](https://github.com/spheromak/etcd-cookbook)
**BOSH Releases**
- [cloudfoundry-community/etcd-boshrelease](https://github.com/cloudfoundry-community/etcd-boshrelease)
- [cloudfoundry/cf-release](https://github.com/cloudfoundry/cf-release/tree/master/jobs/etcd)
**Projects using etcd**
- [etcd Raft users](../raft/README.md#notable-users) - projects using etcd's raft library implementation.
- [apache/celix](https://github.com/apache/celix) - an implementation of the OSGi specification adapted to C and C++
- [binocarlos/yoda](https://github.com/binocarlos/yoda) - etcd + ZeroMQ
- [blox/blox](https://github.com/blox/blox) - a collection of open source projects for container management and orchestration with AWS ECS
- [calavera/active-proxy](https://github.com/calavera/active-proxy) - HTTP Proxy configured with etcd
- [chain/chain](https://github.com/chain/chain) - software designed to operate and connect to highly scalable permissioned blockchain networks
- [derekchiang/etcdplus](https://github.com/derekchiang/etcdplus) - A set of distributed synchronization primitives built upon etcd
- [go-discover](https://github.com/flynn/go-discover) - service discovery in Go
- [gleicon/goreman](https://github.com/gleicon/goreman/tree/etcd) - Branch of the Go Foreman clone with etcd support
- [garethr/hiera-etcd](https://github.com/garethr/hiera-etcd) - Puppet hiera backend using etcd
- [mattn/etcd-vim](https://github.com/mattn/etcd-vim) - SET and GET keys from inside vim
- [mattn/etcdenv](https://github.com/mattn/etcdenv) - "env" shebang with etcd integration
- [kelseyhightower/confd](https://github.com/kelseyhightower/confd) - Manage local app config files using templates and data from etcd
- [configdb](https://git.autistici.org/ai/configdb/tree/master) - A REST relational abstraction on top of arbitrary database backends, aimed at storing configs and inventories.
- [kubernetes/kubernetes](https://github.com/kubernetes/kubernetes) - Container cluster manager introduced by Google.
- [mailgun/vulcand](https://github.com/mailgun/vulcand) - HTTP proxy that uses etcd as a configuration backend.
- [duedil-ltd/discodns](https://github.com/duedil-ltd/discodns) - Simple DNS nameserver using etcd as a database for names and records.
- [skynetservices/skydns](https://github.com/skynetservices/skydns) - RFC compliant DNS server
- [xordataexchange/crypt](https://github.com/xordataexchange/crypt) - Securely store values in etcd using GPG encryption
- [spf13/viper](https://github.com/spf13/viper) - Go configuration library, reads values from ENV, pflags, files, and etcd with optional encryption
- [lytics/metafora](https://github.com/lytics/metafora) - Go distributed task library
- [ryandoyle/nss-etcd](https://github.com/ryandoyle/nss-etcd) - A GNU libc NSS module for resolving names from etcd.
- [Gru](https://github.com/dnaeon/gru) - Orchestration made easy with Go
- [Vitess](http://vitess.io/) - Vitess is a database clustering system for horizontal scaling of MySQL.
- [lclarkmichalek/etcdhcp](https://github.com/lclarkmichalek/etcdhcp) - DHCP server that uses etcd for persistence and coordination.
- [openstack/networking-vpp](https://github.com/openstack/networking-vpp) - A networking driver that programs the [FD.io VPP dataplane](https://wiki.fd.io/view/VPP) to provide [OpenStack](https://www.openstack.org/) cloud virtual networking
- [OpenStack](https://github.com/openstack/governance/blob/master/reference/base-services.rst) - OpenStack services can rely on etcd as a base service.
- [CoreDNS](https://github.com/coredns/coredns/tree/master/plugin/etcd) - CoreDNS is a DNS server that chains plugins, part of CNCF and Kubernetes
- [Uber M3](https://github.com/m3db/m3) - M3: Ubers Open Source, Large-scale Metrics Platform for Prometheus
- [Rook](https://github.com/rook/rook) - Storage Orchestration for Kubernetes
- [Patroni](https://github.com/zalando/patroni) - A template for PostgreSQL High Availability with ZooKeeper, etcd, or Consul
- [Trillian](https://github.com/google/trillian) - Trillian implements a Merkle tree whose contents are served from a data storage layer, to allow scalability to extremely large trees.

View File

@ -1,10 +1,37 @@
# etcd3 API
---
title: etcd3 API
---
NOTE: this doc is not finished!
This document is meant to give an overview of the etcd3 API's central design. It is by no means all encompassing, but intended to focus on the basic ideas needed to understand etcd without the distraction of less common API calls. All etcd3 API's are defined in [gRPC services][grpc-service], which categorize remote procedure calls (RPCs) understood by the etcd server. A full listing of all etcd RPCs are documented in markdown in the [gRPC API listing][grpc-api].
## Response header
## gRPC Services
All Responses from etcd API have a [response header][response_header] attached. The response header includes the metadata of the response.
Every API request sent to an etcd server is a gRPC remote procedure call. RPCs in etcd3 are categorized based on functionality into services.
Services important for dealing with etcd's key space include:
* KV - Creates, updates, fetches, and deletes key-value pairs.
* Watch - Monitors changes to keys.
* Lease - Primitives for consuming client keep-alive messages.
Services which manage the cluster itself include:
* Auth - Role based authentication mechanism for authenticating users.
* Cluster - Provides membership information and configuration facilities.
* Maintenance - Takes recovery snapshots, defragments the store, and returns per-member status information.
### Requests and Responses
All RPCs in etcd3 follow the same format. Each RPC has a function `Name` which takes `NameRequest` as an argument and returns `NameResponse` as a response. For example, here is the `Range` RPC description:
```protobuf
service KV {
Range(RangeRequest) returns (RangeResponse)
...
}
```
### Response header
All Responses from etcd API have an attached response header which includes cluster metadata for the response:
```proto
message ResponseHeader {
@ -15,24 +42,26 @@ message ResponseHeader {
}
```
* Cluster_ID - the ID of the cluster that generates the response
* Member_ID - the ID of the member that generates the response
* Revision - the revision of the key-value store when the response is generated
* Raft_Term - the Raft term of the member when the response is generated
* Cluster_ID - the ID of the cluster generating the response.
* Member_ID - the ID of the member generating the response.
* Revision - the revision of the key-value store when generating the response.
* Raft_Term - the Raft term of the member when generating the response.
An application may read the Cluster_ID (Member_ID) field to ensure it is communicating with the intended cluster (member).
An application may read the `Cluster_ID` or `Member_ID` field to ensure it is communicating with the intended cluster (member).
Applications can use the `Revision` to know the latest revision of the key-value store. This is especially useful when applications specify a historical revision to make time `travel query` and wishes to know the latest revision at the time of the request.
Applications can use the `Revision` field to know the latest revision of the key-value store. This is especially useful when applications specify a historical revision to make a `time travel query` and wish to know the latest revision at the time of the request.
Applications can use `Raft_Term` to detect when the cluster completes a new leader election.
## Key-Value API
Key-Value API is used to manipulate key-value pairs stored inside etcd. The key-value API is defined as a [gRPC service][kv-service]. The Key-Value pair is defined as structured data in [protobuf format][kv-proto].
The Key-Value API manipulates key-value pairs stored inside etcd. The majority of requests made to etcd are usually key-value requests.
### System primitives
### Key-Value pair
A key-value pair is the smallest unit that the key-value API can manipulate. Each key-value pair has a number of fields:
A key-value pair is the smallest unit that the key-value API can manipulate. Each key-value pair has a number of fields, defined in [protobuf format][kv-proto]:
```protobuf
message KeyValue {
@ -52,6 +81,403 @@ message KeyValue {
* Mod_Revision - revision of the last modification on the key.
* Lease - the ID of the lease attached to the key. If lease is 0, then no lease is attached to the key.
[kv-proto]: https://github.com/coreos/etcd/blob/master/mvcc/mvccpb/kv.proto
[kv-service]: https://github.com/coreos/etcd/blob/master/etcdserver/etcdserverpb/rpc.proto
[response_header]: https://github.com/coreos/etcd/blob/master/etcdserver/etcdserverpb/rpc.proto
In addition to just the key and value, etcd attaches additional revision metadata as part of the key message. This revision information orders keys by time of creation and modification, which is useful for managing concurrency for distributed synchronization. The etcd client's [distributed shared locks][locks] use the creation revision to wait for lock ownership. Similarly, the modification revision is used for detecting [software transactional memory][STM] read set conflicts and waiting on [leader election][elections] updates.
#### Revisions
etcd maintains a 64-bit cluster-wide counter, the store revision, that is incremented each time the key space is modified. The revision serves as a global logical clock, sequentially ordering all updates to the store. The change represented by a new revision is incremental; the data associated with a revision is the data that changed the store. Internally, a new revision means writing the changes to the backend's B+tree, keyed by the incremented revision.
Revisions become more valuable when considering etcd3's [multi-version concurrency control][mvcc] backend. The MVCC model means that the key-value store can be viewed from past revisions since historical key revisions are retained. The retention policy for this history can be configured by cluster administrators for fine-grained storage management; usually etcd3 discards old revisions of keys on a timer. A typical etcd3 cluster retains superseded key data for hours. This also provides reliable handling for long client disconnection, not just transient network disruptions: watchers simply resume from the last observed historical revision. Similarly, to read from the store at a particular point-in-time, read requests can be tagged with a revision to return keys from a view of the key space at the point-in-time that revision was committed.
#### Key ranges
The etcd3 data model indexes all keys over a flat binary key space. This differs from other key-value store systems that use a hierarchical system of organizing keys into directories. Instead of listing keys by directory, keys are listed by key intervals `[a, b)`.
These intervals are often referred to as "ranges" in etcd3. Operations over ranges are more powerful than operations on directories. Like a hierarchical store, intervals support single key lookups via `[a, a+1)` (e.g., ['a', 'a\x00') looks up 'a') and directory lookups by encoding keys by directory depth. In addition to those operations, intervals can also encode prefixes; for example the interval `['a', 'b')` looks up all keys prefixed by the string 'a'.
By convention, ranges for a request are denoted by the fields `key` and `range_end`. The `key` field is the first key of the range and should be non-empty. The `range_end` is the key following the last key of the range. If `range_end` is not given or empty, the range is defined to contain only the key argument. If `range_end` is `key` plus one (e.g., "aa"+1 == "ab", "a\xff"+1 == "b"), then the range represents all keys prefixed with key. If both `key` and `range_end` are '\0', then range represents all keys. If `range_end` is '\0', the range is all keys greater than or equal to the key argument.
### Range
Keys are fetched from the key-value store using the `Range` API call, which takes a `RangeRequest`:
```protobuf
message RangeRequest {
enum SortOrder {
NONE = 0; // default, no sorting
ASCEND = 1; // lowest target value first
DESCEND = 2; // highest target value first
}
enum SortTarget {
KEY = 0;
VERSION = 1;
CREATE = 2;
MOD = 3;
VALUE = 4;
}
bytes key = 1;
bytes range_end = 2;
int64 limit = 3;
int64 revision = 4;
SortOrder sort_order = 5;
SortTarget sort_target = 6;
bool serializable = 7;
bool keys_only = 8;
bool count_only = 9;
int64 min_mod_revision = 10;
int64 max_mod_revision = 11;
int64 min_create_revision = 12;
int64 max_create_revision = 13;
}
```
* Key, Range_End - The key range to fetch.
* Limit - the maximum number of keys returned for the request. When limit is set to 0, it is treated as no limit.
* Revision - the point-in-time of the key-value store to use for the range. If revision is less or equal to zero, the range is over the latest key-value store. If the revision is compacted, ErrCompacted is returned as a response.
* Sort_Order - the ordering for sorted requests.
* Sort_Target - the key-value field to sort.
* Serializable - sets the range request to use serializable member-local reads. By default, Range is linearizable; it reflects the current consensus of the cluster. For better performance and availability, in exchange for possible stale reads, a serializable range request is served locally without needing to reach consensus with other nodes in the cluster.
* Keys_Only - return only the keys and not the values.
* Count_Only - return only the count of the keys in the range.
* Min_Mod_Revision - the lower bound for key mod revisions; filters out lesser mod revisions.
* Max_Mod_Revision - the upper bound for key mod revisions; filters out greater mod revisions.
* Min_Create_Revision - the lower bound for key create revisions; filters out lesser create revisions.
* Max_Create_Revision - the upper bound for key create revisions; filters out greater create revisions.
The client receives a `RangeResponse` message from the `Range` call:
```protobuf
message RangeResponse {
ResponseHeader header = 1;
repeated mvccpb.KeyValue kvs = 2;
bool more = 3;
int64 count = 4;
}
```
* Kvs - the list of key-value pairs matched by the range request. When `Count_Only` is set, `Kvs` is empty.
* More - indicates if there are more keys to return in the requested range if `limit` is set.
* Count - the total number of keys satisfying the range request.
### Put
Keys are saved into the key-value store by issuing a `Put` call, which takes a `PutRequest`:
```protobuf
message PutRequest {
bytes key = 1;
bytes value = 2;
int64 lease = 3;
bool prev_kv = 4;
bool ignore_value = 5;
bool ignore_lease = 6;
}
```
* Key - the name of the key to put into the key-value store.
* Value - the value, in bytes, to associate with the key in the key-value store.
* Lease - the lease ID to associate with the key in the key-value store. A lease value of 0 indicates no lease.
* Prev_Kv - when set, responds with the key-value pair data before the update from this `Put` request.
* Ignore_Value - when set, update the key without changing its current value. Returns an error if the key does not exist.
* Ignore_Lease - when set, update the key without changing its current lease. Returns an error if the key does not exist.
The client receives a `PutResponse` message from the `Put` call:
```protobuf
message PutResponse {
ResponseHeader header = 1;
mvccpb.KeyValue prev_kv = 2;
}
```
* Prev_Kv - the key-value pair overwritten by the `Put`, if `Prev_Kv` was set in the `PutRequest`.
### Delete Range
Ranges of keys are deleted using the `DeleteRange` call, which takes a `DeleteRangeRequest`:
```protobuf
message DeleteRangeRequest {
bytes key = 1;
bytes range_end = 2;
bool prev_kv = 3;
}
```
* Key, Range_End - The key range to delete.
* Prev_Kv - when set, return the contents of the deleted key-value pairs.
The client receives a `DeleteRangeResponse` message from the `DeleteRange` call:
```protobuf
message DeleteRangeResponse {
ResponseHeader header = 1;
int64 deleted = 2;
repeated mvccpb.KeyValue prev_kvs = 3;
}
```
* Deleted - number of keys deleted.
* Prev_Kv - a list of all key-value pairs deleted by the `DeleteRange` operation.
### Transaction
A transaction is an atomic If/Then/Else construct over the key-value store. It provides a primitive for grouping requests together in atomic blocks (i.e., then/else) whose execution is guarded (i.e., if) based on the contents of the key-value store. Transactions can be used for protecting keys from unintended concurrent updates, building compare-and-swap operations, and developing higher-level concurrency control.
A transaction can atomically process multiple requests in a single request. For modifications to the key-value store, this means the store's revision is incremented only once for the transaction and all events generated by the transaction will have the same revision. However, modifications to the same key multiple times within a single transaction are forbidden.
All transactions are guarded by a conjunction of comparisons, similar to an `If` statement. Each comparison checks a single key in the store. It may check for the absence or presence of a value, compare with a given value, or check a key's revision or version. Two different comparisons may apply to the same or different keys. All comparisons are applied atomically; if all comparisons are true, the transaction is said to succeed and etcd applies the transaction's then / `success` request block, otherwise it is said to fail and applies the else / `failure` request block.
Each comparison is encoded as a `Compare` message:
```protobuf
message Compare {
enum CompareResult {
EQUAL = 0;
GREATER = 1;
LESS = 2;
NOT_EQUAL = 3;
}
enum CompareTarget {
VERSION = 0;
CREATE = 1;
MOD = 2;
VALUE= 3;
}
CompareResult result = 1;
// target is the key-value field to inspect for the comparison.
CompareTarget target = 2;
// key is the subject key for the comparison operation.
bytes key = 3;
oneof target_union {
int64 version = 4;
int64 create_revision = 5;
int64 mod_revision = 6;
bytes value = 7;
}
}
```
* Result - the kind of logical comparison operation (e.g., equal, less than, etc).
* Target - the key-value field to be compared. Either the key's version, create revision, modification revision, or value.
* Key - the key for the comparison.
* Target_Union - the user-specified data for the comparison.
After processing the comparison block, the transaction applies a block of requests. A block is a list of `RequestOp` messages:
```protobuf
message RequestOp {
// request is a union of request types accepted by a transaction.
oneof request {
RangeRequest request_range = 1;
PutRequest request_put = 2;
DeleteRangeRequest request_delete_range = 3;
}
}
```
* Request_Range - a `RangeRequest`.
* Request_Put - a `PutRequest`. The keys must be unique. It may not share keys with any other Puts or Deletes.
* Request_Delete_Range - a `DeleteRangeRequest`. It may not share keys with any Puts or Deletes requests.
All together, a transaction is issued with a `Txn` API call, which takes a `TxnRequest`:
```protobuf
message TxnRequest {
repeated Compare compare = 1;
repeated RequestOp success = 2;
repeated RequestOp failure = 3;
}
```
* Compare - A list of predicates representing a conjunction of terms for guarding the transaction.
* Success - A list of requests to process if all compare tests evaluate to true.
* Failure - A list of requests to process if any compare test evaluates to false.
The client receives a `TxnResponse` message from the `Txn` call:
```protobuf
message TxnResponse {
ResponseHeader header = 1;
bool succeeded = 2;
repeated ResponseOp responses = 3;
}
```
* Succeeded - Whether `Compare` evaluated to true or false.
* Responses - A list of responses corresponding to the results from applying the `Success` block if succeeded is true or the `Failure` if succeeded is false.
The `Responses` list corresponds to the results from the applied `RequestOp` list, with each response encoded as a `ResponseOp`:
```protobuf
message ResponseOp {
oneof response {
RangeResponse response_range = 1;
PutResponse response_put = 2;
DeleteRangeResponse response_delete_range = 3;
}
}
```
## Watch API
The `Watch` API provides an event-based interface for asynchronously monitoring changes to keys. An etcd3 watch waits for changes to keys by continuously watching from a given revision, either current or historical, and streams key updates back to the client.
### Events
Every change to every key is represented with `Event` messages. An `Event` message provides both the update's data and the type of update:
```protobuf
message Event {
enum EventType {
PUT = 0;
DELETE = 1;
}
EventType type = 1;
KeyValue kv = 2;
KeyValue prev_kv = 3;
}
```
* Type - The kind of event. A PUT type indicates new data has been stored to the key. A DELETE indicates the key was deleted.
* KV - The KeyValue associated with the event. A PUT event contains current kv pair. A PUT event with kv.Version=1 indicates the creation of a key. A DELETE event contains the deleted key with its modification revision set to the revision of deletion.
* Prev_KV - The key-value pair for the key from the revision immediately before the event. To save bandwidth, it is only filled out if the watch has explicitly enabled it.
### Watch streams
Watches are long-running requests and use gRPC streams to stream event data. A watch stream is bi-directional; the client writes to the stream to establish watches and reads to receive watch events. A single watch stream can multiplex many distinct watches by tagging events with per-watch identifiers. This multiplexing helps reducing the memory footprint and connection overhead on the core etcd cluster.
Watches make three guarantees about events:
* Ordered - events are ordered by revision; an event will never appear on a watch if it precedes an event in time that has already been posted.
* Reliable - a sequence of events will never drop any subsequence of events; if there are events ordered in time as a < b < c, then if the watch receives events a and c, it is guaranteed to receive b.
* Atomic - a list of events is guaranteed to encompass complete revisions; updates in the same revision over multiple keys will not be split over several lists of events.
A client creates a watch by sending a `WatchCreateRequest` over a stream returned by `Watch`:
```protobuf
message WatchCreateRequest {
bytes key = 1;
bytes range_end = 2;
int64 start_revision = 3;
bool progress_notify = 4;
enum FilterType {
NOPUT = 0;
NODELETE = 1;
}
repeated FilterType filters = 5;
bool prev_kv = 6;
}
```
* Key, Range_End - The key range to watch.
* Start_Revision - An optional revision for where to inclusively begin watching. If not given, it will stream events following the revision of the watch creation response header revision. The entire available event history can be watched starting from the last compaction revision.
* Progress_Notify - When set, the watch will periodically receive a WatchResponse with no events, if there are no recent events. It is useful when clients wish to recover a disconnected watcher starting from a recent known revision. The etcd server decides how often to send notifications based on current server load.
* Filters - A list of event types to filter away at server side.
* Prev_Kv - When set, the watch receives the key-value data from before the event happens. This is useful for knowing what data has been overwritten.
In response to a `WatchCreateRequest` or if there is a new event for some established watch, the client receives a `WatchResponse`:
```protobuf
message WatchResponse {
ResponseHeader header = 1;
int64 watch_id = 2;
bool created = 3;
bool canceled = 4;
int64 compact_revision = 5;
repeated mvccpb.Event events = 11;
}
```
* Watch_ID - the ID of the watch that corresponds to the response.
* Created - set to true if the response is for a create watch request. The client should store the ID and expect to receive events for the watch on the stream. All events sent to the created watcher will have the same watch_id.
* Canceled - set to true if the response is for a cancel watch request. No further events will be sent to the canceled watcher.
* Compact_Revision - set to the minimum historical revision available to etcd if a watcher tries watching at a compacted revision. This happens when creating a watcher at a compacted revision or the watcher cannot catch up with the progress of the key-value store. The watcher will be canceled; creating new watches with the same start_revision will fail.
* Events - a list of new events in sequence corresponding to the given watch ID.
If the client wishes to stop receiving events for a watch, it issues a `WatchCancelRequest`:
```protobuf
message WatchCancelRequest {
int64 watch_id = 1;
}
```
* Watch_ID - the ID of the watch to cancel so that no more events are transmitted.
## Lease API
Leases are a mechanism for detecting client liveness. The cluster grants leases with a time-to-live. A lease expires if the etcd cluster does not receive a keepAlive within a given TTL period.
To tie leases into the key-value store, each key may be attached to at most one lease. When a lease expires or is revoked, all keys attached to that lease will be deleted. Each expired key generates a delete event in the event history.
### Obtaining leases
Leases are obtained through the `LeaseGrant` API call, which takes a `LeaseGrantRequest`:
```protobuf
message LeaseGrantRequest {
int64 TTL = 1;
int64 ID = 2;
}
```
* TTL - the advisory time-to-live, in seconds.
* ID - the requested ID for the lease. If ID is set to 0, etcd will choose an ID.
The client receives a `LeaseGrantResponse` from the `LeaseGrant` call:
```protobuf
message LeaseGrantResponse {
ResponseHeader header = 1;
int64 ID = 2;
int64 TTL = 3;
}
```
* ID - the lease ID for the granted lease.
* TTL - is the server selected time-to-live, in seconds, for the lease.
```protobuf
message LeaseRevokeRequest {
int64 ID = 1;
}
```
* ID - the lease ID to revoke. When the lease is revoked, all attached keys are deleted.
### Keep alives
Leases are refreshed using a bi-directional stream created with the `LeaseKeepAlive` API call. When the client wishes to refresh a lease, it sends a `LeaseKeepAliveRequest` over the stream:
```protobuf
message LeaseKeepAliveRequest {
int64 ID = 1;
}
```
* ID - the lease ID for the lease to keep alive.
The keep alive stream responds with a `LeaseKeepAliveResponse`:
```protobuf
message LeaseKeepAliveResponse {
ResponseHeader header = 1;
int64 ID = 2;
int64 TTL = 3;
}
```
* ID - the lease that was refreshed with a new TTL.
* TTL - the new time-to-live, in seconds, that the lease has remaining.
[elections]: https://github.com/etcd-io/etcd/blob/master/clientv3/concurrency/election.go
[kv-proto]: https://github.com/etcd-io/etcd/blob/master/mvcc/mvccpb/kv.proto
[grpc-api]: ../dev-guide/api_reference_v3.md
[grpc-service]: https://github.com/etcd-io/etcd/blob/master/etcdserver/etcdserverpb/rpc.proto
[locks]: https://github.com/etcd-io/etcd/blob/master/clientv3/concurrency/mutex.go
[mvcc]: https://en.wikipedia.org/wiki/Multiversion_concurrency_control
[stm]: https://github.com/etcd-io/etcd/blob/master/clientv3/concurrency/stm.go

View File

@ -1,6 +1,8 @@
# KV API guarantees
---
title: KV API guarantees
---
etcd is a consistent and durable key value store with mini-transaction(TODO: link to txn doc when we have it) support. The key value store is exposed through the KV APIs. etcd tries to ensure the strongest consistency and durability guarantees for a distributed system. This specification enumerates the KV API guarantees made by etcd.
etcd is a consistent and durable key value store with [mini-transaction][txn] support. The key value store is exposed through the KV APIs. etcd tries to ensure the strongest consistency and durability guarantees for a distributed system. This specification enumerates the KV API guarantees made by etcd.
### APIs to consider
@ -21,7 +23,7 @@ An etcd operation is considered complete when it is committed through consensus,
#### Revision
An etcd operation that modifies the key value store is assigned with a single increasing revision. A transaction operation might modifies the key value store multiple times, but only one revision is assigned. The revision attribute of a key value pair that modified by the operation has the same value as the revision of the operation. The revision can be used as a logical clock for key value store. A key value pair that has a larger revision is modified after a key value pair with a smaller revision. Two key value pairs that have the same revision are modified by an operation "concurrently".
An etcd operation that modifies the key value store is assigned a single increasing revision. A transaction operation might modify the key value store multiple times, but only one revision is assigned. The revision attribute of a key value pair that was modified by the operation has the same value as the revision of the operation. The revision can be used as a logical clock for key value store. A key value pair that has a larger revision is modified after a key value pair with a smaller revision. Two key value pairs that have the same revision are modified by an operation "concurrently".
### Guarantees provided
@ -51,7 +53,7 @@ Linearizability (also known as Atomic Consistency or External Consistency) is a
For linearizability, suppose each operation receives a timestamp from a loosely synchronized global clock. Operations are linearized if and only if they always complete as though they were executed in a sequential order and each operation appears to complete in the order specified by the program. Likewise, if an operations timestamp precedes another, that operation must also precede the other operation in the sequence.
For example, consider a client completing a write at time point 1 (*t1*). A client issuing a read at *t2* (for *t2* > *t1*) should receive a value at least as recent as the previous write, completed at *t1*. However, the read might actually complete only by *t3*, and the returned value, current at *t2* when the read began, might be "stale" by *t3*.
For example, consider a client completing a write at time point 1 (*t1*). A client issuing a read at *t2* (for *t2* > *t1*) should receive a value at least as recent as the previous write, completed at *t1*. However, the read might actually complete only by *t3*. Linearizability guarantees the read returns the most current value. Without linearizability guarantee, the returned value, current at *t2* when the read began, might be "stale" by *t3* because a concurrent write might happen between *t2* and *t3*.
etcd does not ensure linearizability for watch operations. Users are expected to verify the revision of watch responses to ensure correct ordering.
@ -61,3 +63,4 @@ etcd ensures linearizability for all other operations by default. Linearizabilit
[strict_consistency]: https://en.wikipedia.org/wiki/Consistency_model#Strict_consistency
[serializable_isolation]: https://en.wikipedia.org/wiki/Isolation_(database_systems)#Serializable
[Linearizability]: #Linearizability
[txn]: api.md#transactions

View File

@ -1,20 +1,22 @@
# Data model
---
title: Data model
---
etcd is designed to reliably store infrequently updated data and provide reliable watch queries. etcd exposes previous versions of key-value pairs to support inexpensive snapshots and watch history events (“time travel queries”). A persistent, multi-version, concurrency-control data model is a good fit for these use cases.
etcd stores data in a multiversion [persistent][persistent-ds] key-value store. The persistent key-value store preserves the previous version of a key-value pair when its value is superseded with new data. The key-value store is effectively immutable; its operations do not update the structure in-place, but instead always generates a new updated structure. All past versions of keys are still accessible and watchable after modification. To prevent the data store from growing indefinitely over time from maintaining old versions, the store may be compacted to shed the oldest versions of superseded data.
etcd stores data in a multiversion [persistent][persistent-ds] key-value store. The persistent key-value store preserves the previous version of a key-value pair when its value is superseded with new data. The key-value store is effectively immutable; its operations do not update the structure in-place, but instead always generate a new updated structure. All past versions of keys are still accessible and watchable after modification. To prevent the data store from growing indefinitely over time and from maintaining old versions, the store may be compacted to shed the oldest versions of superseded data.
### Logical view
The stores logical view is a flat binary key space. The key space has a lexically sorted index on byte string keys so range queries are inexpensive.
The key space maintains multiple revisions. Each atomic mutative operation (e.g., a transaction operation may contain multiple operations) creates a new revision on the key space. All data held by previous revisions remains unchanged. Old versions of key can still be accessed through previous revisions. Likewise, revisions are indexed as well; ranging over revisions with watchers is efficient. If the store is compacted to recover space, revisions before the compact revision will be removed.
The key space maintains multiple **revisions**. Each atomic mutative operation (e.g., a transaction operation may contain multiple operations) creates a new revision on the key space. All data held by previous revisions remains unchanged. Old versions of key can still be accessed through previous revisions. Likewise, revisions are indexed as well; ranging over revisions with watchers is efficient. If the store is compacted to save space, revisions before the compact revision will be removed. Revisions are monotonically increasing over the lifetime of a cluster.
A keys lifetime spans a generation. Each key may have one or multiple generations. Creating a key increments the generation of that key, starting at 1 if the key never existed. Deleting a key generates a key tombstone, concluding the keys current generation. Each modification of a key creates a new version of the key. Once a compaction happens, any generation ended before the given revision will be removed and values set before the compaction revision except the latest one will be removed.
A key's life spans a generation, from creation to deletion. Each key may have one or multiple generations. Creating a key increments the **version** of that key, starting at 1 if the key does not exist at the current revision. Deleting a key generates a key tombstone, concluding the keys current generation by resetting its version to 0. Each modification of a key increments its version; so, versions are monotonically increasing within a key's generation. Once a compaction happens, any generation ended before the compaction revision will be removed, and values set before the compaction revision except the latest one will be removed.
### Physical view
etcd stores the physical data as key-value pairs in a persistent [b+tree][b+tree]. Each revision of the stores state only contains the delta from its previous revision to be efficient. A single revision may correspond to multiple keys in the tree.
etcd stores the physical data as key-value pairs in a persistent [b+tree][b+tree]. Each revision of the stores state only contains the delta from its previous revision to be efficient. A single revision may correspond to multiple keys in the tree.
The key of key-value pair is a 3-tuple (major, sub, type). Major is the store revision holding the key. Sub differentiates among keys within the same revision. Type is an optional suffix for special value (e.g., `t` if the value contains a tombstone). The value of the key-value pair contains the modification from previous revision, thus one delta from previous revision. The b+tree is ordered by key in lexical byte-order. Ranged lookups over revision deltas are fast; this enables quickly finding modifications from one specific revision to another. Compaction removes out-of-date keys-value pairs.

View File

@ -0,0 +1,79 @@
---
title: etcd v3 authentication design
---
## Why not reuse the v2 auth system?
The v3 protocol uses gRPC as its transport instead of a RESTful interface like v2. This new protocol provides an opportunity to iterate on and improve the v2 design. For example, v3 auth has connection based authentication, rather than v2's slower per-request authentication. Additionally, v2 auth's semantics tend to be unwieldy in practice with respect to reasoning about consistency, which will be described in the next sections. For v3, there is a well-defined description and implementation of the authentication mechanism which fixes the deficiencies in the v2 auth system.
### Functionality requirements
* Per connection authentication, not per request
* User ID + password based authentication implemented for the gRPC API
* Authentication must be refreshed after auth policy changes
* Its functionality should be as simple and useful as v2
* v3 provides a flat key space, unlike the directory structure of v2. Permission checking will be provided as interval matching.
* It should have stronger consistency guarantees than v2 auth
### Main required changes
* A client must create a dedicated connection only for authentication before sending authenticated requests
* Add permission information (user ID and authorized revision) to the Raft commands (`etcdserverpb.InternalRaftRequest`)
* Every request is permission checked in the state machine layer, rather than API layer
### Permission metadata consistency
The metadata for auth should also be stored and managed in the storage controlled by etcd's Raft protocol like other data stored in etcd. It is required for not sacrificing availability and consistency of the entire etcd cluster. If reading or writing the metadata (e.g. permission information) needs an agreement of every node (more than quorum), single node failure can stop the entire cluster. Requiring all nodes to agree at once means that checking ordinary read/write requests cannot be completed if any cluster member is down, even if the cluster has an available quorum. This unanimous scheme ultimately degrades cluster availability; quorum based consensus from raft should suffice since agreement follows from consistent ordering.
The authentication mechanism in the etcd v2 protocol has a tricky part because the metadata consistency should work as in the above, but does not: each permission check is processed by the etcd member that receives the client request (etcdserver/api/v2http/client.go), including follower members. Therefore, it's possible the check may be based on stale metadata.
This staleness means that auth configuration cannot be reflected as soon as operators execute etcdctl. Therefore there is no way to know how long the stale metadata is active. Practically, the configuration change is reflected immediately after the command execution. However, in some cases of heavy load, the inconsistent state can be prolonged and it might result in counter-intuitive situations for users and developers. It requires a workaround like this: https://github.com/etcd-io/etcd/pull/4317#issuecomment-179037582
### Inconsistent permissions are unsafe for linearized requests
Inconsistent authentication state is most serious for writes. Even if an operator disables write on a user, if the write is only ordered with respect to the key value store but not the authentication system, it's possible the write will complete successfully. Without ordering on both the auth store and the key-value store, the system will be susceptible to stale permission attacks.
Therefore, the permission checking logic should be added to the state machine of etcd. Each state machine should check the requests based on its permission information in the apply phase (so the auth information must not be stale).
## Design and implementation
### Authentication
At first, a client must create a gRPC connection only to authenticate its user ID and password. An etcd server will respond with an authentication reply. The response will be an authentication token on success or an error on failure. The client can use its authentication token to present its credentials to etcd when making API requests.
The client connection used to request the authentication token is typically thrown away; it cannot carry the new token's credentials. This is because gRPC doesn't provide a way for adding per RPC credential after creation of the connection (calling `grpc.Dial()`). Therefore, a client cannot assign a token to its connection that is obtained through the connection. The client needs a new connection for using the token.
#### Notes on the implementation of `Authenticate()` RPC
`Authenticate()` RPC generates an authentication token based on a given user name and password. etcd saves and checks a configured password and a given password using Go's `bcrypt` package. By design, `bcrypt`'s password checking mechanism is computationally expensive, taking nearly 100ms on an ordinary x64 server. Therefore, performing this check in the state machine apply phase would cause performance trouble: the entire etcd cluster can only serve almost 10 `Authenticate()` requests per second.
For good performance, the v3 auth mechanism checks passwords in etcd's API layer, where it can be parallelized outside of raft. However, this can lead to potential time-of-check/time-of-use (TOCTOU) permission lapses:
1. client A sends a request `Authenticate()`
1. the API layer processes the password checking part of `Authenticate()`
1. another client B sends a request of `ChangePassword()` and the server completes it
1. the state machine layer processes the part of getting a revision number for the `Authenticate()` from A
1. the server returns a success to A
1. now A is authenticated on an obsolete password
For avoiding such a situation, the API layer performs *version number validation* based on the revision number of the auth store. During password checking, the API layer saves the revision number of auth store. After successful password checking, the API layer compares the saved revision number and the latest revision number. If the numbers differ, it means someone else updated the auth metadata. So it retries the checking. With this mechanism, the successful password checking based on the obsolete password can be avoided.
### Resolving a token in the API layer
After authenticating with `Authenticate()`, a client can create a gRPC connection as it would without auth. In addition to the existing initialization process, the client must associate the token with the newly created connection. `grpc.WithPerRPCCredentials()` provides the functionality for this purpose.
Every authenticated request from the client has a token. The token can be obtained with `grpc.metadata.FromIncomingContext()` in the server side. The server can obtain who is issuing the request and when the user was authorized. The information will be filled by the API layer in the header (`etcdserverpb.RequestHeader.Username` and `etcdserverpb.RequestHeader.AuthRevision`) of a raft log entry (`etcdserverpb.InternalRaftRequest`).
### Checking permission in the state machine
The auth info in `etcdserverpb.RequestHeader` is checked in the apply phase of the state machine. This step checks the user is granted permission to requested keys on the latest revision of auth store.
### Two types of tokens: simple and JWT
There are two kinds of token types: simple and JWT. The simple token isn't designed for production use cases. Its tokens aren't cryptographically signed and servers must statefully track token-user correspondence; it is meant for development testing. JWT tokens should be used for production deployments since it is cryptographically signed and verified. From the implementation perspective, JWT is stateless. Its token can include metadata including username and revision, so servers don't need to remember correspondence between tokens and the metadata.
## Notes on the difference between KVS models and file system models
etcd v3 is a KVS, not a file system. So the permissions can be granted to the users in form of an exact key name or a key range like `["start key", "end key")`. It means that granting a permission of a nonexistent key is possible. Users should care about unintended permission granting. In a case of file system like system (e.g. Chubby or ZooKeeper), an inode like data structure can include the permission information. So granting permission to a nonexist key won't be possible (except the case of sticky bits).
The etcd v3 model requires multiple lookup of the metadata unlike the file system like systems. The worst case lookup cost will be sum the user's total granted keys and intervals. The cost cannot be avoided because v3's flat key space is completely different from Unix's file system model (every inode includes permission metadata). Practically the cost wont be a serious problem because the metadata is small enough to benefit from caching.

View File

@ -0,0 +1,138 @@
---
title: etcd client design
---
etcd Client Design
==================
*Gyuho Lee (github.com/gyuho, Amazon Web Services, Inc.), Joe Betz (github.com/jpbetz, Google Inc.)*
Introduction
============
etcd server has proven its robustness with years of failure injection testing. Most complex application logic is already handled by etcd server and its data stores (e.g. cluster membership is transparent to clients, with Raft-layer forwarding proposals to leader). Although server components are correct, its composition with client requires a different set of intricate protocols to guarantee its correctness and high availability under faulty conditions. Ideally, etcd server provides one logical cluster view of many physical machines, and client implements automatic failover between replicas. This documents client architectural decisions and its implementation details.
Glossary
========
*clientv3*: etcd Official Go client for etcd v3 API.
*clientv3-grpc1.0*: Official client implementation, with [`grpc-go v1.0.x`](https://github.com/grpc/grpc-go/releases/tag/v1.0.0), which is used in latest etcd v3.1.
*clientv3-grpc1.7*: Official client implementation, with [`grpc-go v1.7.x`](https://github.com/grpc/grpc-go/releases/tag/v1.7.0), which is used in latest etcd v3.2 and v3.3.
*clientv3-grpc1.23*: Official client implementation, with [`grpc-go v1.23.x`](https://github.com/grpc/grpc-go/releases/tag/v1.23.0), which is used in latest etcd v3.4.
*Balancer*: etcd client load balancer that implements retry and failover mechanism. etcd client should automatically balance loads between multiple endpoints.
*Endpoints*: A list of etcd server endpoints that clients can connect to. Typically, 3 or 5 client URLs of an etcd cluster.
*Pinned endpoint*: When configured with multiple endpoints, <= v3.3 client balancer chooses only one endpoint to establish a TCP connection, in order to conserve total open connections to etcd cluster. In v3.4, balancer round-robins pinned endpoints for every request, thus distributing loads more evenly.
*Client Connection*: TCP connection that has been established to an etcd server, via gRPC Dial.
*Sub Connection*: gRPC SubConn interface. Each sub-connection contains a list of addresses. Balancer creates a SubConn from a list of resolved addresses. gRPC ClientConn can map to multiple SubConn (e.g. example.com resolves to `10.10.10.1` and `10.10.10.2` of two sub-connections). etcd v3.4 balancer employs internal resolver to establish one sub-connection for each endpoint.
*Transient disconnect*: When gRPC server returns a status error of [`code Unavailable`](https://godoc.org/google.golang.org/grpc/codes#Code).
Client Requirements
===================
*Correctness*. Requests may fail in the presence of server faults. However, it never violates consistency guarantees: global ordering properties, never write corrupted data, at-most once semantics for mutable operations, watch never observes partial events, and so on.
*Liveness*. Servers may fail or disconnect briefly. Clients should make progress in either way. Clients should [never deadlock](https://github.com/etcd-io/etcd/issues/8980) waiting for a server to come back from offline, unless configured to do so. Ideally, clients detect unavailable servers with HTTP/2 ping and failover to other nodes with clear error messages.
*Effectiveness*. Clients should operate effectively with minimum resources: previous TCP connections should be [gracefully closed](https://github.com/etcd-io/etcd/issues/9212) after endpoint switch. Failover mechanism should effectively predict the next replica to connect, without wastefully retrying on failed nodes.
*Portability*. Official client should be clearly documented and its implementation be applicable to other language bindings. Error handling between different language bindings should be consistent. Since etcd is fully committed to gRPC, implementation should be closely aligned with gRPC long-term design goals (e.g. pluggable retry policy should be compatible with [gRPC retry](https://github.com/grpc/proposal/blob/master/A6-client-retries.md)). Upgrades between two client versions should be non-disruptive.
Client Overview
===============
etcd client implements the following components:
* balancer that establishes gRPC connections to an etcd cluster,
* API client that sends RPCs to an etcd server, and
* error handler that decides whether to retry a failed request or switch endpoints.
Languages may differ in how to establish an initial connection (e.g. configure TLS), how to encode and send Protocol Buffer messages to server, how to handle stream RPCs, and so on. However, errors returned from etcd server will be the same. So should be error handling and retry policy.
For example, etcd server may return `"rpc error: code = Unavailable desc = etcdserver: request timed out"`, which is transient error that expects retries. Or return `rpc error: code = InvalidArgument desc = etcdserver: key is not provided`, which means request was invalid and should not be retried. Go client can parse errors with `google.golang.org/grpc/status.FromError`, and Java client with `io.grpc.Status.fromThrowable`.
clientv3-grpc1.0: Balancer Overview
-----------------------------------
`clientv3-grpc1.0` maintains multiple TCP connections when configured with multiple etcd endpoints. Then pick one address and use it to send all client requests. The pinned address is maintained until the client object is closed (see *Figure 1*). When the client receives an error, it randomly picks another and retries.
![client-balancer-figure-01.png](img/client-balancer-figure-01.png)
clientv3-grpc1.0: Balancer Limitation
-------------------------------------
`clientv3-grpc1.0` opening multiple TCP connections may provide faster balancer failover but requires more resources. The balancer does not understand nodes health status or cluster membership. So, it is possible that balancer gets stuck with one failed or partitioned node.
clientv3-grpc1.7: Balancer Overview
------------------------------------
`clientv3-grpc1.7` maintains only one TCP connection to a chosen etcd server. When given multiple cluster endpoints, a client first tries to connect to them all. As soon as one connection is up, balancer pins the address, closing others (see *Figure 2*). The pinned address is to be maintained until the client object is closed. An error, from server or client network fault, is sent to client error handler (see *Figure 3*).
![client-balancer-figure-02.png](img/client-balancer-figure-02.png)
![client-balancer-figure-03.png](img/client-balancer-figure-03.png)
The client error handler takes an error from gRPC server, and decides whether to retry on the same endpoint, or to switch to other addresses, based on the error code and message (see *Figure 4* and *Figure 5*).
![client-balancer-figure-04.png](img/client-balancer-figure-04.png)
![client-balancer-figure-05.png](img/client-balancer-figure-05.png)
Stream RPCs, such as Watch and KeepAlive, are often requested with no timeouts. Instead, client can send periodic HTTP/2 pings to check the status of a pinned endpoint; if the server does not respond to the ping, balancer switches to other endpoints (see *Figure 6*).
![client-balancer-figure-06.png](img/client-balancer-figure-06.png)
clientv3-grpc1.7: Balancer Limitation
-------------------------------------
`clientv3-grpc1.7` balancer sends HTTP/2 keepalives to detect disconnects from streaming requests. It is a simple gRPC server ping mechanism and does not reason about cluster membership, thus unable to detect network partitions. Since partitioned gRPC server can still respond to client pings, balancer may get stuck with a partitioned node. Ideally, keepalive ping detects partition and triggers endpoint switch, before request time-out (see [etcd#8673](https://github.com/etcd-io/etcd/issues/8673) and *Figure 7*).
![client-balancer-figure-07.png](img/client-balancer-figure-07.png)
`clientv3-grpc1.7` balancer maintains a list of unhealthy endpoints. Disconnected addresses are added to “unhealthy” list, and considered unavailable until after wait duration, which is hard coded as dial timeout with default value 5-second. Balancer can have false positives on which endpoints are unhealthy. For instance, endpoint A may come back right after being blacklisted, but still unusable for next 5 seconds (see *Figure 8*).
`clientv3-grpc1.0` suffered the same problems above.
![client-balancer-figure-08.png](img/client-balancer-figure-08.png)
Upstream gRPC Go had already migrated to new balancer interface. For example, `clientv3-grpc1.7` underlying balancer implementation uses new gRPC balancer and tries to be consistent with old balancer behaviors. While its compatibility has been maintained reasonably well, etcd client still [suffered from subtle breaking changes](https://github.com/grpc/grpc-go/issues/1649). Furthermore, gRPC maintainer recommends to [not rely on the old balancer interface](https://github.com/grpc/grpc-go/issues/1942#issuecomment-375368665). In general, to get better support from upstream, it is best to be in sync with latest gRPC releases. And new features, such as retry policy, may not be backported to gRPC 1.7 branch. Thus, both etcd server and client must migrate to latest gRPC versions.
clientv3-grpc1.23: Balancer Overview
------------------------------------
`clientv3-grpc1.7` is so tightly coupled with old gRPC interface, that every single gRPC dependency upgrade broke client behavior. Majority of development and debugging efforts were devoted to fixing those client behavior changes. As a result, its implementation has become overly complicated with bad assumptions on server connectivities.
The primary goal of `clientv3-grpc1.23` is to simplify balancer failover logic; rather than maintaining a list of unhealthy endpoints, which may be stale, simply roundrobin to the next endpoint whenever client gets disconnected from the current endpoint. It does not assume endpoint status. Thus, no more complicated status tracking is needed (see *Figure 8* and above). Upgrading to `clientv3-grpc1.23` should be no issue; all changes were internal while keeping all the backward compatibilities.
Internally, when given multiple endpoints, `clientv3-grpc1.23` creates multiple sub-connections (one sub-connection per each endpoint), while `clientv3-grpc1.7` creates only one connection to a pinned endpoint (see *Figure 9*). For instance, in 5-node cluster, `clientv3-grpc1.23` balancer would require 5 TCP connections, while `clientv3-grpc1.7` only requires one. By preserving the pool of TCP connections, `clientv3-grpc1.23` may consume more resources but provide more flexible load balancer with better failover performance. The default balancing policy is round robin but can be easily extended to support other types of balancers (e.g. power of two, pick leader, etc.). `clientv3-grpc1.23` uses gRPC resolver group and implements balancer picker policy, in order to delegate complex balancing work to upstream gRPC. On the other hand, `clientv3-grpc1.7` manually handles each gRPC connection and balancer failover, which complicates the implementation. `clientv3-grpc1.23` implements retry in the gRPC interceptor chain that automatically handles gRPC internal errors and enables more advanced retry policies like backoff, while `clientv3-grpc1.7` manually interprets gRPC errors for retries.
![client-balancer-figure-09.png](img/client-balancer-figure-09.png)
clientv3-grpc1.23: Balancer Limitation
--------------------------------------
Improvements can be made by caching the status of each endpoint. For instance, balancer can ping each server in advance to maintain a list of healthy candidates, and use this information when doing round-robin. Or when disconnected, balancer can prioritize healthy endpoints. This may complicate the balancer implementation, thus can be addressed in later versions.
Client-side keepalive ping still does not reason about network partitions. Streaming request may get stuck with a partitioned node. Advanced health checking service need to be implemented to understand the cluster membership (see [etcd#8673](https://github.com/etcd-io/etcd/issues/8673) for more detail).
![client-balancer-figure-07.png](img/client-balancer-figure-07.png)
Currently, retry logic is handled manually as an interceptor. This may be simplified via [official gRPC retries](https://github.com/grpc/proposal/blob/master/A6-client-retries.md).

View File

@ -0,0 +1,128 @@
---
title: etcd learner design
---
etcd Learner
============
*Gyuho Lee (github.com/gyuho, Amazon Web Services, Inc.), Joe Betz (github.com/jpbetz, Google Inc.)*
Background
==========
Membership reconfiguration has been one of the biggest operational challenges. Lets review common challenges.
### 1. New Cluster member overloads Leader
A newly joined etcd member starts with no data, thus demanding more updates from leader until it catches up with leaders logs. Then leaders network is more likely to be overloaded, blocking or dropping leader heartbeats to followers. In such case, a follower may election-timeout to start a new leader election. That is, a cluster with a new member is more vulnerable to leader election. Both leader election and the subsequent update propagation to the new member are prone to causing periods of cluster unavailability (see *Figure 1*).
![server-learner-figure-01](img/server-learner-figure-01.png)
### 2. Network Partitions scenarios
What if network partition happens? It depends on leader partition. If the leader still maintains the active quorum, the cluster would continue to operate (see *Figure 2*).
![server-learner-figure-02](img/server-learner-figure-02.png)
#### 2.1 Leader isolation
What if the leader becomes isolated from the rest of the cluster? Leader monitors progress of each follower. When leader loses connectivity from the quorum, it reverts back to follower which will affect the cluster availability (see *Figure 3*).
![server-learner-figure-03](img/server-learner-figure-03.png)
When a new node is added to 3 node cluster, the cluster size becomes 4 and the quorum size becomes 3. What if a new node had joined the cluster, and then network partition happens? It depends on which partition the new member gets located after partition.
#### 2.2 Cluster Split 3+1
If the new node happens to be located in the same partition as leaders, the leader still maintains the active quorum of 3. No leadership election happens, and no cluster availability gets affected (see *Figure 4*).
![server-learner-figure-04](img/server-learner-figure-04.png)
#### 2.3 Cluster Split 2+2
If the cluster is 2-and-2 partitioned, then neither of partition maintains the quorum of 3. In this case, leadership election happens (see *Figure 5*).
![server-learner-figure-05](img/server-learner-figure-05.png)
#### 2.4 Quorum Lost
What if network partition happens first, and then a new member gets added? A partitioned 3-node cluster already has one disconnected follower. When a new member is added, the quorum changes from 2 to 3. Now, this cluster has only 2 active nodes out 4, thus losing quorum and starting a new leadership election (see *Figure 6*).
![server-learner-figure-06](img/server-learner-figure-06.png)
Since member add operation can change the size of quorum, it is always recommended to “member remove” first to replace an unhealthy node.
Adding a new member to a 1-node cluster changes the quorum size to 2, immediately causing a leader election when the previous leader finds out quorum is not active. This is because “member add” operation is a 2-step process where user needs to apply “member add” command first, and then starts the new node process (see *Figure 7*).
![server-learner-figure-07](img/server-learner-figure-07.png)
### 3. Cluster Misconfigurations
An even worse case is when an added member is misconfigured. Membership reconfiguration is a two-step process: “etcdctl member add” and starting an etcd server process with the given peer URL. That is, “member add” command is applied regardless of URL, even when the URL value is invalid. If the first step is applied with invalid URLs, the second step cannot even start the new etcd. Once the cluster loses quorum, there is no way to revert the membership change (see *Figure 8*).
![server-learner-figure-08](img/server-learner-figure-08.png)
Same applies to a multi-node cluster. For example, the cluster has two members down (one is failed, the other is misconfigured) and two members up, but now it requires at least 3 votes to change the cluster membership (see *Figure 9*).
![server-learner-figure-09](img/server-learner-figure-09.png)
As seen above, a simple misconfiguration can fail the whole cluster into an inoperative state. In such case, an operator need manually recreate the cluster with `etcd --force-new-cluster` flag. As etcd has become a mission-critical service for Kubernetes, even the slightest outage may have significant impact on users. What can we better to make etcd such operations easier? Among other things, leader election is most critical to cluster availability: Can we make membership reconfiguration less disruptive by not changing the size of quorum? Can a new node be idle, only requesting the minimum updates from leader, until it catches up? Can membership misconfiguration be always reversible and handled in a more secure way (wrong member add command run should never fail the cluster)? Should an user worry about network topology when adding a new member? Can member add API work regardless of the location of nodes and ongoing network partitions?
Raft Learner
============
In order to mitigate such availability gaps in the previous section, [Raft §4.2.1](https://github.com/ongardie/dissertation/blob/master/stanford.pdf) introduces a new node state “Learner”, which joins the cluster as a **non-voting member** until it catches up to leaders logs.
Features in v3.4
----------------
An operator should do the minimum amount of work possible to add a new learner node. `member add --learner` command to add a new learner, which joins cluster as a non-voting member but still receives all data from leader (see *Figure 10*).
![server-learner-figure-10](img/server-learner-figure-10.png)
When a learner has caught up with leaders progress, the learner can be promoted to a voting member using `member promote` API, which then counts towards the quorum (see *Figure 11*).
![server-learner-figure-11](img/server-learner-figure-11.png)
etcd server validates promote request to ensure its operational safety. Only after its log has caught up to leaders can learner be promoted to a voting member (see *Figure 12*).
![server-learner-figure-12](img/server-learner-figure-12.png)
Learner only serves as a standby node until promoted: Leadership cannot be transferred to learner. Learner rejects client reads and writes (client balancer should not route requests to learner). Which means learner does not need issue Read Index requests to leader. Such limitation simplifies the initial learner implementation in v3.4 release (see *Figure 13*).
![server-learner-figure-13](img/server-learner-figure-13.png)
In addition, etcd limits the total number of learners that a cluster can have, and avoids overloading the leader with log replication. Learner never promotes itself. While etcd provides learner status information and safety checks, cluster operator must make the final decision whether to promote learner or not.
Features in v3.5
----------------
*Make learner state only and default*: Defaulting a new member state to learner will greatly improve membership reconfiguration safety, because learner does not change the size of quorum. Misconfiguration will always be reversible without losing the quorum.
*Make voting-member promotion fully automatic*: Once a learner catches up to leaders logs, a cluster can automatically promote the learner. etcd requires certain thresholds to be defined by the user, and once the requirements are satisfied, learner promotes itself to a voting member. From a users perspective, “member add” command would work the same way as today but with greater safety provided by learner feature.
*Make learner standby failover node*: A learner joins as a standby node, and gets automatically promoted when the cluster availability is affected.
*Make learner read-only*: A learner can serve as a read-only node that never gets promoted. In a weak consistency mode, learner only receives data from leader and never process writes. Serving reads locally without consensus overhead would greatly decrease the workloads to leader but may serve stale data. In a strong consistency mode, learner requests read index from leader to serve latest data, but still rejects writes.
Learner vs. Mirror Maker
========================
etcd implements “mirror maker” using watch API to continuously relay key creates and updates to a separate cluster. Mirroring usually has low latency overhead once it completes initial synchronization. Learner and mirroring overlap in that both can be used to replicate existing data for read-only. However, mirroring does not guarantee linearizability. During network disconnects, previous key-values might have been discarded, and clients are expected to verify watch responses for correct ordering. Thus, there is no ordering guarantee in mirror. Use mirror for minimum latency (e.g. cross data center) at the costs of consistency. Use learner to retain all historical data and its ordering.
Appendix: Learner Implementation in v3.4
========================================
*Expose "Learner" node type to "MemberAdd" API.*
etcd client adds a flag to “MemberAdd” API for learner node. And etcd server handler applies membership change entry with `pb.ConfChangeAddLearnerNode` type. Once the command has been applied, a server joins the cluster with `etcd --initial-cluster-state=existing` flag. This learner node can neither vote nor count as quorum.
etcd server must not transfer leadership to learner, since it may still lag behind and does not count as quorum. etcd server limits the number of learners that cluster can have to one: the more learners we have, the more data the leader has to propagate. Clients may talk to learner node, but learner rejects all requests other than serializable read and member status API. This is for simplicity of initial implementation. In the future, learner can be extended as a read-only server that continuously mirrors cluster data. Client balancer must provide helper function to exclude learner node endpoint. Otherwise, request sent to learner may fail. Client sync member call should factor into learner node type. So should client endpoints update call.
`MemberList` and `MemberStatus` responses should indicate which node is learner.
*Add "MemberPromote" API.*
Internally in Raft, second `MemberAdd` call to learner node promotes it to a voting member. Leader maintains the progress of each follower and learner. If learner has not completed its snapshot message, reject promote request. Only accept promote request if and only if: The learner node is in a healthy state. The learner is in sync with leader or the delta is within the threshold (e.g. the number of entries to replicate to learner is less than 1/10 of snapshot count, which means it is less likely that even after promotion leader would not need send snapshot to the learner). All these logic are hard-coded in `etcdserver` package and not configurable.
Reference
=========
- Original github issue: [etcd#9161](https://github.com/etcd-io/etcd/issues/9161)
- Use case: [etcd#3715](https://github.com/etcd-io/etcd/issues/3715)
- Use case: [etcd#8888](https://github.com/etcd-io/etcd/issues/8888)
- Use case: [etcd#10114](https://github.com/etcd-io/etcd/issues/10114)

View File

@ -1,16 +1,20 @@
# Glossary
---
title: Glossary
---
This document defines the various terms used in etcd documentation, command line and source code.
## Node
## Alarm
Node is an instance of raft state machine.
The etcd server raises an alarm whenever the cluster needs operator intervention to remain reliable.
It has a unique identification, and records other nodes' progress internally when it is the leader.
## Authentication
## Member
Authentication manages user access permissions for etcd resources.
Member is an instance of etcd. It hosts a node, and provides service to clients.
## Client
A client connects to the etcd cluster to issue service requests such as fetching key-value pairs, writing data, or watching for updates.
## Cluster
@ -18,6 +22,42 @@ Cluster consists of several members.
The node in each member follows raft consensus protocol to replicate logs. Cluster receives proposals from members, commits them and apply to local store.
## Compaction
Compaction discards all etcd event history and superseded keys prior to a given revision. It is used to reclaim storage space in the etcd backend database.
## Election
The etcd cluster holds elections among its members to choose a leader as part of the raft consensus protocol.
## Endpoint
A URL pointing to an etcd service or resource.
## Key
A user-defined identifier for storing and retrieving user-defined values in etcd.
## Key range
A set of keys containing either an individual key, a lexical interval for all x such that a < x <= b, or all keys greater than a given key.
## Keyspace
The set of all keys in an etcd cluster.
## Lease
A short-lived renewable contract that deletes keys associated with it on its expiry.
## Member
A logical etcd server that participates in serving an etcd cluster.
## Modification Revision
The first revision to hold the last write to a given key.
## Peer
Peer is another member of the same cluster.
@ -26,10 +66,34 @@ Peer is another member of the same cluster.
A proposal is a request (for example a write request, a configuration change request) that needs to go through raft protocol.
## Client
## Quorum
Client is a caller of the cluster's HTTP API.
The number of active members needed for consensus to modify the cluster state. etcd requires a member majority to reach quorum.
## Machine (deprecated)
## Revision
The alternative of Member in etcd before 2.0
A 64-bit cluster-wide counter that is incremented each time the keyspace is modified.
## Role
A unit of permissions over a set of key ranges which may be granted to a set of users for access control.
## Snapshot
A point-in-time backup of the etcd cluster state.
## Store
The physical storage backing the cluster keyspace.
## Transaction
An atomically executed set of operations. All modified keys in a transaction share the same modification revision.
## Key Version
The number of writes to a key since it was created, starting at 1. The version of a nonexistent or deleted key is 0.
## Watcher
A client opens a watcher to observe updates on a given key range.

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 257 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

View File

@ -0,0 +1,118 @@
---
title: etcd versus other key-value stores
---
The name "etcd" originated from two ideas, the unix "/etc" folder and "d"istributed systems. The "/etc" folder is a place to store configuration data for a single system whereas etcd stores configuration information for large scale distributed systems. Hence, a "d"istributed "/etc" is "etcd".
etcd is designed as a general substrate for large scale distributed systems. These are systems that will never tolerate split-brain operation and are willing to sacrifice availability to achieve this end. etcd stores metadata in a consistent and fault-tolerant way. An etcd cluster is meant to provide key-value storage with best of class stability, reliability, scalability and performance.
Distributed systems use etcd as a consistent key-value store for configuration management, service discovery, and coordinating distributed work. Many [organizations][production-users] use etcd to implement production systems such as container schedulers, service discovery services, and distributed data storage. Common distributed patterns using etcd include [leader election][etcd-etcdctl-elect], [distributed locks][etcd-etcdctl-lock], and monitoring machine liveness.
## Use cases
- Container Linux by CoreOS: Applications running on [Container Linux][container-linux] get automatic, zero-downtime Linux kernel updates. Container Linux uses [locksmith] to coordinate updates. Locksmith implements a distributed semaphore over etcd to ensure only a subset of a cluster is rebooting at any given time.
- [Kubernetes][kubernetes] stores configuration data into etcd for service discovery and cluster management; etcd's consistency is crucial for correctly scheduling and operating services. The Kubernetes API server persists cluster state into etcd. It uses etcd's watch API to monitor the cluster and roll out critical configuration changes.
## Comparison chart
Perhaps etcd already seems like a good fit, but as with all technological decisions, proceed with caution. Please note this documentation is written by the etcd team. Although the ideal is a disinterested comparison of technology and features, the authors expertise and biases obviously favor etcd. Use only as directed.
The table below is a handy quick reference for spotting the differences among etcd and its most popular alternatives at a glance. Further commentary and details for each column are in the sections following the table.
| | etcd | ZooKeeper | Consul | NewSQL (Cloud Spanner, CockroachDB, TiDB) |
| --- | --- | --- | --- | --- |
| Concurrency Primitives | [Lock RPCs][etcd-v3lock], [Election RPCs][etcd-v3election], [command line locks][etcd-etcdctl-lock], [command line elections][etcd-etcdctl-elect], [recipes][etcd-recipe] in go | External [curator recipes][curator] in Java | [Native lock API][consul-lock] | [Rare][newsql-leader], if any |
| Linearizable Reads | [Yes][etcd-linread] | No | [Yes][consul-linread] | Sometimes |
| Multi-version Concurrency Control | [Yes][etcd-mvcc] | No | No | Sometimes |
| Transactions | [Field compares, Read, Write][etcd-txn] | [Version checks, Write][zk-txn] | [Field compare, Lock, Read, Write][consul-txn] | SQL-style |
| Change Notification | [Historical and current key intervals][etcd-watch] | [Current keys and directories][zk-watch] | [Current keys and prefixes][consul-watch] | Triggers (sometimes) |
| User permissions | [Role based][etcd-rbac] | [ACLs][zk-acl] | [ACLs][consul-acl] | Varies (per-table [GRANT][cockroach-grant], per-database [roles][spanner-roles]) |
| HTTP/JSON API | [Yes][etcd-json] | No | [Yes][consul-json] | Rarely |
| Membership Reconfiguration | [Yes][etcd-reconfig] | [>3.5.0][zk-reconfig] | [Yes][consul-reconfig] | Yes |
| Maximum reliable database size | Several gigabytes | Hundreds of megabytes (sometimes several gigabytes) | Hundreds of MBs | Terabytes+ |
| Minimum read linearization latency | Network RTT | No read linearization | RTT + fsync | Clock barriers (atomic, NTP) |
### ZooKeeper
ZooKeeper solves the same problem as etcd: distributed system coordination and metadata storage. However, etcd has the luxury of hindsight taken from engineering and operational experience with ZooKeepers design and implementation. The lessons learned from Zookeeper certainly informed etcds design, helping it support large scale systems like Kubernetes. The improvements etcd made over Zookeeper include:
* Dynamic cluster membership reconfiguration
* Stable read/write under high load
* A multi-version concurrency control data model
* Reliable key monitoring which never silently drop events
* Lease primitives decoupling connections from sessions
* APIs for safe distributed shared locks
Furthermore, etcd supports a wide range of languages and frameworks out of the box. Whereas Zookeeper has its own custom Jute RPC protocol, which is totally unique to Zookeeper and limits its [supported language bindings][zk-bindings], etcds client protocol is built from [gRPC][grpc], a popular RPC framework with language bindings for go, C++, Java, and more. Likewise, gRPC can be serialized into JSON over HTTP, so even general command line utilities like `curl` can talk to it. Since systems can select from a variety of choices, they are built on etcd with native tooling rather than around etcd with a single fixed set of technologies.
When considering features, support, and stability, new applications planning to use Zookeeper for a consistent key value store would do well to choose etcd instead.
### Consul
Consul is an end-to-end service discovery framework. It provides built-in health checking, failure detection, and DNS services. In addition, Consul exposes a key value store with RESTful HTTP APIs. [As it stands in Consul 1.0][dbtester-comparison-results], the storage system does not scale as well as other systems like etcd or Zookeeper in key-value operations; systems requiring millions of keys will suffer from high latencies and memory pressure. The key value API is missing, most notably, multi-version keys, conditional transactions, and reliable streaming watches.
etcd and Consul solve different problems. If looking for a distributed consistent key value store, etcd is a better choice over Consul. If looking for end-to-end cluster service discovery, etcd will not have enough features; choose Kubernetes, Consul, or SmartStack.
### NewSQL (Cloud Spanner, CockroachDB, TiDB)
Both etcd and NewSQL databases (e.g., [Cockroach][cockroach], [TiDB][tidb], [Google Spanner][spanner]) provide strong data consistency guarantees with high availability. However, the significantly different system design parameters lead to significantly different client APIs and performance characteristics.
NewSQL databases are meant to horizontally scale across data centers. These systems typically partition data across multiple consistent replication groups (shards), potentially distant, storing data sets on the order of terabytes and above. This sort of scaling makes them poor candidates for distributed coordination as they have long latencies from waiting on clocks and expect updates with mostly localized dependency graphs. The data is organized into tables, including SQL-style query facilities with richer semantics than etcd, but at the cost of additional complexity for processing, planning, and optimizing queries.
In short, choose etcd for storing metadata or coordinating distributed applications. If storing more than a few GB of data or if full SQL queries are needed, choose a NewSQL database.
## Using etcd for metadata
etcd replicates all data within a single consistent replication group. For storing up to a few GB of data with consistent ordering, this is the most efficient approach. Each modification of cluster state, which may change multiple keys, is assigned a global unique ID, called a revision in etcd, from a monotonically increasing counter for reasoning over ordering. Since theres only a single replication group, the modification request only needs to go through the raft protocol to commit. By limiting consensus to one replication group, etcd gets distributed consistency with a simple protocol while achieving low latency and high throughput.
The replication behind etcd cannot horizontally scale because it lacks data sharding. In contrast, NewSQL databases usually shard data across multiple consistent replication groups, storing data sets on the order of terabytes and above. However, to assign each modification a global unique and increasing ID, each request must go through an additional coordination protocol among replication groups. This extra coordination step may potentially conflict on the global ID, forcing ordered requests to retry. The result is a more complicated approach with typically worse performance than etcd for strict ordering.
If an application reasons primarily about metadata or metadata ordering, such as to coordinate processes, choose etcd. If the application needs a large data store spanning multiple data centers and does not heavily depend on strong global ordering properties, choose a NewSQL database.
## Using etcd for distributed coordination
etcd has distributed coordination primitives such as event watches, leases, elections, and distributed shared locks out of the box. These primitives are both maintained and supported by the etcd developers; leaving these primitives to external libraries shirks the responsibility of developing foundational distributed software, essentially leaving the system incomplete. NewSQL databases usually expect these distributed coordination primitives to be authored by third parties. Likewise, ZooKeeper famously has a separate and independent [library][curator] of coordination recipes. Consul, which provides a native locking API, goes so far as to apologize that its “[not a bulletproof method][consul-bulletproof]”.
In theory, its possible to build these primitives atop any storage systems providing strong consistency. However, the algorithms tend to be subtle; it is easy to develop a locking algorithm that appears to work, only to suddenly break due to thundering herd and timing skew. Furthermore, other primitives supported by etcd, such as transactional memory depend on etcds MVCC data model; simple strong consistency is not enough.
For distributed coordination, choosing etcd can help prevent operational headaches and save engineering effort.
[production-users]: ../production-users.md
[grpc]: https://www.grpc.io
[consul-bulletproof]: https://www.consul.io/docs/internals/sessions.html
[curator]: http://curator.apache.org/
[cockroach]: https://github.com/cockroachdb/cockroach
[spanner]: https://cloud.google.com/spanner/
[tidb]: https://github.com/pingcap/tidb
[etcd-v3lock]: https://godoc.org/github.com/etcd-io/etcd/etcdserver/api/v3lock/v3lockpb
[etcd-v3election]: https://godoc.org/github.com/coreos/etcd-io/etcdserver/api/v3election/v3electionpb
[etcd-etcdctl-lock]: ../../etcdctl/README.md#lock-lockname-command-arg1-arg2-
[etcd-etcdctl-elect]: ../../etcdctl/README.md#elect-options-election-name-proposal
[etcd-mvcc]: data_model.md
[etcd-recipe]: https://godoc.org/github.com/etcd-io/etcd/contrib/recipes
[consul-lock]: https://www.consul.io/docs/commands/lock.html
[newsql-leader]: http://dl.acm.org/citation.cfm?id=2960999
[etcd-reconfig]: ../op-guide/runtime-configuration.md
[zk-reconfig]: https://zookeeper.apache.org/doc/trunk/zookeeperReconfig.html
[consul-reconfig]: https://www.consul.io/docs/guides/servers.html
[etcd-linread]: api_guarantees.md#linearizability
[consul-linread]: https://www.consul.io/docs/agent/http.html#consistency
[etcd-json]: ../dev-guide/api_grpc_gateway.md
[consul-json]: https://www.consul.io/docs/agent/http.html#formatted-json-output
[etcd-txn]: api.md#transaction
[zk-txn]: https://zookeeper.apache.org/doc/r3.4.3/api/org/apache/zookeeper/ZooKeeper.html#multi(java.lang.Iterable)
[consul-txn]: https://www.consul.io/docs/agent/http/kv.html#txn
[etcd-watch]: api.md#watch-streams
[zk-watch]: https://zookeeper.apache.org/doc/trunk/zookeeperProgrammers.html#ch_zkWatches
[consul-watch]: https://www.consul.io/docs/agent/watches.html
[etcd-commonname]: ../op-guide/authentication.md#using-tls-common-name
[etcd-rbac]: ../op-guide/authentication.md#working-with-roles
[zk-acl]: https://zookeeper.apache.org/doc/r3.1.2/zookeeperProgrammers.html#sc_ZooKeeperAccessControl
[consul-acl]: https://www.consul.io/docs/internals/acl.html
[cockroach-grant]: https://www.cockroachlabs.com/docs/stable/grant.html
[spanner-roles]: https://cloud.google.com/spanner/docs/iam#roles
[zk-bindings]: https://zookeeper.apache.org/doc/r3.1.2/zookeeperProgrammers.html#ch_bindings
[container-linux]: https://coreos.com/why
[locksmith]: https://github.com/coreos/locksmith
[kubernetes]: https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/
[dbtester-comparison-results]: https://github.com/coreos/dbtester/tree/master/test-results/2018Q1-02-etcd-zookeeper-consul

View File

@ -1,135 +0,0 @@
# Libraries and tools
**Tools**
- [etcdctl](https://github.com/coreos/etcd/tree/master/etcdctl) - A command line client for etcd
- [etcd-backup](https://github.com/fanhattan/etcd-backup) - A powerful command line utility for dumping/restoring etcd - Supports v2
- [etcd-dump](https://npmjs.org/package/etcd-dump) - Command line utility for dumping/restoring etcd.
- [etcd-fs](https://github.com/xetorthio/etcd-fs) - FUSE filesystem for etcd
- [etcddir](https://github.com/rekby/etcddir) - Realtime sync etcd and local directory. Work with windows and linux.
- [etcd-browser](https://github.com/henszey/etcd-browser) - A web-based key/value editor for etcd using AngularJS
- [etcd-lock](https://github.com/datawisesystems/etcd-lock) - Master election & distributed r/w lock implementation using etcd - Supports v2
- [etcd-console](https://github.com/matishsiao/etcd-console) - A web-base key/value editor for etcd using PHP
- [etcd-viewer](https://github.com/nikfoundas/etcd-viewer) - An etcd key-value store editor/viewer written in Java
- [etcdtool](https://github.com/mickep76/etcdtool) - Export/Import/Edit etcd directory as JSON/YAML/TOML and Validate directory using JSON schema
- [etcd-rest](https://github.com/mickep76/etcd-rest) - Create generic REST API in Go using etcd as a backend with validation using JSON schema
- [etcdsh](https://github.com/kamilhark/etcdsh) - A command line client with support of command history and tab completion. Supports v2
**Go libraries**
- [etcd/clientv3](https://github.com/coreos/etcd/blob/master/clientv3) - the officially maintained Go client for v3
- [etcd/client](https://github.com/coreos/etcd/blob/master/client) - the officially maintained Go client for v2
- [go-etcd](https://github.com/coreos/go-etcd) - the deprecated official client. May be useful for older (<2.0.0) versions of etcd.
**Java libraries**
- [boonproject/etcd](https://github.com/boonproject/boon/blob/master/etcd/README.md) - Supports v2, Async/Sync and waits
- [justinsb/jetcd](https://github.com/justinsb/jetcd)
- [diwakergupta/jetcd](https://github.com/diwakergupta/jetcd) - Supports v2
- [jurmous/etcd4j](https://github.com/jurmous/etcd4j) - Supports v2, Async/Sync, waits and SSL
- [AdoHe/etcd4j](http://github.com/AdoHe/etcd4j) - Supports v2 (enhance for real production cluster)
- [cdancy/etcd-rest](https://github.com/cdancy/etcd-rest) - Uses jclouds to provide a complete implementation of v2 API.
**Scala libraries**
- [maciej/etcd-client](https://github.com/maciej/etcd-client) - Supports v2. Akka HTTP-based fully async client
**Python libraries**
- [jplana/python-etcd](https://github.com/jplana/python-etcd) - Supports v2
- [russellhaering/txetcd](https://github.com/russellhaering/txetcd) - a Twisted Python library
- [cholcombe973/autodock](https://github.com/cholcombe973/autodock) - A docker deployment automation tool
- [lisael/aioetcd](https://github.com/lisael/aioetcd) - (Python 3.4+) Asyncio coroutines client (Supports v2)
**Node libraries**
- [stianeikeland/node-etcd](https://github.com/stianeikeland/node-etcd) - Supports v2 (w Coffeescript)
- [lavagetto/nodejs-etcd](https://github.com/lavagetto/nodejs-etcd) - Supports v2
- [deedubs/node-etcd-config](https://github.com/deedubs/node-etcd-config) - Supports v2
**Ruby libraries**
- [iconara/etcd-rb](https://github.com/iconara/etcd-rb)
- [jpfuentes2/etcd-ruby](https://github.com/jpfuentes2/etcd-ruby)
- [ranjib/etcd-ruby](https://github.com/ranjib/etcd-ruby) - Supports v2
**C libraries**
- [jdarcy/etcd-api](https://github.com/jdarcy/etcd-api) - Supports v2
- [shafreeck/cetcd](https://github.com/shafreeck/cetcd) - Supports v2
**C++ libraries**
- [edwardcapriolo/etcdcpp](https://github.com/edwardcapriolo/etcdcpp) - Supports v2
- [suryanathan/etcdcpp](https://github.com/suryanathan/etcdcpp) - Supports v2 (with waits)
**Clojure libraries**
- [aterreno/etcd-clojure](https://github.com/aterreno/etcd-clojure)
- [dwwoelfel/cetcd](https://github.com/dwwoelfel/cetcd) - Supports v2
- [rthomas/clj-etcd](https://github.com/rthomas/clj-etcd) - Supports v2
**Erlang libraries**
- [marshall-lee/etcd.erl](https://github.com/marshall-lee/etcd.erl)
**.Net Libraries**
- [wangjia184/etcdnet](https://github.com/wangjia184/etcdnet) - Supports v2
- [drusellers/etcetera](https://github.com/drusellers/etcetera)
**PHP Libraries**
- [linkorb/etcd-php](https://github.com/linkorb/etcd-php)
**Haskell libraries**
- [wereHamster/etcd-hs](https://github.com/wereHamster/etcd-hs)
**R libraries**
- [ropensci/etseed](https://github.com/ropensci/etseed)
**Tcl libraries**
- [efrecon/etcd-tcl](https://github.com/efrecon/etcd-tcl) - Supports v2, except wait.
**Gradle Plugins**
- [gradle-etcd-rest-plugin](https://github.com/cdancy/gradle-etcd-rest-plugin) - Supports v2
**Chef Integration**
- [coderanger/etcd-chef](https://github.com/coderanger/etcd-chef)
**Chef Cookbook**
- [spheromak/etcd-cookbook](https://github.com/spheromak/etcd-cookbook)
**BOSH Releases**
- [cloudfoundry-community/etcd-boshrelease](https://github.com/cloudfoundry-community/etcd-boshrelease)
- [cloudfoundry/cf-release](https://github.com/cloudfoundry/cf-release/tree/master/jobs/etcd)
**Projects using etcd**
- [binocarlos/yoda](https://github.com/binocarlos/yoda) - etcd + ZeroMQ
- [calavera/active-proxy](https://github.com/calavera/active-proxy) - HTTP Proxy configured with etcd
- [derekchiang/etcdplus](https://github.com/derekchiang/etcdplus) - A set of distributed synchronization primitives built upon etcd
- [go-discover](https://github.com/flynn/go-discover) - service discovery in Go
- [gleicon/goreman](https://github.com/gleicon/goreman/tree/etcd) - Branch of the Go Foreman clone with etcd support
- [garethr/hiera-etcd](https://github.com/garethr/hiera-etcd) - Puppet hiera backend using etcd
- [mattn/etcd-vim](https://github.com/mattn/etcd-vim) - SET and GET keys from inside vim
- [mattn/etcdenv](https://github.com/mattn/etcdenv) - "env" shebang with etcd integration
- [kelseyhightower/confd](https://github.com/kelseyhightower/confd) - Manage local app config files using templates and data from etcd
- [configdb](https://git.autistici.org/ai/configdb/tree/master) - A REST relational abstraction on top of arbitrary database backends, aimed at storing configs and inventories.
- [scrz](https://github.com/scrz/scrz) - Container manager, stores configuration in etcd.
- [fleet](https://github.com/coreos/fleet) - Distributed init system
- [kubernetes/kubernetes](https://github.com/kubernetes/kubernetes) - Container cluster manager introduced by Google.
- [mailgun/vulcand](https://github.com/mailgun/vulcand) - HTTP proxy that uses etcd as a configuration backend.
- [duedil-ltd/discodns](https://github.com/duedil-ltd/discodns) - Simple DNS nameserver using etcd as a database for names and records.
- [skynetservices/skydns](https://github.com/skynetservices/skydns) - RFC compliant DNS server
- [xordataexchange/crypt](https://github.com/xordataexchange/crypt) - Securely store values in etcd using GPG encryption
- [spf13/viper](https://github.com/spf13/viper) - Go configuration library, reads values from ENV, pflags, files, and etcd with optional encryption
- [lytics/metafora](https://github.com/lytics/metafora) - Go distributed task library
- [ryandoyle/nss-etcd](https://github.com/ryandoyle/nss-etcd) - A GNU libc NSS module for resolving names from etcd.
- [Gru](https://github.com/dnaeon/gru) - Orchestration made easy with Go

View File

@ -1,4 +1,6 @@
# Metrics
---
title: Metrics
---
etcd uses [Prometheus][prometheus] for metrics reporting. The metrics can be used for real-time monitoring and debugging. etcd does not persist its metrics; if a member restarts, the metrics will be reset.
@ -70,6 +72,8 @@ All these metrics are prefixed with `etcd_network_`
|---------------------------|--------------------------------------------------------------------|---------------|
| peer_sent_bytes_total | The total number of bytes sent to the peer with ID `To`. | Counter(To) |
| peer_received_bytes_total | The total number of bytes received from the peer with ID `From`. | Counter(From) |
| peer_sent_failures_total | The total number of send failures from the peer with ID `To`. | Counter(To) |
| peer_received_failures_total | The total number of receive failures from the peer with ID `From`. | Counter(From) |
| peer_round_trip_time_seconds | Round-Trip-Time histogram between peers. | Histogram(To) |
| client_grpc_sent_bytes_total | The total number of bytes sent to grpc clients. | Counter |
| client_grpc_received_bytes_total| The total number of bytes received to grpc clients. | Counter |
@ -80,30 +84,7 @@ All these metrics are prefixed with `etcd_network_`
### gRPC requests
These metrics describe the requests served by a specific etcd member: total received requests, total failed requests, and processing latency. They are useful for tracking user-generated traffic hitting the etcd cluster.
All these metrics are prefixed with `etcd_grpc_`
| Name | Description | Type |
|--------------------------------|-------------------------------------------------------------------------------------|------------------------|
| requests_total | Total number of received requests | Counter(method) |
| requests_failed_total | Total number of failed requests.   | Counter(method,error) |
| unary_requests_duration_seconds | Bucketed handling duration of the requests. | Histogram(method) |
Example Prometheus queries that may be useful from these metrics (across all etcd members):
* `sum(rate(etcd_grpc_requests_failed_total{job="etcd"}[1m]) by (grpc_method) / sum(rate(etcd_grpc_total{job="etcd"})[1m]) by (grpc_method)`
Shows the fraction of events that failed by gRPC method across all members, across a time window of `1m`.
* `sum(rate(etcd_grpc_requests_total{job="etcd",grpc_method="PUT"})[1m]) by (grpc_method)`
Shows the rate of PUT requests across all members, across a time window of `1m`.
* `histogram_quantile(0.9, sum(rate(etcd_grpc_unary_requests_duration_seconds{job="etcd",grpc_method="PUT"}[5m]) ) by (le))`
Show the 0.90-tile latency (in seconds) of PUT request handling across all members, with a window of `5m`.
These metrics are exposed via [go-grpc-prometheus][go-grpc-prometheus].
## etcd_debugging namespace metrics
@ -120,7 +101,7 @@ Abnormally high snapshot duration (`snapshot_save_total_duration_seconds`) indic
## Prometheus supplied metrics
The Prometheus client library provides a number of metrics under the `go` and `process` namespaces. There are a few that are particlarly interesting.
The Prometheus client library provides a number of metrics under the `go` and `process` namespaces. There are a few that are particularly interesting.
| Name | Description | Type |
|-----------------------------------|--------------------------------------------|--------------|
@ -134,3 +115,4 @@ Heavy file descriptor (`process_open_fds`) usage (i.e., near the process's file
[prometheus-getting-started]: http://prometheus.io/docs/introduction/getting_started/
[prometheus-naming]: http://prometheus.io/docs/practices/naming/
[v2-http-metrics]: v2/metrics.md#http-requests
[go-grpc-prometheus]: https://github.com/grpc-ecosystem/go-grpc-prometheus

View File

@ -0,0 +1,975 @@
# server version: etcd_server_version{server_version="3.3.0+git"}
# name: "etcd_debugging_disk_backend_commit_rebalance_duration_seconds"
# description: "The latency distributions of commit.rebalance called by bboltdb backend."
# type: "histogram"
etcd_debugging_disk_backend_commit_rebalance_duration_seconds_bucket{le="0.001"}
etcd_debugging_disk_backend_commit_rebalance_duration_seconds_bucket{le="0.002"}
etcd_debugging_disk_backend_commit_rebalance_duration_seconds_bucket{le="0.004"}
etcd_debugging_disk_backend_commit_rebalance_duration_seconds_bucket{le="0.008"}
etcd_debugging_disk_backend_commit_rebalance_duration_seconds_bucket{le="0.016"}
etcd_debugging_disk_backend_commit_rebalance_duration_seconds_bucket{le="0.032"}
etcd_debugging_disk_backend_commit_rebalance_duration_seconds_bucket{le="0.064"}
etcd_debugging_disk_backend_commit_rebalance_duration_seconds_bucket{le="0.128"}
etcd_debugging_disk_backend_commit_rebalance_duration_seconds_bucket{le="0.256"}
etcd_debugging_disk_backend_commit_rebalance_duration_seconds_bucket{le="0.512"}
etcd_debugging_disk_backend_commit_rebalance_duration_seconds_bucket{le="1.024"}
etcd_debugging_disk_backend_commit_rebalance_duration_seconds_bucket{le="2.048"}
etcd_debugging_disk_backend_commit_rebalance_duration_seconds_bucket{le="4.096"}
etcd_debugging_disk_backend_commit_rebalance_duration_seconds_bucket{le="8.192"}
etcd_debugging_disk_backend_commit_rebalance_duration_seconds_bucket{le="+Inf"}
etcd_debugging_disk_backend_commit_rebalance_duration_seconds_sum
etcd_debugging_disk_backend_commit_rebalance_duration_seconds_count
# name: "etcd_debugging_disk_backend_commit_spill_duration_seconds"
# description: "The latency distributions of commit.spill called by bboltdb backend."
# type: "histogram"
etcd_debugging_disk_backend_commit_spill_duration_seconds_bucket{le="0.001"}
etcd_debugging_disk_backend_commit_spill_duration_seconds_bucket{le="0.002"}
etcd_debugging_disk_backend_commit_spill_duration_seconds_bucket{le="0.004"}
etcd_debugging_disk_backend_commit_spill_duration_seconds_bucket{le="0.008"}
etcd_debugging_disk_backend_commit_spill_duration_seconds_bucket{le="0.016"}
etcd_debugging_disk_backend_commit_spill_duration_seconds_bucket{le="0.032"}
etcd_debugging_disk_backend_commit_spill_duration_seconds_bucket{le="0.064"}
etcd_debugging_disk_backend_commit_spill_duration_seconds_bucket{le="0.128"}
etcd_debugging_disk_backend_commit_spill_duration_seconds_bucket{le="0.256"}
etcd_debugging_disk_backend_commit_spill_duration_seconds_bucket{le="0.512"}
etcd_debugging_disk_backend_commit_spill_duration_seconds_bucket{le="1.024"}
etcd_debugging_disk_backend_commit_spill_duration_seconds_bucket{le="2.048"}
etcd_debugging_disk_backend_commit_spill_duration_seconds_bucket{le="4.096"}
etcd_debugging_disk_backend_commit_spill_duration_seconds_bucket{le="8.192"}
etcd_debugging_disk_backend_commit_spill_duration_seconds_bucket{le="+Inf"}
etcd_debugging_disk_backend_commit_spill_duration_seconds_sum
etcd_debugging_disk_backend_commit_spill_duration_seconds_count
# name: "etcd_debugging_disk_backend_commit_write_duration_seconds"
# description: "The latency distributions of commit.write called by bboltdb backend."
# type: "histogram"
etcd_debugging_disk_backend_commit_write_duration_seconds_bucket{le="0.001"}
etcd_debugging_disk_backend_commit_write_duration_seconds_bucket{le="0.002"}
etcd_debugging_disk_backend_commit_write_duration_seconds_bucket{le="0.004"}
etcd_debugging_disk_backend_commit_write_duration_seconds_bucket{le="0.008"}
etcd_debugging_disk_backend_commit_write_duration_seconds_bucket{le="0.016"}
etcd_debugging_disk_backend_commit_write_duration_seconds_bucket{le="0.032"}
etcd_debugging_disk_backend_commit_write_duration_seconds_bucket{le="0.064"}
etcd_debugging_disk_backend_commit_write_duration_seconds_bucket{le="0.128"}
etcd_debugging_disk_backend_commit_write_duration_seconds_bucket{le="0.256"}
etcd_debugging_disk_backend_commit_write_duration_seconds_bucket{le="0.512"}
etcd_debugging_disk_backend_commit_write_duration_seconds_bucket{le="1.024"}
etcd_debugging_disk_backend_commit_write_duration_seconds_bucket{le="2.048"}
etcd_debugging_disk_backend_commit_write_duration_seconds_bucket{le="4.096"}
etcd_debugging_disk_backend_commit_write_duration_seconds_bucket{le="8.192"}
etcd_debugging_disk_backend_commit_write_duration_seconds_bucket{le="+Inf"}
etcd_debugging_disk_backend_commit_write_duration_seconds_sum
etcd_debugging_disk_backend_commit_write_duration_seconds_count
# name: "etcd_debugging_lease_granted_total"
# description: "The total number of granted leases."
# type: "counter"
etcd_debugging_lease_granted_total
# name: "etcd_debugging_lease_renewed_total"
# description: "The number of renewed leases seen by the leader."
# type: "counter"
etcd_debugging_lease_renewed_total
# name: "etcd_debugging_lease_revoked_total"
# description: "The total number of revoked leases."
# type: "counter"
etcd_debugging_lease_revoked_total
# name: "etcd_debugging_lease_ttl_total"
# description: "Bucketed histogram of lease TTLs."
# type: "histogram"
etcd_debugging_lease_ttl_total_bucket{le="1"}
etcd_debugging_lease_ttl_total_bucket{le="2"}
etcd_debugging_lease_ttl_total_bucket{le="4"}
etcd_debugging_lease_ttl_total_bucket{le="8"}
etcd_debugging_lease_ttl_total_bucket{le="16"}
etcd_debugging_lease_ttl_total_bucket{le="32"}
etcd_debugging_lease_ttl_total_bucket{le="64"}
etcd_debugging_lease_ttl_total_bucket{le="128"}
etcd_debugging_lease_ttl_total_bucket{le="256"}
etcd_debugging_lease_ttl_total_bucket{le="512"}
etcd_debugging_lease_ttl_total_bucket{le="1024"}
etcd_debugging_lease_ttl_total_bucket{le="2048"}
etcd_debugging_lease_ttl_total_bucket{le="4096"}
etcd_debugging_lease_ttl_total_bucket{le="8192"}
etcd_debugging_lease_ttl_total_bucket{le="16384"}
etcd_debugging_lease_ttl_total_bucket{le="32768"}
etcd_debugging_lease_ttl_total_bucket{le="65536"}
etcd_debugging_lease_ttl_total_bucket{le="131072"}
etcd_debugging_lease_ttl_total_bucket{le="262144"}
etcd_debugging_lease_ttl_total_bucket{le="524288"}
etcd_debugging_lease_ttl_total_bucket{le="1.048576e+06"}
etcd_debugging_lease_ttl_total_bucket{le="2.097152e+06"}
etcd_debugging_lease_ttl_total_bucket{le="4.194304e+06"}
etcd_debugging_lease_ttl_total_bucket{le="8.388608e+06"}
etcd_debugging_lease_ttl_total_bucket{le="+Inf"}
etcd_debugging_lease_ttl_total_sum
etcd_debugging_lease_ttl_total_count
# name: "etcd_debugging_mvcc_db_compaction_keys_total"
# description: "Total number of db keys compacted."
# type: "counter"
etcd_debugging_mvcc_db_compaction_keys_total
# name: "etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of db compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2048"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4096"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_compaction_total_duration_milliseconds"
# description: "Bucketed histogram of db compaction total duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="100"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="1600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="3200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="6400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="12800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="25600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="51200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="102400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="204800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="409600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="819200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_total_size_in_bytes"
# description: "Total size of the underlying database physically allocated in bytes."
# type: "gauge"
etcd_debugging_mvcc_db_total_size_in_bytes
# name: "etcd_debugging_mvcc_delete_total"
# description: "Total number of deletes seen by this member."
# type: "counter"
etcd_debugging_mvcc_delete_total
# name: "etcd_debugging_mvcc_events_total"
# description: "Total number of events sent by this member."
# type: "counter"
etcd_debugging_mvcc_events_total
# name: "etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of index compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="0.5"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="2048"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="4096"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_keys_total"
# description: "Total number of keys."
# type: "gauge"
etcd_debugging_mvcc_keys_total
# name: "etcd_debugging_mvcc_pending_events_total"
# description: "Total number of pending events to be sent."
# type: "gauge"
etcd_debugging_mvcc_pending_events_total
# name: "etcd_debugging_mvcc_put_total"
# description: "Total number of puts seen by this member."
# type: "counter"
etcd_debugging_mvcc_put_total
# name: "etcd_debugging_mvcc_range_total"
# description: "Total number of ranges seen by this member."
# type: "counter"
etcd_debugging_mvcc_range_total
# name: "etcd_debugging_mvcc_slow_watcher_total"
# description: "Total number of unsynced slow watchers."
# type: "gauge"
etcd_debugging_mvcc_slow_watcher_total
# name: "etcd_debugging_mvcc_txn_total"
# description: "Total number of txns seen by this member."
# type: "counter"
etcd_debugging_mvcc_txn_total
# name: "etcd_debugging_mvcc_watch_stream_total"
# description: "Total number of watch streams."
# type: "gauge"
etcd_debugging_mvcc_watch_stream_total
# name: "etcd_debugging_mvcc_watcher_total"
# description: "Total number of watchers."
# type: "gauge"
etcd_debugging_mvcc_watcher_total
# name: "etcd_debugging_server_lease_expired_total"
# description: "The total number of expired leases."
# type: "counter"
etcd_debugging_server_lease_expired_total
# name: "etcd_debugging_snap_save_marshalling_duration_seconds"
# description: "The marshalling cost distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_marshalling_duration_seconds_sum
etcd_debugging_snap_save_marshalling_duration_seconds_count
# name: "etcd_debugging_snap_save_total_duration_seconds"
# description: "The total latency distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_total_duration_seconds_sum
etcd_debugging_snap_save_total_duration_seconds_count
# name: "etcd_debugging_store_expires_total"
# description: "Total number of expired keys."
# type: "counter"
etcd_debugging_store_expires_total
# name: "etcd_debugging_store_reads_total"
# description: "Total number of reads action by (get/getRecursive), local to this member."
# type: "counter"
etcd_debugging_store_reads_total{action="getRecursive"}
# name: "etcd_debugging_store_watch_requests_total"
# description: "Total number of incoming watch requests (new or reestablished)."
# type: "counter"
etcd_debugging_store_watch_requests_total
# name: "etcd_debugging_store_watchers"
# description: "Count of currently active watchers."
# type: "gauge"
etcd_debugging_store_watchers
# name: "etcd_debugging_store_writes_total"
# description: "Total number of writes (e.g. set/compareAndDelete) seen by this member."
# type: "counter"
etcd_debugging_store_writes_total{action="create"}
etcd_debugging_store_writes_total{action="set"}
# name: "etcd_disk_backend_commit_duration_seconds"
# description: "The latency distributions of commit called by backend."
# type: "histogram"
etcd_disk_backend_commit_duration_seconds_bucket{le="0.001"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.002"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.004"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.008"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.016"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.032"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.064"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.128"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.256"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.512"}
etcd_disk_backend_commit_duration_seconds_bucket{le="1.024"}
etcd_disk_backend_commit_duration_seconds_bucket{le="2.048"}
etcd_disk_backend_commit_duration_seconds_bucket{le="4.096"}
etcd_disk_backend_commit_duration_seconds_bucket{le="8.192"}
etcd_disk_backend_commit_duration_seconds_bucket{le="+Inf"}
etcd_disk_backend_commit_duration_seconds_sum
etcd_disk_backend_commit_duration_seconds_count
# name: "etcd_disk_backend_defrag_duration_seconds"
# description: "The latency distribution of backend defragmentation."
# type: "histogram"
etcd_disk_backend_defrag_duration_seconds_bucket{le="0.1"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="0.2"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="0.4"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="0.8"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="1.6"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="3.2"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="6.4"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="12.8"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="25.6"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="51.2"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="102.4"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="204.8"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="409.6"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="+Inf"}
etcd_disk_backend_defrag_duration_seconds_sum
etcd_disk_backend_defrag_duration_seconds_count
# name: "etcd_disk_backend_snapshot_duration_seconds"
# description: "The latency distribution of backend snapshots."
# type: "histogram"
etcd_disk_backend_snapshot_duration_seconds_bucket{le="0.01"}
etcd_disk_backend_snapshot_duration_seconds_bucket{le="0.02"}
etcd_disk_backend_snapshot_duration_seconds_bucket{le="0.04"}
etcd_disk_backend_snapshot_duration_seconds_bucket{le="0.08"}
etcd_disk_backend_snapshot_duration_seconds_bucket{le="0.16"}
etcd_disk_backend_snapshot_duration_seconds_bucket{le="0.32"}
etcd_disk_backend_snapshot_duration_seconds_bucket{le="0.64"}
etcd_disk_backend_snapshot_duration_seconds_bucket{le="1.28"}
etcd_disk_backend_snapshot_duration_seconds_bucket{le="2.56"}
etcd_disk_backend_snapshot_duration_seconds_bucket{le="5.12"}
etcd_disk_backend_snapshot_duration_seconds_bucket{le="10.24"}
etcd_disk_backend_snapshot_duration_seconds_bucket{le="20.48"}
etcd_disk_backend_snapshot_duration_seconds_bucket{le="40.96"}
etcd_disk_backend_snapshot_duration_seconds_bucket{le="81.92"}
etcd_disk_backend_snapshot_duration_seconds_bucket{le="163.84"}
etcd_disk_backend_snapshot_duration_seconds_bucket{le="327.68"}
etcd_disk_backend_snapshot_duration_seconds_bucket{le="655.36"}
etcd_disk_backend_snapshot_duration_seconds_bucket{le="+Inf"}
etcd_disk_backend_snapshot_duration_seconds_sum
etcd_disk_backend_snapshot_duration_seconds_count
# name: "etcd_disk_wal_fsync_duration_seconds"
# description: "The latency distributions of fsync called by WAL."
# type: "histogram"
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.001"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.002"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.004"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.008"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.016"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.032"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.064"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.128"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.256"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.512"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="1.024"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="2.048"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="4.096"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="8.192"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="+Inf"}
etcd_disk_wal_fsync_duration_seconds_sum
etcd_disk_wal_fsync_duration_seconds_count
# name: "etcd_mvcc_db_total_size_in_bytes"
# description: "Total size of the underlying database physically allocated in bytes."
# type: "gauge"
etcd_mvcc_db_total_size_in_bytes
# name: "etcd_mvcc_db_total_size_in_use_in_bytes"
# description: "Total size of the underlying database logically in use in bytes."
# type: "gauge"
etcd_mvcc_db_total_size_in_use_in_bytes
# name: "etcd_mvcc_hash_duration_seconds"
# description: "The latency distribution of storage hash operation."
# type: "histogram"
etcd_mvcc_hash_duration_seconds_bucket{le="0.01"}
etcd_mvcc_hash_duration_seconds_bucket{le="0.02"}
etcd_mvcc_hash_duration_seconds_bucket{le="0.04"}
etcd_mvcc_hash_duration_seconds_bucket{le="0.08"}
etcd_mvcc_hash_duration_seconds_bucket{le="0.16"}
etcd_mvcc_hash_duration_seconds_bucket{le="0.32"}
etcd_mvcc_hash_duration_seconds_bucket{le="0.64"}
etcd_mvcc_hash_duration_seconds_bucket{le="1.28"}
etcd_mvcc_hash_duration_seconds_bucket{le="2.56"}
etcd_mvcc_hash_duration_seconds_bucket{le="5.12"}
etcd_mvcc_hash_duration_seconds_bucket{le="10.24"}
etcd_mvcc_hash_duration_seconds_bucket{le="20.48"}
etcd_mvcc_hash_duration_seconds_bucket{le="40.96"}
etcd_mvcc_hash_duration_seconds_bucket{le="81.92"}
etcd_mvcc_hash_duration_seconds_bucket{le="163.84"}
etcd_mvcc_hash_duration_seconds_bucket{le="+Inf"}
etcd_mvcc_hash_duration_seconds_sum
etcd_mvcc_hash_duration_seconds_count
# name: "etcd_mvcc_hash_rev_duration_seconds"
# description: "The latency distribution of storage hash by revision operation."
# type: "histogram"
etcd_mvcc_hash_rev_duration_seconds_bucket{le="0.01"}
etcd_mvcc_hash_rev_duration_seconds_bucket{le="0.02"}
etcd_mvcc_hash_rev_duration_seconds_bucket{le="0.04"}
etcd_mvcc_hash_rev_duration_seconds_bucket{le="0.08"}
etcd_mvcc_hash_rev_duration_seconds_bucket{le="0.16"}
etcd_mvcc_hash_rev_duration_seconds_bucket{le="0.32"}
etcd_mvcc_hash_rev_duration_seconds_bucket{le="0.64"}
etcd_mvcc_hash_rev_duration_seconds_bucket{le="1.28"}
etcd_mvcc_hash_rev_duration_seconds_bucket{le="2.56"}
etcd_mvcc_hash_rev_duration_seconds_bucket{le="5.12"}
etcd_mvcc_hash_rev_duration_seconds_bucket{le="10.24"}
etcd_mvcc_hash_rev_duration_seconds_bucket{le="20.48"}
etcd_mvcc_hash_rev_duration_seconds_bucket{le="40.96"}
etcd_mvcc_hash_rev_duration_seconds_bucket{le="81.92"}
etcd_mvcc_hash_rev_duration_seconds_bucket{le="163.84"}
etcd_mvcc_hash_rev_duration_seconds_bucket{le="+Inf"}
etcd_mvcc_hash_rev_duration_seconds_sum
etcd_mvcc_hash_rev_duration_seconds_count
# name: "etcd_network_active_peers"
# description: "The current number of active peer connections."
# type: "gauge"
etcd_network_active_peers{Local="LOCAL_NODE_ID",Remote="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_client_grpc_received_bytes_total"
# description: "The total number of bytes received from grpc clients."
# type: "counter"
etcd_network_client_grpc_received_bytes_total
# name: "etcd_network_client_grpc_sent_bytes_total"
# description: "The total number of bytes sent to grpc clients."
# type: "counter"
etcd_network_client_grpc_sent_bytes_total
# name: "etcd_network_peer_received_bytes_total"
# description: "The total number of bytes received from peers."
# type: "counter"
etcd_network_peer_received_bytes_total{From="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_round_trip_time_seconds"
# description: "Round-Trip-Time histogram between peers"
# type: "histogram"
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="+Inf"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0001"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0002"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0004"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0008"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0016"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0032"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0064"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0128"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0256"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0512"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.1024"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.2048"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.4096"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.8192"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="1.6384"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="3.2768"}
etcd_network_peer_round_trip_time_seconds_count{To="REMOTE_PEER_NODE_ID"}
etcd_network_peer_round_trip_time_seconds_sum{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_sent_bytes_total"
# description: "The total number of bytes sent to peers."
# type: "counter"
etcd_network_peer_sent_bytes_total{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_server_go_version"
# description: "Which Go version server is running with. 1 for 'server_go_version' label with current version."
# type: "gauge"
etcd_server_go_version{server_go_version="go1.11.1"}
# name: "etcd_server_has_leader"
# description: "Whether or not a leader exists. 1 is existence, 0 is not."
# type: "gauge"
etcd_server_has_leader
# name: "etcd_server_health_failures"
# description: "The total number of failed health checks"
# type: "counter"
etcd_server_health_failures
# name: "etcd_server_health_success"
# description: "The total number of successful health checks"
# type: "counter"
etcd_server_health_success
# name: "etcd_server_heartbeat_send_failures_total"
# description: "The total number of leader heartbeat send failures (likely overloaded from slow disk)."
# type: "counter"
etcd_server_heartbeat_send_failures_total
# name: "etcd_server_id"
# description: "Server or member ID in hexadecimal format. 1 for 'server_id' label with current ID."
# type: "gauge"
etcd_server_id{server_id="221ed218fa16d1fe"}
etcd_server_id{server_id="3f1ca865609d428d"}
# name: "etcd_server_is_leader"
# description: "Whether or not this member is a leader. 1 if is, 0 otherwise."
# type: "gauge"
etcd_server_is_leader
# name: "etcd_server_leader_changes_seen_total"
# description: "The number of leader changes seen."
# type: "counter"
etcd_server_leader_changes_seen_total
# name: "etcd_server_is_learner"
# description: "Whether or not this member is a learner. 1 if is, 0 otherwise."
# type: "gauge"
etcd_server_is_learner
# name: "etcd_server_learner_promote_failures"
# description: "The total number of failed learner promotions (likely learner not ready) while this member is leader."
# type: "counter"
etcd_server_learner_promote_failures
# name: "etcd_server_learner_promote_successes"
# description: "The total number of successful learner promotions while this member is leader."
# type: "counter"
etcd_server_learner_promote_successes
# name: "etcd_server_proposals_applied_total"
# description: "The total number of consensus proposals applied."
# type: "gauge"
etcd_server_proposals_applied_total
# name: "etcd_server_proposals_committed_total"
# description: "The total number of consensus proposals committed."
# type: "gauge"
etcd_server_proposals_committed_total
# name: "etcd_server_proposals_failed_total"
# description: "The total number of failed proposals seen."
# type: "counter"
etcd_server_proposals_failed_total
# name: "etcd_server_proposals_pending"
# description: "The current number of pending proposals to commit."
# type: "gauge"
etcd_server_proposals_pending
# name: "etcd_server_quota_backend_bytes"
# description: "Current backend storage quota size in bytes."
# type: "gauge"
etcd_server_quota_backend_bytes
# name: "etcd_server_read_indexes_failed_total"
# description: "The total number of failed read indexes seen."
# type: "counter"
etcd_server_read_indexes_failed_total
# name: "etcd_server_slow_apply_total"
# description: "The total number of slow apply requests (likely overloaded from slow disk)."
# type: "counter"
etcd_server_slow_apply_total
# name: "etcd_server_slow_read_indexes_total"
# description: "The total number of pending read indexes not in sync with leader's or timed out read index requests."
# type: "counter"
etcd_server_slow_read_indexes_total
# name: "etcd_server_version"
# description: "Which version is running. 1 for 'server_version' label with current version."
# type: "gauge"
etcd_server_version{server_version="3.3.0+git"}
# name: "etcd_snap_db_fsync_duration_seconds"
# description: "The latency distributions of fsyncing .snap.db file"
# type: "histogram"
etcd_snap_db_fsync_duration_seconds_bucket{le="0.001"}
etcd_snap_db_fsync_duration_seconds_bucket{le="0.002"}
etcd_snap_db_fsync_duration_seconds_bucket{le="0.004"}
etcd_snap_db_fsync_duration_seconds_bucket{le="0.008"}
etcd_snap_db_fsync_duration_seconds_bucket{le="0.016"}
etcd_snap_db_fsync_duration_seconds_bucket{le="0.032"}
etcd_snap_db_fsync_duration_seconds_bucket{le="0.064"}
etcd_snap_db_fsync_duration_seconds_bucket{le="0.128"}
etcd_snap_db_fsync_duration_seconds_bucket{le="0.256"}
etcd_snap_db_fsync_duration_seconds_bucket{le="0.512"}
etcd_snap_db_fsync_duration_seconds_bucket{le="1.024"}
etcd_snap_db_fsync_duration_seconds_bucket{le="2.048"}
etcd_snap_db_fsync_duration_seconds_bucket{le="4.096"}
etcd_snap_db_fsync_duration_seconds_bucket{le="8.192"}
etcd_snap_db_fsync_duration_seconds_bucket{le="+Inf"}
etcd_snap_db_fsync_duration_seconds_sum
etcd_snap_db_fsync_duration_seconds_count
# name: "etcd_snap_db_save_total_duration_seconds"
# description: "The total latency distributions of v3 snapshot save"
# type: "histogram"
etcd_snap_db_save_total_duration_seconds_bucket{le="0.1"}
etcd_snap_db_save_total_duration_seconds_bucket{le="0.2"}
etcd_snap_db_save_total_duration_seconds_bucket{le="0.4"}
etcd_snap_db_save_total_duration_seconds_bucket{le="0.8"}
etcd_snap_db_save_total_duration_seconds_bucket{le="1.6"}
etcd_snap_db_save_total_duration_seconds_bucket{le="3.2"}
etcd_snap_db_save_total_duration_seconds_bucket{le="6.4"}
etcd_snap_db_save_total_duration_seconds_bucket{le="12.8"}
etcd_snap_db_save_total_duration_seconds_bucket{le="25.6"}
etcd_snap_db_save_total_duration_seconds_bucket{le="51.2"}
etcd_snap_db_save_total_duration_seconds_bucket{le="+Inf"}
etcd_snap_db_save_total_duration_seconds_sum
etcd_snap_db_save_total_duration_seconds_count
# name: "etcd_snap_fsync_duration_seconds"
# description: "The latency distributions of fsync called by snap."
# type: "histogram"
etcd_snap_fsync_duration_seconds_bucket{le="0.001"}
etcd_snap_fsync_duration_seconds_bucket{le="0.002"}
etcd_snap_fsync_duration_seconds_bucket{le="0.004"}
etcd_snap_fsync_duration_seconds_bucket{le="0.008"}
etcd_snap_fsync_duration_seconds_bucket{le="0.016"}
etcd_snap_fsync_duration_seconds_bucket{le="0.032"}
etcd_snap_fsync_duration_seconds_bucket{le="0.064"}
etcd_snap_fsync_duration_seconds_bucket{le="0.128"}
etcd_snap_fsync_duration_seconds_bucket{le="0.256"}
etcd_snap_fsync_duration_seconds_bucket{le="0.512"}
etcd_snap_fsync_duration_seconds_bucket{le="1.024"}
etcd_snap_fsync_duration_seconds_bucket{le="2.048"}
etcd_snap_fsync_duration_seconds_bucket{le="4.096"}
etcd_snap_fsync_duration_seconds_bucket{le="8.192"}
etcd_snap_fsync_duration_seconds_bucket{le="+Inf"}
etcd_snap_fsync_duration_seconds_sum
etcd_snap_fsync_duration_seconds_count
# name: "go_gc_duration_seconds"
# description: "A summary of the GC invocation durations."
# type: "summary"
go_gc_duration_seconds{quantile="0"}
go_gc_duration_seconds{quantile="0.25"}
go_gc_duration_seconds{quantile="0.5"}
go_gc_duration_seconds{quantile="0.75"}
go_gc_duration_seconds{quantile="1"}
go_gc_duration_seconds_sum
go_gc_duration_seconds_count
# name: "go_goroutines"
# description: "Number of goroutines that currently exist."
# type: "gauge"
go_goroutines
# name: "go_memstats_alloc_bytes"
# description: "Number of bytes allocated and still in use."
# type: "gauge"
go_memstats_alloc_bytes
# name: "go_memstats_alloc_bytes_total"
# description: "Total number of bytes allocated, even if freed."
# type: "counter"
go_memstats_alloc_bytes_total
# name: "go_memstats_buck_hash_sys_bytes"
# description: "Number of bytes used by the profiling bucket hash table."
# type: "gauge"
go_memstats_buck_hash_sys_bytes
# name: "go_memstats_frees_total"
# description: "Total number of frees."
# type: "counter"
go_memstats_frees_total
# name: "go_memstats_gc_sys_bytes"
# description: "Number of bytes used for garbage collection system metadata."
# type: "gauge"
go_memstats_gc_sys_bytes
# name: "go_memstats_heap_alloc_bytes"
# description: "Number of heap bytes allocated and still in use."
# type: "gauge"
go_memstats_heap_alloc_bytes
# name: "go_memstats_heap_idle_bytes"
# description: "Number of heap bytes waiting to be used."
# type: "gauge"
go_memstats_heap_idle_bytes
# name: "go_memstats_heap_inuse_bytes"
# description: "Number of heap bytes that are in use."
# type: "gauge"
go_memstats_heap_inuse_bytes
# name: "go_memstats_heap_objects"
# description: "Number of allocated objects."
# type: "gauge"
go_memstats_heap_objects
# name: "go_memstats_heap_released_bytes_total"
# description: "Total number of heap bytes released to OS."
# type: "counter"
go_memstats_heap_released_bytes_total
# name: "go_memstats_heap_sys_bytes"
# description: "Number of heap bytes obtained from system."
# type: "gauge"
go_memstats_heap_sys_bytes
# name: "go_memstats_last_gc_time_seconds"
# description: "Number of seconds since 1970 of last garbage collection."
# type: "gauge"
go_memstats_last_gc_time_seconds
# name: "go_memstats_lookups_total"
# description: "Total number of pointer lookups."
# type: "counter"
go_memstats_lookups_total
# name: "go_memstats_mallocs_total"
# description: "Total number of mallocs."
# type: "counter"
go_memstats_mallocs_total
# name: "go_memstats_mcache_inuse_bytes"
# description: "Number of bytes in use by mcache structures."
# type: "gauge"
go_memstats_mcache_inuse_bytes
# name: "go_memstats_mcache_sys_bytes"
# description: "Number of bytes used for mcache structures obtained from system."
# type: "gauge"
go_memstats_mcache_sys_bytes
# name: "go_memstats_mspan_inuse_bytes"
# description: "Number of bytes in use by mspan structures."
# type: "gauge"
go_memstats_mspan_inuse_bytes
# name: "go_memstats_mspan_sys_bytes"
# description: "Number of bytes used for mspan structures obtained from system."
# type: "gauge"
go_memstats_mspan_sys_bytes
# name: "go_memstats_next_gc_bytes"
# description: "Number of heap bytes when next garbage collection will take place."
# type: "gauge"
go_memstats_next_gc_bytes
# name: "go_memstats_other_sys_bytes"
# description: "Number of bytes used for other system allocations."
# type: "gauge"
go_memstats_other_sys_bytes
# name: "go_memstats_stack_inuse_bytes"
# description: "Number of bytes in use by the stack allocator."
# type: "gauge"
go_memstats_stack_inuse_bytes
# name: "go_memstats_stack_sys_bytes"
# description: "Number of bytes obtained from system for stack allocator."
# type: "gauge"
go_memstats_stack_sys_bytes
# name: "go_memstats_sys_bytes"
# description: "Number of bytes obtained by system. Sum of all system allocations."
# type: "gauge"
go_memstats_sys_bytes
# name: "grpc_server_handled_total"
# description: "Total number of RPCs completed on the server, regardless of success or failure."
# type: "counter"
# gRPC codes:
# - "Aborted"
# - "AlreadyExists"
# - "Canceled"
# - "DataLoss"
# - "DeadlineExceeded"
# - "FailedPrecondition"
# - "Internal"
# - "InvalidArgument"
# - "NotFound"
# - "OK"
# - "OutOfRange"
# - "PermissionDenied"
# - "ResourceExhausted"
# - "Unauthenticated"
# - "Unavailable"
# - "Unimplemented"
# - "Unknown"
grpc_server_handled_total{grpc_code="CODE",grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_received_total"
# description: "Total number of RPC stream messages received on the server."
# type: "counter"
grpc_server_msg_received_total{grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"}
grpc_server_msg_received_total{grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"}
grpc_server_msg_received_total{grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_sent_total"
# description: "Total number of gRPC stream messages sent by the server."
# type: "counter"
grpc_server_msg_sent_total{grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"}
grpc_server_msg_sent_total{grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"}
grpc_server_msg_sent_total{grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_started_total"
# description: "Total number of RPCs started on the server."
# type: "counter"
grpc_server_started_total{grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_started_total{grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_started_total{grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_started_total{grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_started_total{grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"}
grpc_server_started_total{grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_started_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_started_total{grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_started_total{grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"}
grpc_server_started_total{grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"}
grpc_server_started_total{grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"}
grpc_server_started_total{grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"}
grpc_server_started_total{grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"}
grpc_server_started_total{grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"}
grpc_server_started_total{grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"}
grpc_server_started_total{grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"}
grpc_server_started_total{grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"}
grpc_server_started_total{grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_started_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_started_total{grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_started_total{grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_started_total{grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_started_total{grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_started_total{grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_started_total{grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"}
grpc_server_started_total{grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_started_total{grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_started_total{grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_started_total{grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_started_total{grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_started_total{grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_started_total{grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_started_total{grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_started_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}

View File

@ -0,0 +1,511 @@
# server version: unknown
# name: "etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of db compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2048"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4096"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_compaction_total_duration_milliseconds"
# description: "Bucketed histogram of db compaction total duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="100"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="1600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="3200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="6400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="12800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="25600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="51200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="102400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="204800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="409600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="819200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_total_size_in_bytes"
# description: "Total size of the underlying database in bytes."
# type: "gauge"
etcd_debugging_mvcc_db_total_size_in_bytes
# name: "etcd_debugging_mvcc_delete_total"
# description: "Total number of deletes seen by this member."
# type: "counter"
etcd_debugging_mvcc_delete_total
# name: "etcd_debugging_mvcc_events_total"
# description: "Total number of events sent by this member."
# type: "counter"
etcd_debugging_mvcc_events_total
# name: "etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of index compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="0.5"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_keys_total"
# description: "Total number of keys."
# type: "gauge"
etcd_debugging_mvcc_keys_total
# name: "etcd_debugging_mvcc_pending_events_total"
# description: "Total number of pending events to be sent."
# type: "gauge"
etcd_debugging_mvcc_pending_events_total
# name: "etcd_debugging_mvcc_put_total"
# description: "Total number of puts seen by this member."
# type: "counter"
etcd_debugging_mvcc_put_total
# name: "etcd_debugging_mvcc_range_total"
# description: "Total number of ranges seen by this member."
# type: "counter"
etcd_debugging_mvcc_range_total
# name: "etcd_debugging_mvcc_slow_watcher_total"
# description: "Total number of unsynced slow watchers."
# type: "gauge"
etcd_debugging_mvcc_slow_watcher_total
# name: "etcd_debugging_mvcc_txn_total"
# description: "Total number of txns seen by this member."
# type: "counter"
etcd_debugging_mvcc_txn_total
# name: "etcd_debugging_mvcc_watch_stream_total"
# description: "Total number of watch streams."
# type: "gauge"
etcd_debugging_mvcc_watch_stream_total
# name: "etcd_debugging_mvcc_watcher_total"
# description: "Total number of watchers."
# type: "gauge"
etcd_debugging_mvcc_watcher_total
# name: "etcd_debugging_snap_save_marshalling_duration_seconds"
# description: "The marshalling cost distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_marshalling_duration_seconds_sum
etcd_debugging_snap_save_marshalling_duration_seconds_count
# name: "etcd_debugging_snap_save_total_duration_seconds"
# description: "The total latency distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_total_duration_seconds_sum
etcd_debugging_snap_save_total_duration_seconds_count
# name: "etcd_debugging_store_expires_total"
# description: "Total number of expired keys."
# type: "counter"
etcd_debugging_store_expires_total
# name: "etcd_debugging_store_reads_total"
# description: "Total number of reads action by (get/getRecursive), local to this member."
# type: "counter"
etcd_debugging_store_reads_total{action="getRecursive"}
# name: "etcd_debugging_store_watch_requests_total"
# description: "Total number of incoming watch requests (new or reestablished)."
# type: "counter"
etcd_debugging_store_watch_requests_total
# name: "etcd_debugging_store_watchers"
# description: "Count of currently active watchers."
# type: "gauge"
etcd_debugging_store_watchers
# name: "etcd_debugging_store_writes_total"
# description: "Total number of writes (e.g. set/compareAndDelete) seen by this member."
# type: "counter"
etcd_debugging_store_writes_total{action="create"}
etcd_debugging_store_writes_total{action="set"}
# name: "etcd_disk_backend_commit_duration_seconds"
# description: "The latency distributions of commit called by backend."
# type: "histogram"
etcd_disk_backend_commit_duration_seconds_bucket{le="0.001"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.002"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.004"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.008"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.016"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.032"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.064"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.128"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.256"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.512"}
etcd_disk_backend_commit_duration_seconds_bucket{le="1.024"}
etcd_disk_backend_commit_duration_seconds_bucket{le="2.048"}
etcd_disk_backend_commit_duration_seconds_bucket{le="4.096"}
etcd_disk_backend_commit_duration_seconds_bucket{le="8.192"}
etcd_disk_backend_commit_duration_seconds_bucket{le="+Inf"}
etcd_disk_backend_commit_duration_seconds_sum
etcd_disk_backend_commit_duration_seconds_count
# name: "etcd_disk_wal_fsync_duration_seconds"
# description: "The latency distributions of fsync called by wal."
# type: "histogram"
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.001"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.002"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.004"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.008"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.016"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.032"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.064"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.128"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.256"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.512"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="1.024"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="2.048"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="4.096"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="8.192"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="+Inf"}
etcd_disk_wal_fsync_duration_seconds_sum
etcd_disk_wal_fsync_duration_seconds_count
# name: "etcd_grpc_proxy_cache_hits_total"
# description: "Total number of cache hits"
# type: "gauge"
etcd_grpc_proxy_cache_hits_total
# name: "etcd_grpc_proxy_cache_misses_total"
# description: "Total number of cache misses"
# type: "gauge"
etcd_grpc_proxy_cache_misses_total
# name: "etcd_grpc_proxy_events_coalescing_total"
# description: "Total number of events coalescing"
# type: "counter"
etcd_grpc_proxy_events_coalescing_total
# name: "etcd_grpc_proxy_watchers_coalescing_total"
# description: "Total number of current watchers coalescing"
# type: "gauge"
etcd_grpc_proxy_watchers_coalescing_total
# name: "etcd_network_client_grpc_received_bytes_total"
# description: "The total number of bytes received from grpc clients."
# type: "counter"
etcd_network_client_grpc_received_bytes_total
# name: "etcd_network_client_grpc_sent_bytes_total"
# description: "The total number of bytes sent to grpc clients."
# type: "counter"
etcd_network_client_grpc_sent_bytes_total
# name: "etcd_network_peer_received_bytes_total"
# description: "The total number of bytes received from peers."
# type: "counter"
etcd_network_peer_received_bytes_total{From="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_round_trip_time_seconds"
# description: "Round-Trip-Time histogram between peers."
# type: "histogram"
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="+Inf"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0001"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0002"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0004"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0008"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0016"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0032"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0064"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0128"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0256"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0512"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.1024"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.2048"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.4096"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.8192"}
etcd_network_peer_round_trip_time_seconds_count{To="REMOTE_PEER_NODE_ID"}
etcd_network_peer_round_trip_time_seconds_sum{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_sent_bytes_total"
# description: "The total number of bytes sent to peers."
# type: "counter"
etcd_network_peer_sent_bytes_total{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_server_has_leader"
# description: "Whether or not a leader exists. 1 is existence, 0 is not."
# type: "gauge"
etcd_server_has_leader
# name: "etcd_server_leader_changes_seen_total"
# description: "The number of leader changes seen."
# type: "counter"
etcd_server_leader_changes_seen_total
# name: "etcd_server_proposals_applied_total"
# description: "The total number of consensus proposals applied."
# type: "gauge"
etcd_server_proposals_applied_total
# name: "etcd_server_proposals_committed_total"
# description: "The total number of consensus proposals committed."
# type: "gauge"
etcd_server_proposals_committed_total
# name: "etcd_server_proposals_failed_total"
# description: "The total number of failed proposals seen."
# type: "counter"
etcd_server_proposals_failed_total
# name: "etcd_server_proposals_pending"
# description: "The current number of pending proposals to commit."
# type: "gauge"
etcd_server_proposals_pending
# name: "go_gc_duration_seconds"
# description: "A summary of the GC invocation durations."
# type: "summary"
go_gc_duration_seconds{quantile="0"}
go_gc_duration_seconds{quantile="0.25"}
go_gc_duration_seconds{quantile="0.5"}
go_gc_duration_seconds{quantile="0.75"}
go_gc_duration_seconds{quantile="1"}
go_gc_duration_seconds_sum
go_gc_duration_seconds_count
# name: "go_goroutines"
# description: "Number of goroutines that currently exist."
# type: "gauge"
go_goroutines
# name: "go_memstats_alloc_bytes"
# description: "Number of bytes allocated and still in use."
# type: "gauge"
go_memstats_alloc_bytes
# name: "go_memstats_alloc_bytes_total"
# description: "Total number of bytes allocated, even if freed."
# type: "counter"
go_memstats_alloc_bytes_total
# name: "go_memstats_buck_hash_sys_bytes"
# description: "Number of bytes used by the profiling bucket hash table."
# type: "gauge"
go_memstats_buck_hash_sys_bytes
# name: "go_memstats_frees_total"
# description: "Total number of frees."
# type: "counter"
go_memstats_frees_total
# name: "go_memstats_gc_sys_bytes"
# description: "Number of bytes used for garbage collection system metadata."
# type: "gauge"
go_memstats_gc_sys_bytes
# name: "go_memstats_heap_alloc_bytes"
# description: "Number of heap bytes allocated and still in use."
# type: "gauge"
go_memstats_heap_alloc_bytes
# name: "go_memstats_heap_idle_bytes"
# description: "Number of heap bytes waiting to be used."
# type: "gauge"
go_memstats_heap_idle_bytes
# name: "go_memstats_heap_inuse_bytes"
# description: "Number of heap bytes that are in use."
# type: "gauge"
go_memstats_heap_inuse_bytes
# name: "go_memstats_heap_objects"
# description: "Number of allocated objects."
# type: "gauge"
go_memstats_heap_objects
# name: "go_memstats_heap_released_bytes_total"
# description: "Total number of heap bytes released to OS."
# type: "counter"
go_memstats_heap_released_bytes_total
# name: "go_memstats_heap_sys_bytes"
# description: "Number of heap bytes obtained from system."
# type: "gauge"
go_memstats_heap_sys_bytes
# name: "go_memstats_last_gc_time_seconds"
# description: "Number of seconds since 1970 of last garbage collection."
# type: "gauge"
go_memstats_last_gc_time_seconds
# name: "go_memstats_lookups_total"
# description: "Total number of pointer lookups."
# type: "counter"
go_memstats_lookups_total
# name: "go_memstats_mallocs_total"
# description: "Total number of mallocs."
# type: "counter"
go_memstats_mallocs_total
# name: "go_memstats_mcache_inuse_bytes"
# description: "Number of bytes in use by mcache structures."
# type: "gauge"
go_memstats_mcache_inuse_bytes
# name: "go_memstats_mcache_sys_bytes"
# description: "Number of bytes used for mcache structures obtained from system."
# type: "gauge"
go_memstats_mcache_sys_bytes
# name: "go_memstats_mspan_inuse_bytes"
# description: "Number of bytes in use by mspan structures."
# type: "gauge"
go_memstats_mspan_inuse_bytes
# name: "go_memstats_mspan_sys_bytes"
# description: "Number of bytes used for mspan structures obtained from system."
# type: "gauge"
go_memstats_mspan_sys_bytes
# name: "go_memstats_next_gc_bytes"
# description: "Number of heap bytes when next garbage collection will take place."
# type: "gauge"
go_memstats_next_gc_bytes
# name: "go_memstats_other_sys_bytes"
# description: "Number of bytes used for other system allocations."
# type: "gauge"
go_memstats_other_sys_bytes
# name: "go_memstats_stack_inuse_bytes"
# description: "Number of bytes in use by the stack allocator."
# type: "gauge"
go_memstats_stack_inuse_bytes
# name: "go_memstats_stack_sys_bytes"
# description: "Number of bytes obtained from system for stack allocator."
# type: "gauge"
go_memstats_stack_sys_bytes
# name: "go_memstats_sys_bytes"
# description: "Number of bytes obtained by system. Sum of all system allocations."
# type: "gauge"
go_memstats_sys_bytes
# name: "grpc_server_handled_total"
# description: "Total number of RPCs completed on the server, regardless of success or failure."
# type: "counter"
# gRPC codes:
# - "OK"
# - "Unavailable"
grpc_server_handled_total{grpc_code="CODE",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_received_total"
# description: "Total number of RPC stream messages received on the server."
# type: "counter"
grpc_server_msg_received_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_sent_total"
# description: "Total number of gRPC stream messages sent by the server."
# type: "counter"
grpc_server_msg_sent_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_started_total"
# description: "Total number of RPCs started on the server."
# type: "counter"
grpc_server_started_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "http_request_duration_microseconds"
# description: "The HTTP request latencies in microseconds."
# type: "summary"
http_request_duration_microseconds{handler="prometheus",quantile="0.5"}
http_request_duration_microseconds{handler="prometheus",quantile="0.9"}
http_request_duration_microseconds{handler="prometheus",quantile="0.99"}
http_request_duration_microseconds_sum{handler="prometheus"}
http_request_duration_microseconds_count{handler="prometheus"}
# name: "http_request_size_bytes"
# description: "The HTTP request sizes in bytes."
# type: "summary"
http_request_size_bytes{handler="prometheus",quantile="0.5"}
http_request_size_bytes{handler="prometheus",quantile="0.9"}
http_request_size_bytes{handler="prometheus",quantile="0.99"}
http_request_size_bytes_sum{handler="prometheus"}
http_request_size_bytes_count{handler="prometheus"}
# name: "http_response_size_bytes"
# description: "The HTTP response sizes in bytes."
# type: "summary"
http_response_size_bytes{handler="prometheus",quantile="0.5"}
http_response_size_bytes{handler="prometheus",quantile="0.9"}
http_response_size_bytes{handler="prometheus",quantile="0.99"}
http_response_size_bytes_sum{handler="prometheus"}
http_response_size_bytes_count{handler="prometheus"}

View File

@ -0,0 +1,511 @@
# server version: unknown
# name: "etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of db compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2048"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4096"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_compaction_total_duration_milliseconds"
# description: "Bucketed histogram of db compaction total duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="100"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="1600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="3200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="6400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="12800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="25600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="51200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="102400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="204800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="409600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="819200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_total_size_in_bytes"
# description: "Total size of the underlying database in bytes."
# type: "gauge"
etcd_debugging_mvcc_db_total_size_in_bytes
# name: "etcd_debugging_mvcc_delete_total"
# description: "Total number of deletes seen by this member."
# type: "counter"
etcd_debugging_mvcc_delete_total
# name: "etcd_debugging_mvcc_events_total"
# description: "Total number of events sent by this member."
# type: "counter"
etcd_debugging_mvcc_events_total
# name: "etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of index compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="0.5"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_keys_total"
# description: "Total number of keys."
# type: "gauge"
etcd_debugging_mvcc_keys_total
# name: "etcd_debugging_mvcc_pending_events_total"
# description: "Total number of pending events to be sent."
# type: "gauge"
etcd_debugging_mvcc_pending_events_total
# name: "etcd_debugging_mvcc_put_total"
# description: "Total number of puts seen by this member."
# type: "counter"
etcd_debugging_mvcc_put_total
# name: "etcd_debugging_mvcc_range_total"
# description: "Total number of ranges seen by this member."
# type: "counter"
etcd_debugging_mvcc_range_total
# name: "etcd_debugging_mvcc_slow_watcher_total"
# description: "Total number of unsynced slow watchers."
# type: "gauge"
etcd_debugging_mvcc_slow_watcher_total
# name: "etcd_debugging_mvcc_txn_total"
# description: "Total number of txns seen by this member."
# type: "counter"
etcd_debugging_mvcc_txn_total
# name: "etcd_debugging_mvcc_watch_stream_total"
# description: "Total number of watch streams."
# type: "gauge"
etcd_debugging_mvcc_watch_stream_total
# name: "etcd_debugging_mvcc_watcher_total"
# description: "Total number of watchers."
# type: "gauge"
etcd_debugging_mvcc_watcher_total
# name: "etcd_debugging_snap_save_marshalling_duration_seconds"
# description: "The marshalling cost distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_marshalling_duration_seconds_sum
etcd_debugging_snap_save_marshalling_duration_seconds_count
# name: "etcd_debugging_snap_save_total_duration_seconds"
# description: "The total latency distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_total_duration_seconds_sum
etcd_debugging_snap_save_total_duration_seconds_count
# name: "etcd_debugging_store_expires_total"
# description: "Total number of expired keys."
# type: "counter"
etcd_debugging_store_expires_total
# name: "etcd_debugging_store_reads_total"
# description: "Total number of reads action by (get/getRecursive), local to this member."
# type: "counter"
etcd_debugging_store_reads_total{action="getRecursive"}
# name: "etcd_debugging_store_watch_requests_total"
# description: "Total number of incoming watch requests (new or reestablished)."
# type: "counter"
etcd_debugging_store_watch_requests_total
# name: "etcd_debugging_store_watchers"
# description: "Count of currently active watchers."
# type: "gauge"
etcd_debugging_store_watchers
# name: "etcd_debugging_store_writes_total"
# description: "Total number of writes (e.g. set/compareAndDelete) seen by this member."
# type: "counter"
etcd_debugging_store_writes_total{action="create"}
etcd_debugging_store_writes_total{action="set"}
# name: "etcd_disk_backend_commit_duration_seconds"
# description: "The latency distributions of commit called by backend."
# type: "histogram"
etcd_disk_backend_commit_duration_seconds_bucket{le="0.001"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.002"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.004"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.008"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.016"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.032"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.064"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.128"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.256"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.512"}
etcd_disk_backend_commit_duration_seconds_bucket{le="1.024"}
etcd_disk_backend_commit_duration_seconds_bucket{le="2.048"}
etcd_disk_backend_commit_duration_seconds_bucket{le="4.096"}
etcd_disk_backend_commit_duration_seconds_bucket{le="8.192"}
etcd_disk_backend_commit_duration_seconds_bucket{le="+Inf"}
etcd_disk_backend_commit_duration_seconds_sum
etcd_disk_backend_commit_duration_seconds_count
# name: "etcd_disk_wal_fsync_duration_seconds"
# description: "The latency distributions of fsync called by wal."
# type: "histogram"
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.001"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.002"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.004"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.008"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.016"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.032"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.064"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.128"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.256"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.512"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="1.024"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="2.048"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="4.096"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="8.192"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="+Inf"}
etcd_disk_wal_fsync_duration_seconds_sum
etcd_disk_wal_fsync_duration_seconds_count
# name: "etcd_grpc_proxy_cache_hits_total"
# description: "Total number of cache hits"
# type: "gauge"
etcd_grpc_proxy_cache_hits_total
# name: "etcd_grpc_proxy_cache_misses_total"
# description: "Total number of cache misses"
# type: "gauge"
etcd_grpc_proxy_cache_misses_total
# name: "etcd_grpc_proxy_events_coalescing_total"
# description: "Total number of events coalescing"
# type: "counter"
etcd_grpc_proxy_events_coalescing_total
# name: "etcd_grpc_proxy_watchers_coalescing_total"
# description: "Total number of current watchers coalescing"
# type: "gauge"
etcd_grpc_proxy_watchers_coalescing_total
# name: "etcd_network_client_grpc_received_bytes_total"
# description: "The total number of bytes received from grpc clients."
# type: "counter"
etcd_network_client_grpc_received_bytes_total
# name: "etcd_network_client_grpc_sent_bytes_total"
# description: "The total number of bytes sent to grpc clients."
# type: "counter"
etcd_network_client_grpc_sent_bytes_total
# name: "etcd_network_peer_received_bytes_total"
# description: "The total number of bytes received from peers."
# type: "counter"
etcd_network_peer_received_bytes_total{From="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_round_trip_time_seconds"
# description: "Round-Trip-Time histogram between peers."
# type: "histogram"
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="+Inf"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0001"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0002"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0004"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0008"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0016"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0032"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0064"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0128"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0256"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0512"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.1024"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.2048"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.4096"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.8192"}
etcd_network_peer_round_trip_time_seconds_count{To="REMOTE_PEER_NODE_ID"}
etcd_network_peer_round_trip_time_seconds_sum{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_sent_bytes_total"
# description: "The total number of bytes sent to peers."
# type: "counter"
etcd_network_peer_sent_bytes_total{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_server_has_leader"
# description: "Whether or not a leader exists. 1 is existence, 0 is not."
# type: "gauge"
etcd_server_has_leader
# name: "etcd_server_leader_changes_seen_total"
# description: "The number of leader changes seen."
# type: "counter"
etcd_server_leader_changes_seen_total
# name: "etcd_server_proposals_applied_total"
# description: "The total number of consensus proposals applied."
# type: "gauge"
etcd_server_proposals_applied_total
# name: "etcd_server_proposals_committed_total"
# description: "The total number of consensus proposals committed."
# type: "gauge"
etcd_server_proposals_committed_total
# name: "etcd_server_proposals_failed_total"
# description: "The total number of failed proposals seen."
# type: "counter"
etcd_server_proposals_failed_total
# name: "etcd_server_proposals_pending"
# description: "The current number of pending proposals to commit."
# type: "gauge"
etcd_server_proposals_pending
# name: "go_gc_duration_seconds"
# description: "A summary of the GC invocation durations."
# type: "summary"
go_gc_duration_seconds{quantile="0"}
go_gc_duration_seconds{quantile="0.25"}
go_gc_duration_seconds{quantile="0.5"}
go_gc_duration_seconds{quantile="0.75"}
go_gc_duration_seconds{quantile="1"}
go_gc_duration_seconds_sum
go_gc_duration_seconds_count
# name: "go_goroutines"
# description: "Number of goroutines that currently exist."
# type: "gauge"
go_goroutines
# name: "go_memstats_alloc_bytes"
# description: "Number of bytes allocated and still in use."
# type: "gauge"
go_memstats_alloc_bytes
# name: "go_memstats_alloc_bytes_total"
# description: "Total number of bytes allocated, even if freed."
# type: "counter"
go_memstats_alloc_bytes_total
# name: "go_memstats_buck_hash_sys_bytes"
# description: "Number of bytes used by the profiling bucket hash table."
# type: "gauge"
go_memstats_buck_hash_sys_bytes
# name: "go_memstats_frees_total"
# description: "Total number of frees."
# type: "counter"
go_memstats_frees_total
# name: "go_memstats_gc_sys_bytes"
# description: "Number of bytes used for garbage collection system metadata."
# type: "gauge"
go_memstats_gc_sys_bytes
# name: "go_memstats_heap_alloc_bytes"
# description: "Number of heap bytes allocated and still in use."
# type: "gauge"
go_memstats_heap_alloc_bytes
# name: "go_memstats_heap_idle_bytes"
# description: "Number of heap bytes waiting to be used."
# type: "gauge"
go_memstats_heap_idle_bytes
# name: "go_memstats_heap_inuse_bytes"
# description: "Number of heap bytes that are in use."
# type: "gauge"
go_memstats_heap_inuse_bytes
# name: "go_memstats_heap_objects"
# description: "Number of allocated objects."
# type: "gauge"
go_memstats_heap_objects
# name: "go_memstats_heap_released_bytes_total"
# description: "Total number of heap bytes released to OS."
# type: "counter"
go_memstats_heap_released_bytes_total
# name: "go_memstats_heap_sys_bytes"
# description: "Number of heap bytes obtained from system."
# type: "gauge"
go_memstats_heap_sys_bytes
# name: "go_memstats_last_gc_time_seconds"
# description: "Number of seconds since 1970 of last garbage collection."
# type: "gauge"
go_memstats_last_gc_time_seconds
# name: "go_memstats_lookups_total"
# description: "Total number of pointer lookups."
# type: "counter"
go_memstats_lookups_total
# name: "go_memstats_mallocs_total"
# description: "Total number of mallocs."
# type: "counter"
go_memstats_mallocs_total
# name: "go_memstats_mcache_inuse_bytes"
# description: "Number of bytes in use by mcache structures."
# type: "gauge"
go_memstats_mcache_inuse_bytes
# name: "go_memstats_mcache_sys_bytes"
# description: "Number of bytes used for mcache structures obtained from system."
# type: "gauge"
go_memstats_mcache_sys_bytes
# name: "go_memstats_mspan_inuse_bytes"
# description: "Number of bytes in use by mspan structures."
# type: "gauge"
go_memstats_mspan_inuse_bytes
# name: "go_memstats_mspan_sys_bytes"
# description: "Number of bytes used for mspan structures obtained from system."
# type: "gauge"
go_memstats_mspan_sys_bytes
# name: "go_memstats_next_gc_bytes"
# description: "Number of heap bytes when next garbage collection will take place."
# type: "gauge"
go_memstats_next_gc_bytes
# name: "go_memstats_other_sys_bytes"
# description: "Number of bytes used for other system allocations."
# type: "gauge"
go_memstats_other_sys_bytes
# name: "go_memstats_stack_inuse_bytes"
# description: "Number of bytes in use by the stack allocator."
# type: "gauge"
go_memstats_stack_inuse_bytes
# name: "go_memstats_stack_sys_bytes"
# description: "Number of bytes obtained from system for stack allocator."
# type: "gauge"
go_memstats_stack_sys_bytes
# name: "go_memstats_sys_bytes"
# description: "Number of bytes obtained by system. Sum of all system allocations."
# type: "gauge"
go_memstats_sys_bytes
# name: "grpc_server_handled_total"
# description: "Total number of RPCs completed on the server, regardless of success or failure."
# type: "counter"
# gRPC codes:
# - "OK"
# - "Unavailable"
grpc_server_handled_total{grpc_code="CODE",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_received_total"
# description: "Total number of RPC stream messages received on the server."
# type: "counter"
grpc_server_msg_received_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_sent_total"
# description: "Total number of gRPC stream messages sent by the server."
# type: "counter"
grpc_server_msg_sent_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_started_total"
# description: "Total number of RPCs started on the server."
# type: "counter"
grpc_server_started_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "http_request_duration_microseconds"
# description: "The HTTP request latencies in microseconds."
# type: "summary"
http_request_duration_microseconds{handler="prometheus",quantile="0.5"}
http_request_duration_microseconds{handler="prometheus",quantile="0.9"}
http_request_duration_microseconds{handler="prometheus",quantile="0.99"}
http_request_duration_microseconds_sum{handler="prometheus"}
http_request_duration_microseconds_count{handler="prometheus"}
# name: "http_request_size_bytes"
# description: "The HTTP request sizes in bytes."
# type: "summary"
http_request_size_bytes{handler="prometheus",quantile="0.5"}
http_request_size_bytes{handler="prometheus",quantile="0.9"}
http_request_size_bytes{handler="prometheus",quantile="0.99"}
http_request_size_bytes_sum{handler="prometheus"}
http_request_size_bytes_count{handler="prometheus"}
# name: "http_response_size_bytes"
# description: "The HTTP response sizes in bytes."
# type: "summary"
http_response_size_bytes{handler="prometheus",quantile="0.5"}
http_response_size_bytes{handler="prometheus",quantile="0.9"}
http_response_size_bytes{handler="prometheus",quantile="0.99"}
http_response_size_bytes_sum{handler="prometheus"}
http_response_size_bytes_count{handler="prometheus"}

View File

@ -0,0 +1,511 @@
# server version: unknown
# name: "etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of db compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2048"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4096"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_compaction_total_duration_milliseconds"
# description: "Bucketed histogram of db compaction total duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="100"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="1600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="3200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="6400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="12800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="25600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="51200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="102400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="204800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="409600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="819200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_total_size_in_bytes"
# description: "Total size of the underlying database in bytes."
# type: "gauge"
etcd_debugging_mvcc_db_total_size_in_bytes
# name: "etcd_debugging_mvcc_delete_total"
# description: "Total number of deletes seen by this member."
# type: "counter"
etcd_debugging_mvcc_delete_total
# name: "etcd_debugging_mvcc_events_total"
# description: "Total number of events sent by this member."
# type: "counter"
etcd_debugging_mvcc_events_total
# name: "etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of index compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="0.5"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_keys_total"
# description: "Total number of keys."
# type: "gauge"
etcd_debugging_mvcc_keys_total
# name: "etcd_debugging_mvcc_pending_events_total"
# description: "Total number of pending events to be sent."
# type: "gauge"
etcd_debugging_mvcc_pending_events_total
# name: "etcd_debugging_mvcc_put_total"
# description: "Total number of puts seen by this member."
# type: "counter"
etcd_debugging_mvcc_put_total
# name: "etcd_debugging_mvcc_range_total"
# description: "Total number of ranges seen by this member."
# type: "counter"
etcd_debugging_mvcc_range_total
# name: "etcd_debugging_mvcc_slow_watcher_total"
# description: "Total number of unsynced slow watchers."
# type: "gauge"
etcd_debugging_mvcc_slow_watcher_total
# name: "etcd_debugging_mvcc_txn_total"
# description: "Total number of txns seen by this member."
# type: "counter"
etcd_debugging_mvcc_txn_total
# name: "etcd_debugging_mvcc_watch_stream_total"
# description: "Total number of watch streams."
# type: "gauge"
etcd_debugging_mvcc_watch_stream_total
# name: "etcd_debugging_mvcc_watcher_total"
# description: "Total number of watchers."
# type: "gauge"
etcd_debugging_mvcc_watcher_total
# name: "etcd_debugging_snap_save_marshalling_duration_seconds"
# description: "The marshalling cost distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_marshalling_duration_seconds_sum
etcd_debugging_snap_save_marshalling_duration_seconds_count
# name: "etcd_debugging_snap_save_total_duration_seconds"
# description: "The total latency distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_total_duration_seconds_sum
etcd_debugging_snap_save_total_duration_seconds_count
# name: "etcd_debugging_store_expires_total"
# description: "Total number of expired keys."
# type: "counter"
etcd_debugging_store_expires_total
# name: "etcd_debugging_store_reads_total"
# description: "Total number of reads action by (get/getRecursive), local to this member."
# type: "counter"
etcd_debugging_store_reads_total{action="getRecursive"}
# name: "etcd_debugging_store_watch_requests_total"
# description: "Total number of incoming watch requests (new or reestablished)."
# type: "counter"
etcd_debugging_store_watch_requests_total
# name: "etcd_debugging_store_watchers"
# description: "Count of currently active watchers."
# type: "gauge"
etcd_debugging_store_watchers
# name: "etcd_debugging_store_writes_total"
# description: "Total number of writes (e.g. set/compareAndDelete) seen by this member."
# type: "counter"
etcd_debugging_store_writes_total{action="create"}
etcd_debugging_store_writes_total{action="set"}
# name: "etcd_disk_backend_commit_duration_seconds"
# description: "The latency distributions of commit called by backend."
# type: "histogram"
etcd_disk_backend_commit_duration_seconds_bucket{le="0.001"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.002"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.004"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.008"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.016"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.032"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.064"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.128"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.256"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.512"}
etcd_disk_backend_commit_duration_seconds_bucket{le="1.024"}
etcd_disk_backend_commit_duration_seconds_bucket{le="2.048"}
etcd_disk_backend_commit_duration_seconds_bucket{le="4.096"}
etcd_disk_backend_commit_duration_seconds_bucket{le="8.192"}
etcd_disk_backend_commit_duration_seconds_bucket{le="+Inf"}
etcd_disk_backend_commit_duration_seconds_sum
etcd_disk_backend_commit_duration_seconds_count
# name: "etcd_disk_wal_fsync_duration_seconds"
# description: "The latency distributions of fsync called by wal."
# type: "histogram"
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.001"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.002"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.004"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.008"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.016"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.032"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.064"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.128"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.256"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.512"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="1.024"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="2.048"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="4.096"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="8.192"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="+Inf"}
etcd_disk_wal_fsync_duration_seconds_sum
etcd_disk_wal_fsync_duration_seconds_count
# name: "etcd_grpc_proxy_cache_hits_total"
# description: "Total number of cache hits"
# type: "gauge"
etcd_grpc_proxy_cache_hits_total
# name: "etcd_grpc_proxy_cache_misses_total"
# description: "Total number of cache misses"
# type: "gauge"
etcd_grpc_proxy_cache_misses_total
# name: "etcd_grpc_proxy_events_coalescing_total"
# description: "Total number of events coalescing"
# type: "counter"
etcd_grpc_proxy_events_coalescing_total
# name: "etcd_grpc_proxy_watchers_coalescing_total"
# description: "Total number of current watchers coalescing"
# type: "gauge"
etcd_grpc_proxy_watchers_coalescing_total
# name: "etcd_network_client_grpc_received_bytes_total"
# description: "The total number of bytes received from grpc clients."
# type: "counter"
etcd_network_client_grpc_received_bytes_total
# name: "etcd_network_client_grpc_sent_bytes_total"
# description: "The total number of bytes sent to grpc clients."
# type: "counter"
etcd_network_client_grpc_sent_bytes_total
# name: "etcd_network_peer_received_bytes_total"
# description: "The total number of bytes received from peers."
# type: "counter"
etcd_network_peer_received_bytes_total{From="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_round_trip_time_seconds"
# description: "Round-Trip-Time histogram between peers."
# type: "histogram"
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="+Inf"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0001"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0002"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0004"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0008"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0016"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0032"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0064"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0128"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0256"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0512"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.1024"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.2048"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.4096"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.8192"}
etcd_network_peer_round_trip_time_seconds_count{To="REMOTE_PEER_NODE_ID"}
etcd_network_peer_round_trip_time_seconds_sum{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_sent_bytes_total"
# description: "The total number of bytes sent to peers."
# type: "counter"
etcd_network_peer_sent_bytes_total{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_server_has_leader"
# description: "Whether or not a leader exists. 1 is existence, 0 is not."
# type: "gauge"
etcd_server_has_leader
# name: "etcd_server_leader_changes_seen_total"
# description: "The number of leader changes seen."
# type: "counter"
etcd_server_leader_changes_seen_total
# name: "etcd_server_proposals_applied_total"
# description: "The total number of consensus proposals applied."
# type: "gauge"
etcd_server_proposals_applied_total
# name: "etcd_server_proposals_committed_total"
# description: "The total number of consensus proposals committed."
# type: "gauge"
etcd_server_proposals_committed_total
# name: "etcd_server_proposals_failed_total"
# description: "The total number of failed proposals seen."
# type: "counter"
etcd_server_proposals_failed_total
# name: "etcd_server_proposals_pending"
# description: "The current number of pending proposals to commit."
# type: "gauge"
etcd_server_proposals_pending
# name: "go_gc_duration_seconds"
# description: "A summary of the GC invocation durations."
# type: "summary"
go_gc_duration_seconds{quantile="0"}
go_gc_duration_seconds{quantile="0.25"}
go_gc_duration_seconds{quantile="0.5"}
go_gc_duration_seconds{quantile="0.75"}
go_gc_duration_seconds{quantile="1"}
go_gc_duration_seconds_sum
go_gc_duration_seconds_count
# name: "go_goroutines"
# description: "Number of goroutines that currently exist."
# type: "gauge"
go_goroutines
# name: "go_memstats_alloc_bytes"
# description: "Number of bytes allocated and still in use."
# type: "gauge"
go_memstats_alloc_bytes
# name: "go_memstats_alloc_bytes_total"
# description: "Total number of bytes allocated, even if freed."
# type: "counter"
go_memstats_alloc_bytes_total
# name: "go_memstats_buck_hash_sys_bytes"
# description: "Number of bytes used by the profiling bucket hash table."
# type: "gauge"
go_memstats_buck_hash_sys_bytes
# name: "go_memstats_frees_total"
# description: "Total number of frees."
# type: "counter"
go_memstats_frees_total
# name: "go_memstats_gc_sys_bytes"
# description: "Number of bytes used for garbage collection system metadata."
# type: "gauge"
go_memstats_gc_sys_bytes
# name: "go_memstats_heap_alloc_bytes"
# description: "Number of heap bytes allocated and still in use."
# type: "gauge"
go_memstats_heap_alloc_bytes
# name: "go_memstats_heap_idle_bytes"
# description: "Number of heap bytes waiting to be used."
# type: "gauge"
go_memstats_heap_idle_bytes
# name: "go_memstats_heap_inuse_bytes"
# description: "Number of heap bytes that are in use."
# type: "gauge"
go_memstats_heap_inuse_bytes
# name: "go_memstats_heap_objects"
# description: "Number of allocated objects."
# type: "gauge"
go_memstats_heap_objects
# name: "go_memstats_heap_released_bytes_total"
# description: "Total number of heap bytes released to OS."
# type: "counter"
go_memstats_heap_released_bytes_total
# name: "go_memstats_heap_sys_bytes"
# description: "Number of heap bytes obtained from system."
# type: "gauge"
go_memstats_heap_sys_bytes
# name: "go_memstats_last_gc_time_seconds"
# description: "Number of seconds since 1970 of last garbage collection."
# type: "gauge"
go_memstats_last_gc_time_seconds
# name: "go_memstats_lookups_total"
# description: "Total number of pointer lookups."
# type: "counter"
go_memstats_lookups_total
# name: "go_memstats_mallocs_total"
# description: "Total number of mallocs."
# type: "counter"
go_memstats_mallocs_total
# name: "go_memstats_mcache_inuse_bytes"
# description: "Number of bytes in use by mcache structures."
# type: "gauge"
go_memstats_mcache_inuse_bytes
# name: "go_memstats_mcache_sys_bytes"
# description: "Number of bytes used for mcache structures obtained from system."
# type: "gauge"
go_memstats_mcache_sys_bytes
# name: "go_memstats_mspan_inuse_bytes"
# description: "Number of bytes in use by mspan structures."
# type: "gauge"
go_memstats_mspan_inuse_bytes
# name: "go_memstats_mspan_sys_bytes"
# description: "Number of bytes used for mspan structures obtained from system."
# type: "gauge"
go_memstats_mspan_sys_bytes
# name: "go_memstats_next_gc_bytes"
# description: "Number of heap bytes when next garbage collection will take place."
# type: "gauge"
go_memstats_next_gc_bytes
# name: "go_memstats_other_sys_bytes"
# description: "Number of bytes used for other system allocations."
# type: "gauge"
go_memstats_other_sys_bytes
# name: "go_memstats_stack_inuse_bytes"
# description: "Number of bytes in use by the stack allocator."
# type: "gauge"
go_memstats_stack_inuse_bytes
# name: "go_memstats_stack_sys_bytes"
# description: "Number of bytes obtained from system for stack allocator."
# type: "gauge"
go_memstats_stack_sys_bytes
# name: "go_memstats_sys_bytes"
# description: "Number of bytes obtained by system. Sum of all system allocations."
# type: "gauge"
go_memstats_sys_bytes
# name: "grpc_server_handled_total"
# description: "Total number of RPCs completed on the server, regardless of success or failure."
# type: "counter"
# gRPC codes:
# - "Canceled"
# - "OK"
grpc_server_handled_total{grpc_code="CODE",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_received_total"
# description: "Total number of RPC stream messages received on the server."
# type: "counter"
grpc_server_msg_received_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_sent_total"
# description: "Total number of gRPC stream messages sent by the server."
# type: "counter"
grpc_server_msg_sent_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_started_total"
# description: "Total number of RPCs started on the server."
# type: "counter"
grpc_server_started_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "http_request_duration_microseconds"
# description: "The HTTP request latencies in microseconds."
# type: "summary"
http_request_duration_microseconds{handler="prometheus",quantile="0.5"}
http_request_duration_microseconds{handler="prometheus",quantile="0.9"}
http_request_duration_microseconds{handler="prometheus",quantile="0.99"}
http_request_duration_microseconds_sum{handler="prometheus"}
http_request_duration_microseconds_count{handler="prometheus"}
# name: "http_request_size_bytes"
# description: "The HTTP request sizes in bytes."
# type: "summary"
http_request_size_bytes{handler="prometheus",quantile="0.5"}
http_request_size_bytes{handler="prometheus",quantile="0.9"}
http_request_size_bytes{handler="prometheus",quantile="0.99"}
http_request_size_bytes_sum{handler="prometheus"}
http_request_size_bytes_count{handler="prometheus"}
# name: "http_response_size_bytes"
# description: "The HTTP response sizes in bytes."
# type: "summary"
http_response_size_bytes{handler="prometheus",quantile="0.5"}
http_response_size_bytes{handler="prometheus",quantile="0.9"}
http_response_size_bytes{handler="prometheus",quantile="0.99"}
http_response_size_bytes_sum{handler="prometheus"}
http_response_size_bytes_count{handler="prometheus"}

View File

@ -0,0 +1,511 @@
# server version: unknown
# name: "etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of db compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2048"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4096"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_compaction_total_duration_milliseconds"
# description: "Bucketed histogram of db compaction total duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="100"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="1600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="3200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="6400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="12800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="25600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="51200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="102400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="204800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="409600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="819200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_total_size_in_bytes"
# description: "Total size of the underlying database in bytes."
# type: "gauge"
etcd_debugging_mvcc_db_total_size_in_bytes
# name: "etcd_debugging_mvcc_delete_total"
# description: "Total number of deletes seen by this member."
# type: "counter"
etcd_debugging_mvcc_delete_total
# name: "etcd_debugging_mvcc_events_total"
# description: "Total number of events sent by this member."
# type: "counter"
etcd_debugging_mvcc_events_total
# name: "etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of index compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="0.5"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_keys_total"
# description: "Total number of keys."
# type: "gauge"
etcd_debugging_mvcc_keys_total
# name: "etcd_debugging_mvcc_pending_events_total"
# description: "Total number of pending events to be sent."
# type: "gauge"
etcd_debugging_mvcc_pending_events_total
# name: "etcd_debugging_mvcc_put_total"
# description: "Total number of puts seen by this member."
# type: "counter"
etcd_debugging_mvcc_put_total
# name: "etcd_debugging_mvcc_range_total"
# description: "Total number of ranges seen by this member."
# type: "counter"
etcd_debugging_mvcc_range_total
# name: "etcd_debugging_mvcc_slow_watcher_total"
# description: "Total number of unsynced slow watchers."
# type: "gauge"
etcd_debugging_mvcc_slow_watcher_total
# name: "etcd_debugging_mvcc_txn_total"
# description: "Total number of txns seen by this member."
# type: "counter"
etcd_debugging_mvcc_txn_total
# name: "etcd_debugging_mvcc_watch_stream_total"
# description: "Total number of watch streams."
# type: "gauge"
etcd_debugging_mvcc_watch_stream_total
# name: "etcd_debugging_mvcc_watcher_total"
# description: "Total number of watchers."
# type: "gauge"
etcd_debugging_mvcc_watcher_total
# name: "etcd_debugging_snap_save_marshalling_duration_seconds"
# description: "The marshalling cost distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_marshalling_duration_seconds_sum
etcd_debugging_snap_save_marshalling_duration_seconds_count
# name: "etcd_debugging_snap_save_total_duration_seconds"
# description: "The total latency distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_total_duration_seconds_sum
etcd_debugging_snap_save_total_duration_seconds_count
# name: "etcd_debugging_store_expires_total"
# description: "Total number of expired keys."
# type: "counter"
etcd_debugging_store_expires_total
# name: "etcd_debugging_store_reads_total"
# description: "Total number of reads action by (get/getRecursive), local to this member."
# type: "counter"
etcd_debugging_store_reads_total{action="getRecursive"}
# name: "etcd_debugging_store_watch_requests_total"
# description: "Total number of incoming watch requests (new or reestablished)."
# type: "counter"
etcd_debugging_store_watch_requests_total
# name: "etcd_debugging_store_watchers"
# description: "Count of currently active watchers."
# type: "gauge"
etcd_debugging_store_watchers
# name: "etcd_debugging_store_writes_total"
# description: "Total number of writes (e.g. set/compareAndDelete) seen by this member."
# type: "counter"
etcd_debugging_store_writes_total{action="create"}
etcd_debugging_store_writes_total{action="set"}
# name: "etcd_disk_backend_commit_duration_seconds"
# description: "The latency distributions of commit called by backend."
# type: "histogram"
etcd_disk_backend_commit_duration_seconds_bucket{le="0.001"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.002"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.004"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.008"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.016"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.032"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.064"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.128"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.256"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.512"}
etcd_disk_backend_commit_duration_seconds_bucket{le="1.024"}
etcd_disk_backend_commit_duration_seconds_bucket{le="2.048"}
etcd_disk_backend_commit_duration_seconds_bucket{le="4.096"}
etcd_disk_backend_commit_duration_seconds_bucket{le="8.192"}
etcd_disk_backend_commit_duration_seconds_bucket{le="+Inf"}
etcd_disk_backend_commit_duration_seconds_sum
etcd_disk_backend_commit_duration_seconds_count
# name: "etcd_disk_wal_fsync_duration_seconds"
# description: "The latency distributions of fsync called by wal."
# type: "histogram"
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.001"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.002"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.004"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.008"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.016"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.032"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.064"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.128"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.256"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.512"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="1.024"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="2.048"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="4.096"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="8.192"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="+Inf"}
etcd_disk_wal_fsync_duration_seconds_sum
etcd_disk_wal_fsync_duration_seconds_count
# name: "etcd_grpc_proxy_cache_hits_total"
# description: "Total number of cache hits"
# type: "gauge"
etcd_grpc_proxy_cache_hits_total
# name: "etcd_grpc_proxy_cache_misses_total"
# description: "Total number of cache misses"
# type: "gauge"
etcd_grpc_proxy_cache_misses_total
# name: "etcd_grpc_proxy_events_coalescing_total"
# description: "Total number of events coalescing"
# type: "counter"
etcd_grpc_proxy_events_coalescing_total
# name: "etcd_grpc_proxy_watchers_coalescing_total"
# description: "Total number of current watchers coalescing"
# type: "gauge"
etcd_grpc_proxy_watchers_coalescing_total
# name: "etcd_network_client_grpc_received_bytes_total"
# description: "The total number of bytes received from grpc clients."
# type: "counter"
etcd_network_client_grpc_received_bytes_total
# name: "etcd_network_client_grpc_sent_bytes_total"
# description: "The total number of bytes sent to grpc clients."
# type: "counter"
etcd_network_client_grpc_sent_bytes_total
# name: "etcd_network_peer_received_bytes_total"
# description: "The total number of bytes received from peers."
# type: "counter"
etcd_network_peer_received_bytes_total{From="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_round_trip_time_seconds"
# description: "Round-Trip-Time histogram between peers."
# type: "histogram"
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="+Inf"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0001"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0002"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0004"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0008"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0016"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0032"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0064"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0128"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0256"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0512"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.1024"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.2048"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.4096"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.8192"}
etcd_network_peer_round_trip_time_seconds_count{To="REMOTE_PEER_NODE_ID"}
etcd_network_peer_round_trip_time_seconds_sum{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_sent_bytes_total"
# description: "The total number of bytes sent to peers."
# type: "counter"
etcd_network_peer_sent_bytes_total{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_server_has_leader"
# description: "Whether or not a leader exists. 1 is existence, 0 is not."
# type: "gauge"
etcd_server_has_leader
# name: "etcd_server_leader_changes_seen_total"
# description: "The number of leader changes seen."
# type: "counter"
etcd_server_leader_changes_seen_total
# name: "etcd_server_proposals_applied_total"
# description: "The total number of consensus proposals applied."
# type: "gauge"
etcd_server_proposals_applied_total
# name: "etcd_server_proposals_committed_total"
# description: "The total number of consensus proposals committed."
# type: "gauge"
etcd_server_proposals_committed_total
# name: "etcd_server_proposals_failed_total"
# description: "The total number of failed proposals seen."
# type: "counter"
etcd_server_proposals_failed_total
# name: "etcd_server_proposals_pending"
# description: "The current number of pending proposals to commit."
# type: "gauge"
etcd_server_proposals_pending
# name: "go_gc_duration_seconds"
# description: "A summary of the GC invocation durations."
# type: "summary"
go_gc_duration_seconds{quantile="0"}
go_gc_duration_seconds{quantile="0.25"}
go_gc_duration_seconds{quantile="0.5"}
go_gc_duration_seconds{quantile="0.75"}
go_gc_duration_seconds{quantile="1"}
go_gc_duration_seconds_sum
go_gc_duration_seconds_count
# name: "go_goroutines"
# description: "Number of goroutines that currently exist."
# type: "gauge"
go_goroutines
# name: "go_memstats_alloc_bytes"
# description: "Number of bytes allocated and still in use."
# type: "gauge"
go_memstats_alloc_bytes
# name: "go_memstats_alloc_bytes_total"
# description: "Total number of bytes allocated, even if freed."
# type: "counter"
go_memstats_alloc_bytes_total
# name: "go_memstats_buck_hash_sys_bytes"
# description: "Number of bytes used by the profiling bucket hash table."
# type: "gauge"
go_memstats_buck_hash_sys_bytes
# name: "go_memstats_frees_total"
# description: "Total number of frees."
# type: "counter"
go_memstats_frees_total
# name: "go_memstats_gc_sys_bytes"
# description: "Number of bytes used for garbage collection system metadata."
# type: "gauge"
go_memstats_gc_sys_bytes
# name: "go_memstats_heap_alloc_bytes"
# description: "Number of heap bytes allocated and still in use."
# type: "gauge"
go_memstats_heap_alloc_bytes
# name: "go_memstats_heap_idle_bytes"
# description: "Number of heap bytes waiting to be used."
# type: "gauge"
go_memstats_heap_idle_bytes
# name: "go_memstats_heap_inuse_bytes"
# description: "Number of heap bytes that are in use."
# type: "gauge"
go_memstats_heap_inuse_bytes
# name: "go_memstats_heap_objects"
# description: "Number of allocated objects."
# type: "gauge"
go_memstats_heap_objects
# name: "go_memstats_heap_released_bytes_total"
# description: "Total number of heap bytes released to OS."
# type: "counter"
go_memstats_heap_released_bytes_total
# name: "go_memstats_heap_sys_bytes"
# description: "Number of heap bytes obtained from system."
# type: "gauge"
go_memstats_heap_sys_bytes
# name: "go_memstats_last_gc_time_seconds"
# description: "Number of seconds since 1970 of last garbage collection."
# type: "gauge"
go_memstats_last_gc_time_seconds
# name: "go_memstats_lookups_total"
# description: "Total number of pointer lookups."
# type: "counter"
go_memstats_lookups_total
# name: "go_memstats_mallocs_total"
# description: "Total number of mallocs."
# type: "counter"
go_memstats_mallocs_total
# name: "go_memstats_mcache_inuse_bytes"
# description: "Number of bytes in use by mcache structures."
# type: "gauge"
go_memstats_mcache_inuse_bytes
# name: "go_memstats_mcache_sys_bytes"
# description: "Number of bytes used for mcache structures obtained from system."
# type: "gauge"
go_memstats_mcache_sys_bytes
# name: "go_memstats_mspan_inuse_bytes"
# description: "Number of bytes in use by mspan structures."
# type: "gauge"
go_memstats_mspan_inuse_bytes
# name: "go_memstats_mspan_sys_bytes"
# description: "Number of bytes used for mspan structures obtained from system."
# type: "gauge"
go_memstats_mspan_sys_bytes
# name: "go_memstats_next_gc_bytes"
# description: "Number of heap bytes when next garbage collection will take place."
# type: "gauge"
go_memstats_next_gc_bytes
# name: "go_memstats_other_sys_bytes"
# description: "Number of bytes used for other system allocations."
# type: "gauge"
go_memstats_other_sys_bytes
# name: "go_memstats_stack_inuse_bytes"
# description: "Number of bytes in use by the stack allocator."
# type: "gauge"
go_memstats_stack_inuse_bytes
# name: "go_memstats_stack_sys_bytes"
# description: "Number of bytes obtained from system for stack allocator."
# type: "gauge"
go_memstats_stack_sys_bytes
# name: "go_memstats_sys_bytes"
# description: "Number of bytes obtained by system. Sum of all system allocations."
# type: "gauge"
go_memstats_sys_bytes
# name: "grpc_server_handled_total"
# description: "Total number of RPCs completed on the server, regardless of success or failure."
# type: "counter"
# gRPC codes:
# - "OK"
# - "Unavailable"
grpc_server_handled_total{grpc_code="CODE",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_received_total"
# description: "Total number of RPC stream messages received on the server."
# type: "counter"
grpc_server_msg_received_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_sent_total"
# description: "Total number of gRPC stream messages sent by the server."
# type: "counter"
grpc_server_msg_sent_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_started_total"
# description: "Total number of RPCs started on the server."
# type: "counter"
grpc_server_started_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "http_request_duration_microseconds"
# description: "The HTTP request latencies in microseconds."
# type: "summary"
http_request_duration_microseconds{handler="prometheus",quantile="0.5"}
http_request_duration_microseconds{handler="prometheus",quantile="0.9"}
http_request_duration_microseconds{handler="prometheus",quantile="0.99"}
http_request_duration_microseconds_sum{handler="prometheus"}
http_request_duration_microseconds_count{handler="prometheus"}
# name: "http_request_size_bytes"
# description: "The HTTP request sizes in bytes."
# type: "summary"
http_request_size_bytes{handler="prometheus",quantile="0.5"}
http_request_size_bytes{handler="prometheus",quantile="0.9"}
http_request_size_bytes{handler="prometheus",quantile="0.99"}
http_request_size_bytes_sum{handler="prometheus"}
http_request_size_bytes_count{handler="prometheus"}
# name: "http_response_size_bytes"
# description: "The HTTP response sizes in bytes."
# type: "summary"
http_response_size_bytes{handler="prometheus",quantile="0.5"}
http_response_size_bytes{handler="prometheus",quantile="0.9"}
http_response_size_bytes{handler="prometheus",quantile="0.99"}
http_response_size_bytes_sum{handler="prometheus"}
http_response_size_bytes_count{handler="prometheus"}

View File

@ -0,0 +1,511 @@
# server version: unknown
# name: "etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of db compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2048"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4096"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_compaction_total_duration_milliseconds"
# description: "Bucketed histogram of db compaction total duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="100"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="1600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="3200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="6400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="12800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="25600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="51200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="102400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="204800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="409600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="819200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_total_size_in_bytes"
# description: "Total size of the underlying database in bytes."
# type: "gauge"
etcd_debugging_mvcc_db_total_size_in_bytes
# name: "etcd_debugging_mvcc_delete_total"
# description: "Total number of deletes seen by this member."
# type: "counter"
etcd_debugging_mvcc_delete_total
# name: "etcd_debugging_mvcc_events_total"
# description: "Total number of events sent by this member."
# type: "counter"
etcd_debugging_mvcc_events_total
# name: "etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of index compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="0.5"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_keys_total"
# description: "Total number of keys."
# type: "gauge"
etcd_debugging_mvcc_keys_total
# name: "etcd_debugging_mvcc_pending_events_total"
# description: "Total number of pending events to be sent."
# type: "gauge"
etcd_debugging_mvcc_pending_events_total
# name: "etcd_debugging_mvcc_put_total"
# description: "Total number of puts seen by this member."
# type: "counter"
etcd_debugging_mvcc_put_total
# name: "etcd_debugging_mvcc_range_total"
# description: "Total number of ranges seen by this member."
# type: "counter"
etcd_debugging_mvcc_range_total
# name: "etcd_debugging_mvcc_slow_watcher_total"
# description: "Total number of unsynced slow watchers."
# type: "gauge"
etcd_debugging_mvcc_slow_watcher_total
# name: "etcd_debugging_mvcc_txn_total"
# description: "Total number of txns seen by this member."
# type: "counter"
etcd_debugging_mvcc_txn_total
# name: "etcd_debugging_mvcc_watch_stream_total"
# description: "Total number of watch streams."
# type: "gauge"
etcd_debugging_mvcc_watch_stream_total
# name: "etcd_debugging_mvcc_watcher_total"
# description: "Total number of watchers."
# type: "gauge"
etcd_debugging_mvcc_watcher_total
# name: "etcd_debugging_snap_save_marshalling_duration_seconds"
# description: "The marshalling cost distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_marshalling_duration_seconds_sum
etcd_debugging_snap_save_marshalling_duration_seconds_count
# name: "etcd_debugging_snap_save_total_duration_seconds"
# description: "The total latency distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_total_duration_seconds_sum
etcd_debugging_snap_save_total_duration_seconds_count
# name: "etcd_debugging_store_expires_total"
# description: "Total number of expired keys."
# type: "counter"
etcd_debugging_store_expires_total
# name: "etcd_debugging_store_reads_total"
# description: "Total number of reads action by (get/getRecursive), local to this member."
# type: "counter"
etcd_debugging_store_reads_total{action="getRecursive"}
# name: "etcd_debugging_store_watch_requests_total"
# description: "Total number of incoming watch requests (new or reestablished)."
# type: "counter"
etcd_debugging_store_watch_requests_total
# name: "etcd_debugging_store_watchers"
# description: "Count of currently active watchers."
# type: "gauge"
etcd_debugging_store_watchers
# name: "etcd_debugging_store_writes_total"
# description: "Total number of writes (e.g. set/compareAndDelete) seen by this member."
# type: "counter"
etcd_debugging_store_writes_total{action="create"}
etcd_debugging_store_writes_total{action="set"}
# name: "etcd_disk_backend_commit_duration_seconds"
# description: "The latency distributions of commit called by backend."
# type: "histogram"
etcd_disk_backend_commit_duration_seconds_bucket{le="0.001"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.002"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.004"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.008"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.016"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.032"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.064"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.128"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.256"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.512"}
etcd_disk_backend_commit_duration_seconds_bucket{le="1.024"}
etcd_disk_backend_commit_duration_seconds_bucket{le="2.048"}
etcd_disk_backend_commit_duration_seconds_bucket{le="4.096"}
etcd_disk_backend_commit_duration_seconds_bucket{le="8.192"}
etcd_disk_backend_commit_duration_seconds_bucket{le="+Inf"}
etcd_disk_backend_commit_duration_seconds_sum
etcd_disk_backend_commit_duration_seconds_count
# name: "etcd_disk_wal_fsync_duration_seconds"
# description: "The latency distributions of fsync called by wal."
# type: "histogram"
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.001"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.002"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.004"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.008"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.016"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.032"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.064"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.128"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.256"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.512"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="1.024"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="2.048"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="4.096"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="8.192"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="+Inf"}
etcd_disk_wal_fsync_duration_seconds_sum
etcd_disk_wal_fsync_duration_seconds_count
# name: "etcd_grpc_proxy_cache_hits_total"
# description: "Total number of cache hits"
# type: "gauge"
etcd_grpc_proxy_cache_hits_total
# name: "etcd_grpc_proxy_cache_misses_total"
# description: "Total number of cache misses"
# type: "gauge"
etcd_grpc_proxy_cache_misses_total
# name: "etcd_grpc_proxy_events_coalescing_total"
# description: "Total number of events coalescing"
# type: "counter"
etcd_grpc_proxy_events_coalescing_total
# name: "etcd_grpc_proxy_watchers_coalescing_total"
# description: "Total number of current watchers coalescing"
# type: "gauge"
etcd_grpc_proxy_watchers_coalescing_total
# name: "etcd_network_client_grpc_received_bytes_total"
# description: "The total number of bytes received from grpc clients."
# type: "counter"
etcd_network_client_grpc_received_bytes_total
# name: "etcd_network_client_grpc_sent_bytes_total"
# description: "The total number of bytes sent to grpc clients."
# type: "counter"
etcd_network_client_grpc_sent_bytes_total
# name: "etcd_network_peer_received_bytes_total"
# description: "The total number of bytes received from peers."
# type: "counter"
etcd_network_peer_received_bytes_total{From="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_round_trip_time_seconds"
# description: "Round-Trip-Time histogram between peers."
# type: "histogram"
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="+Inf"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0001"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0002"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0004"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0008"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0016"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0032"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0064"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0128"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0256"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0512"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.1024"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.2048"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.4096"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.8192"}
etcd_network_peer_round_trip_time_seconds_count{To="REMOTE_PEER_NODE_ID"}
etcd_network_peer_round_trip_time_seconds_sum{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_sent_bytes_total"
# description: "The total number of bytes sent to peers."
# type: "counter"
etcd_network_peer_sent_bytes_total{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_server_has_leader"
# description: "Whether or not a leader exists. 1 is existence, 0 is not."
# type: "gauge"
etcd_server_has_leader
# name: "etcd_server_leader_changes_seen_total"
# description: "The number of leader changes seen."
# type: "counter"
etcd_server_leader_changes_seen_total
# name: "etcd_server_proposals_applied_total"
# description: "The total number of consensus proposals applied."
# type: "gauge"
etcd_server_proposals_applied_total
# name: "etcd_server_proposals_committed_total"
# description: "The total number of consensus proposals committed."
# type: "gauge"
etcd_server_proposals_committed_total
# name: "etcd_server_proposals_failed_total"
# description: "The total number of failed proposals seen."
# type: "counter"
etcd_server_proposals_failed_total
# name: "etcd_server_proposals_pending"
# description: "The current number of pending proposals to commit."
# type: "gauge"
etcd_server_proposals_pending
# name: "go_gc_duration_seconds"
# description: "A summary of the GC invocation durations."
# type: "summary"
go_gc_duration_seconds{quantile="0"}
go_gc_duration_seconds{quantile="0.25"}
go_gc_duration_seconds{quantile="0.5"}
go_gc_duration_seconds{quantile="0.75"}
go_gc_duration_seconds{quantile="1"}
go_gc_duration_seconds_sum
go_gc_duration_seconds_count
# name: "go_goroutines"
# description: "Number of goroutines that currently exist."
# type: "gauge"
go_goroutines
# name: "go_memstats_alloc_bytes"
# description: "Number of bytes allocated and still in use."
# type: "gauge"
go_memstats_alloc_bytes
# name: "go_memstats_alloc_bytes_total"
# description: "Total number of bytes allocated, even if freed."
# type: "counter"
go_memstats_alloc_bytes_total
# name: "go_memstats_buck_hash_sys_bytes"
# description: "Number of bytes used by the profiling bucket hash table."
# type: "gauge"
go_memstats_buck_hash_sys_bytes
# name: "go_memstats_frees_total"
# description: "Total number of frees."
# type: "counter"
go_memstats_frees_total
# name: "go_memstats_gc_sys_bytes"
# description: "Number of bytes used for garbage collection system metadata."
# type: "gauge"
go_memstats_gc_sys_bytes
# name: "go_memstats_heap_alloc_bytes"
# description: "Number of heap bytes allocated and still in use."
# type: "gauge"
go_memstats_heap_alloc_bytes
# name: "go_memstats_heap_idle_bytes"
# description: "Number of heap bytes waiting to be used."
# type: "gauge"
go_memstats_heap_idle_bytes
# name: "go_memstats_heap_inuse_bytes"
# description: "Number of heap bytes that are in use."
# type: "gauge"
go_memstats_heap_inuse_bytes
# name: "go_memstats_heap_objects"
# description: "Number of allocated objects."
# type: "gauge"
go_memstats_heap_objects
# name: "go_memstats_heap_released_bytes_total"
# description: "Total number of heap bytes released to OS."
# type: "counter"
go_memstats_heap_released_bytes_total
# name: "go_memstats_heap_sys_bytes"
# description: "Number of heap bytes obtained from system."
# type: "gauge"
go_memstats_heap_sys_bytes
# name: "go_memstats_last_gc_time_seconds"
# description: "Number of seconds since 1970 of last garbage collection."
# type: "gauge"
go_memstats_last_gc_time_seconds
# name: "go_memstats_lookups_total"
# description: "Total number of pointer lookups."
# type: "counter"
go_memstats_lookups_total
# name: "go_memstats_mallocs_total"
# description: "Total number of mallocs."
# type: "counter"
go_memstats_mallocs_total
# name: "go_memstats_mcache_inuse_bytes"
# description: "Number of bytes in use by mcache structures."
# type: "gauge"
go_memstats_mcache_inuse_bytes
# name: "go_memstats_mcache_sys_bytes"
# description: "Number of bytes used for mcache structures obtained from system."
# type: "gauge"
go_memstats_mcache_sys_bytes
# name: "go_memstats_mspan_inuse_bytes"
# description: "Number of bytes in use by mspan structures."
# type: "gauge"
go_memstats_mspan_inuse_bytes
# name: "go_memstats_mspan_sys_bytes"
# description: "Number of bytes used for mspan structures obtained from system."
# type: "gauge"
go_memstats_mspan_sys_bytes
# name: "go_memstats_next_gc_bytes"
# description: "Number of heap bytes when next garbage collection will take place."
# type: "gauge"
go_memstats_next_gc_bytes
# name: "go_memstats_other_sys_bytes"
# description: "Number of bytes used for other system allocations."
# type: "gauge"
go_memstats_other_sys_bytes
# name: "go_memstats_stack_inuse_bytes"
# description: "Number of bytes in use by the stack allocator."
# type: "gauge"
go_memstats_stack_inuse_bytes
# name: "go_memstats_stack_sys_bytes"
# description: "Number of bytes obtained from system for stack allocator."
# type: "gauge"
go_memstats_stack_sys_bytes
# name: "go_memstats_sys_bytes"
# description: "Number of bytes obtained by system. Sum of all system allocations."
# type: "gauge"
go_memstats_sys_bytes
# name: "grpc_server_handled_total"
# description: "Total number of RPCs completed on the server, regardless of success or failure."
# type: "counter"
# gRPC codes:
# - "OK"
# - "Unavailable"
grpc_server_handled_total{grpc_code="CODE",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_received_total"
# description: "Total number of RPC stream messages received on the server."
# type: "counter"
grpc_server_msg_received_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_sent_total"
# description: "Total number of gRPC stream messages sent by the server."
# type: "counter"
grpc_server_msg_sent_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_started_total"
# description: "Total number of RPCs started on the server."
# type: "counter"
grpc_server_started_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "http_request_duration_microseconds"
# description: "The HTTP request latencies in microseconds."
# type: "summary"
http_request_duration_microseconds{handler="prometheus",quantile="0.5"}
http_request_duration_microseconds{handler="prometheus",quantile="0.9"}
http_request_duration_microseconds{handler="prometheus",quantile="0.99"}
http_request_duration_microseconds_sum{handler="prometheus"}
http_request_duration_microseconds_count{handler="prometheus"}
# name: "http_request_size_bytes"
# description: "The HTTP request sizes in bytes."
# type: "summary"
http_request_size_bytes{handler="prometheus",quantile="0.5"}
http_request_size_bytes{handler="prometheus",quantile="0.9"}
http_request_size_bytes{handler="prometheus",quantile="0.99"}
http_request_size_bytes_sum{handler="prometheus"}
http_request_size_bytes_count{handler="prometheus"}
# name: "http_response_size_bytes"
# description: "The HTTP response sizes in bytes."
# type: "summary"
http_response_size_bytes{handler="prometheus",quantile="0.5"}
http_response_size_bytes{handler="prometheus",quantile="0.9"}
http_response_size_bytes{handler="prometheus",quantile="0.99"}
http_response_size_bytes_sum{handler="prometheus"}
http_response_size_bytes_count{handler="prometheus"}

View File

@ -0,0 +1,511 @@
# server version: unknown
# name: "etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of db compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2048"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4096"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_compaction_total_duration_milliseconds"
# description: "Bucketed histogram of db compaction total duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="100"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="1600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="3200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="6400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="12800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="25600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="51200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="102400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="204800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="409600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="819200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_total_size_in_bytes"
# description: "Total size of the underlying database in bytes."
# type: "gauge"
etcd_debugging_mvcc_db_total_size_in_bytes
# name: "etcd_debugging_mvcc_delete_total"
# description: "Total number of deletes seen by this member."
# type: "counter"
etcd_debugging_mvcc_delete_total
# name: "etcd_debugging_mvcc_events_total"
# description: "Total number of events sent by this member."
# type: "counter"
etcd_debugging_mvcc_events_total
# name: "etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of index compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="0.5"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_keys_total"
# description: "Total number of keys."
# type: "gauge"
etcd_debugging_mvcc_keys_total
# name: "etcd_debugging_mvcc_pending_events_total"
# description: "Total number of pending events to be sent."
# type: "gauge"
etcd_debugging_mvcc_pending_events_total
# name: "etcd_debugging_mvcc_put_total"
# description: "Total number of puts seen by this member."
# type: "counter"
etcd_debugging_mvcc_put_total
# name: "etcd_debugging_mvcc_range_total"
# description: "Total number of ranges seen by this member."
# type: "counter"
etcd_debugging_mvcc_range_total
# name: "etcd_debugging_mvcc_slow_watcher_total"
# description: "Total number of unsynced slow watchers."
# type: "gauge"
etcd_debugging_mvcc_slow_watcher_total
# name: "etcd_debugging_mvcc_txn_total"
# description: "Total number of txns seen by this member."
# type: "counter"
etcd_debugging_mvcc_txn_total
# name: "etcd_debugging_mvcc_watch_stream_total"
# description: "Total number of watch streams."
# type: "gauge"
etcd_debugging_mvcc_watch_stream_total
# name: "etcd_debugging_mvcc_watcher_total"
# description: "Total number of watchers."
# type: "gauge"
etcd_debugging_mvcc_watcher_total
# name: "etcd_debugging_snap_save_marshalling_duration_seconds"
# description: "The marshalling cost distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_marshalling_duration_seconds_sum
etcd_debugging_snap_save_marshalling_duration_seconds_count
# name: "etcd_debugging_snap_save_total_duration_seconds"
# description: "The total latency distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_total_duration_seconds_sum
etcd_debugging_snap_save_total_duration_seconds_count
# name: "etcd_debugging_store_expires_total"
# description: "Total number of expired keys."
# type: "counter"
etcd_debugging_store_expires_total
# name: "etcd_debugging_store_reads_total"
# description: "Total number of reads action by (get/getRecursive), local to this member."
# type: "counter"
etcd_debugging_store_reads_total{action="getRecursive"}
# name: "etcd_debugging_store_watch_requests_total"
# description: "Total number of incoming watch requests (new or reestablished)."
# type: "counter"
etcd_debugging_store_watch_requests_total
# name: "etcd_debugging_store_watchers"
# description: "Count of currently active watchers."
# type: "gauge"
etcd_debugging_store_watchers
# name: "etcd_debugging_store_writes_total"
# description: "Total number of writes (e.g. set/compareAndDelete) seen by this member."
# type: "counter"
etcd_debugging_store_writes_total{action="create"}
etcd_debugging_store_writes_total{action="set"}
# name: "etcd_disk_backend_commit_duration_seconds"
# description: "The latency distributions of commit called by backend."
# type: "histogram"
etcd_disk_backend_commit_duration_seconds_bucket{le="0.001"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.002"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.004"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.008"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.016"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.032"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.064"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.128"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.256"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.512"}
etcd_disk_backend_commit_duration_seconds_bucket{le="1.024"}
etcd_disk_backend_commit_duration_seconds_bucket{le="2.048"}
etcd_disk_backend_commit_duration_seconds_bucket{le="4.096"}
etcd_disk_backend_commit_duration_seconds_bucket{le="8.192"}
etcd_disk_backend_commit_duration_seconds_bucket{le="+Inf"}
etcd_disk_backend_commit_duration_seconds_sum
etcd_disk_backend_commit_duration_seconds_count
# name: "etcd_disk_wal_fsync_duration_seconds"
# description: "The latency distributions of fsync called by wal."
# type: "histogram"
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.001"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.002"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.004"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.008"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.016"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.032"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.064"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.128"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.256"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.512"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="1.024"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="2.048"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="4.096"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="8.192"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="+Inf"}
etcd_disk_wal_fsync_duration_seconds_sum
etcd_disk_wal_fsync_duration_seconds_count
# name: "etcd_grpc_proxy_cache_hits_total"
# description: "Total number of cache hits"
# type: "gauge"
etcd_grpc_proxy_cache_hits_total
# name: "etcd_grpc_proxy_cache_misses_total"
# description: "Total number of cache misses"
# type: "gauge"
etcd_grpc_proxy_cache_misses_total
# name: "etcd_grpc_proxy_events_coalescing_total"
# description: "Total number of events coalescing"
# type: "counter"
etcd_grpc_proxy_events_coalescing_total
# name: "etcd_grpc_proxy_watchers_coalescing_total"
# description: "Total number of current watchers coalescing"
# type: "gauge"
etcd_grpc_proxy_watchers_coalescing_total
# name: "etcd_network_client_grpc_received_bytes_total"
# description: "The total number of bytes received from grpc clients."
# type: "counter"
etcd_network_client_grpc_received_bytes_total
# name: "etcd_network_client_grpc_sent_bytes_total"
# description: "The total number of bytes sent to grpc clients."
# type: "counter"
etcd_network_client_grpc_sent_bytes_total
# name: "etcd_network_peer_received_bytes_total"
# description: "The total number of bytes received from peers."
# type: "counter"
etcd_network_peer_received_bytes_total{From="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_round_trip_time_seconds"
# description: "Round-Trip-Time histogram between peers."
# type: "histogram"
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="+Inf"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0001"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0002"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0004"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0008"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0016"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0032"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0064"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0128"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0256"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0512"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.1024"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.2048"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.4096"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.8192"}
etcd_network_peer_round_trip_time_seconds_count{To="REMOTE_PEER_NODE_ID"}
etcd_network_peer_round_trip_time_seconds_sum{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_sent_bytes_total"
# description: "The total number of bytes sent to peers."
# type: "counter"
etcd_network_peer_sent_bytes_total{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_server_has_leader"
# description: "Whether or not a leader exists. 1 is existence, 0 is not."
# type: "gauge"
etcd_server_has_leader
# name: "etcd_server_leader_changes_seen_total"
# description: "The number of leader changes seen."
# type: "counter"
etcd_server_leader_changes_seen_total
# name: "etcd_server_proposals_applied_total"
# description: "The total number of consensus proposals applied."
# type: "gauge"
etcd_server_proposals_applied_total
# name: "etcd_server_proposals_committed_total"
# description: "The total number of consensus proposals committed."
# type: "gauge"
etcd_server_proposals_committed_total
# name: "etcd_server_proposals_failed_total"
# description: "The total number of failed proposals seen."
# type: "counter"
etcd_server_proposals_failed_total
# name: "etcd_server_proposals_pending"
# description: "The current number of pending proposals to commit."
# type: "gauge"
etcd_server_proposals_pending
# name: "go_gc_duration_seconds"
# description: "A summary of the GC invocation durations."
# type: "summary"
go_gc_duration_seconds{quantile="0"}
go_gc_duration_seconds{quantile="0.25"}
go_gc_duration_seconds{quantile="0.5"}
go_gc_duration_seconds{quantile="0.75"}
go_gc_duration_seconds{quantile="1"}
go_gc_duration_seconds_sum
go_gc_duration_seconds_count
# name: "go_goroutines"
# description: "Number of goroutines that currently exist."
# type: "gauge"
go_goroutines
# name: "go_memstats_alloc_bytes"
# description: "Number of bytes allocated and still in use."
# type: "gauge"
go_memstats_alloc_bytes
# name: "go_memstats_alloc_bytes_total"
# description: "Total number of bytes allocated, even if freed."
# type: "counter"
go_memstats_alloc_bytes_total
# name: "go_memstats_buck_hash_sys_bytes"
# description: "Number of bytes used by the profiling bucket hash table."
# type: "gauge"
go_memstats_buck_hash_sys_bytes
# name: "go_memstats_frees_total"
# description: "Total number of frees."
# type: "counter"
go_memstats_frees_total
# name: "go_memstats_gc_sys_bytes"
# description: "Number of bytes used for garbage collection system metadata."
# type: "gauge"
go_memstats_gc_sys_bytes
# name: "go_memstats_heap_alloc_bytes"
# description: "Number of heap bytes allocated and still in use."
# type: "gauge"
go_memstats_heap_alloc_bytes
# name: "go_memstats_heap_idle_bytes"
# description: "Number of heap bytes waiting to be used."
# type: "gauge"
go_memstats_heap_idle_bytes
# name: "go_memstats_heap_inuse_bytes"
# description: "Number of heap bytes that are in use."
# type: "gauge"
go_memstats_heap_inuse_bytes
# name: "go_memstats_heap_objects"
# description: "Number of allocated objects."
# type: "gauge"
go_memstats_heap_objects
# name: "go_memstats_heap_released_bytes_total"
# description: "Total number of heap bytes released to OS."
# type: "counter"
go_memstats_heap_released_bytes_total
# name: "go_memstats_heap_sys_bytes"
# description: "Number of heap bytes obtained from system."
# type: "gauge"
go_memstats_heap_sys_bytes
# name: "go_memstats_last_gc_time_seconds"
# description: "Number of seconds since 1970 of last garbage collection."
# type: "gauge"
go_memstats_last_gc_time_seconds
# name: "go_memstats_lookups_total"
# description: "Total number of pointer lookups."
# type: "counter"
go_memstats_lookups_total
# name: "go_memstats_mallocs_total"
# description: "Total number of mallocs."
# type: "counter"
go_memstats_mallocs_total
# name: "go_memstats_mcache_inuse_bytes"
# description: "Number of bytes in use by mcache structures."
# type: "gauge"
go_memstats_mcache_inuse_bytes
# name: "go_memstats_mcache_sys_bytes"
# description: "Number of bytes used for mcache structures obtained from system."
# type: "gauge"
go_memstats_mcache_sys_bytes
# name: "go_memstats_mspan_inuse_bytes"
# description: "Number of bytes in use by mspan structures."
# type: "gauge"
go_memstats_mspan_inuse_bytes
# name: "go_memstats_mspan_sys_bytes"
# description: "Number of bytes used for mspan structures obtained from system."
# type: "gauge"
go_memstats_mspan_sys_bytes
# name: "go_memstats_next_gc_bytes"
# description: "Number of heap bytes when next garbage collection will take place."
# type: "gauge"
go_memstats_next_gc_bytes
# name: "go_memstats_other_sys_bytes"
# description: "Number of bytes used for other system allocations."
# type: "gauge"
go_memstats_other_sys_bytes
# name: "go_memstats_stack_inuse_bytes"
# description: "Number of bytes in use by the stack allocator."
# type: "gauge"
go_memstats_stack_inuse_bytes
# name: "go_memstats_stack_sys_bytes"
# description: "Number of bytes obtained from system for stack allocator."
# type: "gauge"
go_memstats_stack_sys_bytes
# name: "go_memstats_sys_bytes"
# description: "Number of bytes obtained by system. Sum of all system allocations."
# type: "gauge"
go_memstats_sys_bytes
# name: "grpc_server_handled_total"
# description: "Total number of RPCs completed on the server, regardless of success or failure."
# type: "counter"
# gRPC codes:
# - "OK"
# - "Unavailable"
grpc_server_handled_total{grpc_code="CODE",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_received_total"
# description: "Total number of RPC stream messages received on the server."
# type: "counter"
grpc_server_msg_received_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_sent_total"
# description: "Total number of gRPC stream messages sent by the server."
# type: "counter"
grpc_server_msg_sent_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_started_total"
# description: "Total number of RPCs started on the server."
# type: "counter"
grpc_server_started_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "http_request_duration_microseconds"
# description: "The HTTP request latencies in microseconds."
# type: "summary"
http_request_duration_microseconds{handler="prometheus",quantile="0.5"}
http_request_duration_microseconds{handler="prometheus",quantile="0.9"}
http_request_duration_microseconds{handler="prometheus",quantile="0.99"}
http_request_duration_microseconds_sum{handler="prometheus"}
http_request_duration_microseconds_count{handler="prometheus"}
# name: "http_request_size_bytes"
# description: "The HTTP request sizes in bytes."
# type: "summary"
http_request_size_bytes{handler="prometheus",quantile="0.5"}
http_request_size_bytes{handler="prometheus",quantile="0.9"}
http_request_size_bytes{handler="prometheus",quantile="0.99"}
http_request_size_bytes_sum{handler="prometheus"}
http_request_size_bytes_count{handler="prometheus"}
# name: "http_response_size_bytes"
# description: "The HTTP response sizes in bytes."
# type: "summary"
http_response_size_bytes{handler="prometheus",quantile="0.5"}
http_response_size_bytes{handler="prometheus",quantile="0.9"}
http_response_size_bytes{handler="prometheus",quantile="0.99"}
http_response_size_bytes_sum{handler="prometheus"}
http_response_size_bytes_count{handler="prometheus"}

View File

@ -0,0 +1,516 @@
# server version: unknown
# name: "etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of db compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2048"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4096"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_compaction_total_duration_milliseconds"
# description: "Bucketed histogram of db compaction total duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="100"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="1600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="3200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="6400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="12800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="25600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="51200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="102400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="204800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="409600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="819200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_total_size_in_bytes"
# description: "Total size of the underlying database in bytes."
# type: "gauge"
etcd_debugging_mvcc_db_total_size_in_bytes
# name: "etcd_debugging_mvcc_delete_total"
# description: "Total number of deletes seen by this member."
# type: "counter"
etcd_debugging_mvcc_delete_total
# name: "etcd_debugging_mvcc_events_total"
# description: "Total number of events sent by this member."
# type: "counter"
etcd_debugging_mvcc_events_total
# name: "etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of index compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="0.5"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_keys_total"
# description: "Total number of keys."
# type: "gauge"
etcd_debugging_mvcc_keys_total
# name: "etcd_debugging_mvcc_pending_events_total"
# description: "Total number of pending events to be sent."
# type: "gauge"
etcd_debugging_mvcc_pending_events_total
# name: "etcd_debugging_mvcc_put_total"
# description: "Total number of puts seen by this member."
# type: "counter"
etcd_debugging_mvcc_put_total
# name: "etcd_debugging_mvcc_range_total"
# description: "Total number of ranges seen by this member."
# type: "counter"
etcd_debugging_mvcc_range_total
# name: "etcd_debugging_mvcc_slow_watcher_total"
# description: "Total number of unsynced slow watchers."
# type: "gauge"
etcd_debugging_mvcc_slow_watcher_total
# name: "etcd_debugging_mvcc_txn_total"
# description: "Total number of txns seen by this member."
# type: "counter"
etcd_debugging_mvcc_txn_total
# name: "etcd_debugging_mvcc_watch_stream_total"
# description: "Total number of watch streams."
# type: "gauge"
etcd_debugging_mvcc_watch_stream_total
# name: "etcd_debugging_mvcc_watcher_total"
# description: "Total number of watchers."
# type: "gauge"
etcd_debugging_mvcc_watcher_total
# name: "etcd_debugging_snap_save_marshalling_duration_seconds"
# description: "The marshalling cost distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_marshalling_duration_seconds_sum
etcd_debugging_snap_save_marshalling_duration_seconds_count
# name: "etcd_debugging_snap_save_total_duration_seconds"
# description: "The total latency distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_total_duration_seconds_sum
etcd_debugging_snap_save_total_duration_seconds_count
# name: "etcd_debugging_store_expires_total"
# description: "Total number of expired keys."
# type: "counter"
etcd_debugging_store_expires_total
# name: "etcd_debugging_store_reads_total"
# description: "Total number of reads action by (get/getRecursive), local to this member."
# type: "counter"
etcd_debugging_store_reads_total{action="getRecursive"}
# name: "etcd_debugging_store_watch_requests_total"
# description: "Total number of incoming watch requests (new or reestablished)."
# type: "counter"
etcd_debugging_store_watch_requests_total
# name: "etcd_debugging_store_watchers"
# description: "Count of currently active watchers."
# type: "gauge"
etcd_debugging_store_watchers
# name: "etcd_debugging_store_writes_total"
# description: "Total number of writes (e.g. set/compareAndDelete) seen by this member."
# type: "counter"
etcd_debugging_store_writes_total{action="create"}
etcd_debugging_store_writes_total{action="set"}
# name: "etcd_disk_backend_commit_duration_seconds"
# description: "The latency distributions of commit called by backend."
# type: "histogram"
etcd_disk_backend_commit_duration_seconds_bucket{le="0.001"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.002"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.004"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.008"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.016"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.032"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.064"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.128"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.256"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.512"}
etcd_disk_backend_commit_duration_seconds_bucket{le="1.024"}
etcd_disk_backend_commit_duration_seconds_bucket{le="2.048"}
etcd_disk_backend_commit_duration_seconds_bucket{le="4.096"}
etcd_disk_backend_commit_duration_seconds_bucket{le="8.192"}
etcd_disk_backend_commit_duration_seconds_bucket{le="+Inf"}
etcd_disk_backend_commit_duration_seconds_sum
etcd_disk_backend_commit_duration_seconds_count
# name: "etcd_disk_wal_fsync_duration_seconds"
# description: "The latency distributions of fsync called by wal."
# type: "histogram"
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.001"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.002"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.004"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.008"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.016"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.032"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.064"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.128"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.256"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.512"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="1.024"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="2.048"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="4.096"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="8.192"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="+Inf"}
etcd_disk_wal_fsync_duration_seconds_sum
etcd_disk_wal_fsync_duration_seconds_count
# name: "etcd_grpc_proxy_cache_hits_total"
# description: "Total number of cache hits"
# type: "gauge"
etcd_grpc_proxy_cache_hits_total
# name: "etcd_grpc_proxy_cache_misses_total"
# description: "Total number of cache misses"
# type: "gauge"
etcd_grpc_proxy_cache_misses_total
# name: "etcd_grpc_proxy_events_coalescing_total"
# description: "Total number of events coalescing"
# type: "counter"
etcd_grpc_proxy_events_coalescing_total
# name: "etcd_grpc_proxy_watchers_coalescing_total"
# description: "Total number of current watchers coalescing"
# type: "gauge"
etcd_grpc_proxy_watchers_coalescing_total
# name: "etcd_network_client_grpc_received_bytes_total"
# description: "The total number of bytes received from grpc clients."
# type: "counter"
etcd_network_client_grpc_received_bytes_total
# name: "etcd_network_client_grpc_sent_bytes_total"
# description: "The total number of bytes sent to grpc clients."
# type: "counter"
etcd_network_client_grpc_sent_bytes_total
# name: "etcd_network_peer_received_bytes_total"
# description: "The total number of bytes received from peers."
# type: "counter"
etcd_network_peer_received_bytes_total{From="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_round_trip_time_seconds"
# description: "Round-Trip-Time histogram between peers."
# type: "histogram"
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="+Inf"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0001"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0002"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0004"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0008"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0016"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0032"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0064"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0128"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0256"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0512"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.1024"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.2048"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.4096"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.8192"}
etcd_network_peer_round_trip_time_seconds_count{To="REMOTE_PEER_NODE_ID"}
etcd_network_peer_round_trip_time_seconds_sum{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_sent_bytes_total"
# description: "The total number of bytes sent to peers."
# type: "counter"
etcd_network_peer_sent_bytes_total{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_server_has_leader"
# description: "Whether or not a leader exists. 1 is existence, 0 is not."
# type: "gauge"
etcd_server_has_leader
# name: "etcd_server_is_leader"
# description: "Whether or not this member is a leader. 1 if is, 0 otherwise."
# type: "gauge"
etcd_server_is_leader
# name: "etcd_server_leader_changes_seen_total"
# description: "The number of leader changes seen."
# type: "counter"
etcd_server_leader_changes_seen_total
# name: "etcd_server_proposals_applied_total"
# description: "The total number of consensus proposals applied."
# type: "gauge"
etcd_server_proposals_applied_total
# name: "etcd_server_proposals_committed_total"
# description: "The total number of consensus proposals committed."
# type: "gauge"
etcd_server_proposals_committed_total
# name: "etcd_server_proposals_failed_total"
# description: "The total number of failed proposals seen."
# type: "counter"
etcd_server_proposals_failed_total
# name: "etcd_server_proposals_pending"
# description: "The current number of pending proposals to commit."
# type: "gauge"
etcd_server_proposals_pending
# name: "go_gc_duration_seconds"
# description: "A summary of the GC invocation durations."
# type: "summary"
go_gc_duration_seconds{quantile="0"}
go_gc_duration_seconds{quantile="0.25"}
go_gc_duration_seconds{quantile="0.5"}
go_gc_duration_seconds{quantile="0.75"}
go_gc_duration_seconds{quantile="1"}
go_gc_duration_seconds_sum
go_gc_duration_seconds_count
# name: "go_goroutines"
# description: "Number of goroutines that currently exist."
# type: "gauge"
go_goroutines
# name: "go_memstats_alloc_bytes"
# description: "Number of bytes allocated and still in use."
# type: "gauge"
go_memstats_alloc_bytes
# name: "go_memstats_alloc_bytes_total"
# description: "Total number of bytes allocated, even if freed."
# type: "counter"
go_memstats_alloc_bytes_total
# name: "go_memstats_buck_hash_sys_bytes"
# description: "Number of bytes used by the profiling bucket hash table."
# type: "gauge"
go_memstats_buck_hash_sys_bytes
# name: "go_memstats_frees_total"
# description: "Total number of frees."
# type: "counter"
go_memstats_frees_total
# name: "go_memstats_gc_sys_bytes"
# description: "Number of bytes used for garbage collection system metadata."
# type: "gauge"
go_memstats_gc_sys_bytes
# name: "go_memstats_heap_alloc_bytes"
# description: "Number of heap bytes allocated and still in use."
# type: "gauge"
go_memstats_heap_alloc_bytes
# name: "go_memstats_heap_idle_bytes"
# description: "Number of heap bytes waiting to be used."
# type: "gauge"
go_memstats_heap_idle_bytes
# name: "go_memstats_heap_inuse_bytes"
# description: "Number of heap bytes that are in use."
# type: "gauge"
go_memstats_heap_inuse_bytes
# name: "go_memstats_heap_objects"
# description: "Number of allocated objects."
# type: "gauge"
go_memstats_heap_objects
# name: "go_memstats_heap_released_bytes_total"
# description: "Total number of heap bytes released to OS."
# type: "counter"
go_memstats_heap_released_bytes_total
# name: "go_memstats_heap_sys_bytes"
# description: "Number of heap bytes obtained from system."
# type: "gauge"
go_memstats_heap_sys_bytes
# name: "go_memstats_last_gc_time_seconds"
# description: "Number of seconds since 1970 of last garbage collection."
# type: "gauge"
go_memstats_last_gc_time_seconds
# name: "go_memstats_lookups_total"
# description: "Total number of pointer lookups."
# type: "counter"
go_memstats_lookups_total
# name: "go_memstats_mallocs_total"
# description: "Total number of mallocs."
# type: "counter"
go_memstats_mallocs_total
# name: "go_memstats_mcache_inuse_bytes"
# description: "Number of bytes in use by mcache structures."
# type: "gauge"
go_memstats_mcache_inuse_bytes
# name: "go_memstats_mcache_sys_bytes"
# description: "Number of bytes used for mcache structures obtained from system."
# type: "gauge"
go_memstats_mcache_sys_bytes
# name: "go_memstats_mspan_inuse_bytes"
# description: "Number of bytes in use by mspan structures."
# type: "gauge"
go_memstats_mspan_inuse_bytes
# name: "go_memstats_mspan_sys_bytes"
# description: "Number of bytes used for mspan structures obtained from system."
# type: "gauge"
go_memstats_mspan_sys_bytes
# name: "go_memstats_next_gc_bytes"
# description: "Number of heap bytes when next garbage collection will take place."
# type: "gauge"
go_memstats_next_gc_bytes
# name: "go_memstats_other_sys_bytes"
# description: "Number of bytes used for other system allocations."
# type: "gauge"
go_memstats_other_sys_bytes
# name: "go_memstats_stack_inuse_bytes"
# description: "Number of bytes in use by the stack allocator."
# type: "gauge"
go_memstats_stack_inuse_bytes
# name: "go_memstats_stack_sys_bytes"
# description: "Number of bytes obtained from system for stack allocator."
# type: "gauge"
go_memstats_stack_sys_bytes
# name: "go_memstats_sys_bytes"
# description: "Number of bytes obtained by system. Sum of all system allocations."
# type: "gauge"
go_memstats_sys_bytes
# name: "grpc_server_handled_total"
# description: "Total number of RPCs completed on the server, regardless of success or failure."
# type: "counter"
# gRPC codes:
# - "Canceled"
# - "OK"
grpc_server_handled_total{grpc_code="CODE",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_received_total"
# description: "Total number of RPC stream messages received on the server."
# type: "counter"
grpc_server_msg_received_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_sent_total"
# description: "Total number of gRPC stream messages sent by the server."
# type: "counter"
grpc_server_msg_sent_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_started_total"
# description: "Total number of RPCs started on the server."
# type: "counter"
grpc_server_started_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "http_request_duration_microseconds"
# description: "The HTTP request latencies in microseconds."
# type: "summary"
http_request_duration_microseconds{handler="prometheus",quantile="0.5"}
http_request_duration_microseconds{handler="prometheus",quantile="0.9"}
http_request_duration_microseconds{handler="prometheus",quantile="0.99"}
http_request_duration_microseconds_sum{handler="prometheus"}
http_request_duration_microseconds_count{handler="prometheus"}
# name: "http_request_size_bytes"
# description: "The HTTP request sizes in bytes."
# type: "summary"
http_request_size_bytes{handler="prometheus",quantile="0.5"}
http_request_size_bytes{handler="prometheus",quantile="0.9"}
http_request_size_bytes{handler="prometheus",quantile="0.99"}
http_request_size_bytes_sum{handler="prometheus"}
http_request_size_bytes_count{handler="prometheus"}
# name: "http_response_size_bytes"
# description: "The HTTP response sizes in bytes."
# type: "summary"
http_response_size_bytes{handler="prometheus",quantile="0.5"}
http_response_size_bytes{handler="prometheus",quantile="0.9"}
http_response_size_bytes{handler="prometheus",quantile="0.99"}
http_response_size_bytes_sum{handler="prometheus"}
http_response_size_bytes_count{handler="prometheus"}

View File

@ -0,0 +1,516 @@
# server version: unknown
# name: "etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of db compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2048"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4096"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_compaction_total_duration_milliseconds"
# description: "Bucketed histogram of db compaction total duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="100"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="1600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="3200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="6400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="12800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="25600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="51200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="102400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="204800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="409600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="819200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_total_size_in_bytes"
# description: "Total size of the underlying database in bytes."
# type: "gauge"
etcd_debugging_mvcc_db_total_size_in_bytes
# name: "etcd_debugging_mvcc_delete_total"
# description: "Total number of deletes seen by this member."
# type: "counter"
etcd_debugging_mvcc_delete_total
# name: "etcd_debugging_mvcc_events_total"
# description: "Total number of events sent by this member."
# type: "counter"
etcd_debugging_mvcc_events_total
# name: "etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of index compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="0.5"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_keys_total"
# description: "Total number of keys."
# type: "gauge"
etcd_debugging_mvcc_keys_total
# name: "etcd_debugging_mvcc_pending_events_total"
# description: "Total number of pending events to be sent."
# type: "gauge"
etcd_debugging_mvcc_pending_events_total
# name: "etcd_debugging_mvcc_put_total"
# description: "Total number of puts seen by this member."
# type: "counter"
etcd_debugging_mvcc_put_total
# name: "etcd_debugging_mvcc_range_total"
# description: "Total number of ranges seen by this member."
# type: "counter"
etcd_debugging_mvcc_range_total
# name: "etcd_debugging_mvcc_slow_watcher_total"
# description: "Total number of unsynced slow watchers."
# type: "gauge"
etcd_debugging_mvcc_slow_watcher_total
# name: "etcd_debugging_mvcc_txn_total"
# description: "Total number of txns seen by this member."
# type: "counter"
etcd_debugging_mvcc_txn_total
# name: "etcd_debugging_mvcc_watch_stream_total"
# description: "Total number of watch streams."
# type: "gauge"
etcd_debugging_mvcc_watch_stream_total
# name: "etcd_debugging_mvcc_watcher_total"
# description: "Total number of watchers."
# type: "gauge"
etcd_debugging_mvcc_watcher_total
# name: "etcd_debugging_snap_save_marshalling_duration_seconds"
# description: "The marshalling cost distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_marshalling_duration_seconds_sum
etcd_debugging_snap_save_marshalling_duration_seconds_count
# name: "etcd_debugging_snap_save_total_duration_seconds"
# description: "The total latency distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_total_duration_seconds_sum
etcd_debugging_snap_save_total_duration_seconds_count
# name: "etcd_debugging_store_expires_total"
# description: "Total number of expired keys."
# type: "counter"
etcd_debugging_store_expires_total
# name: "etcd_debugging_store_reads_total"
# description: "Total number of reads action by (get/getRecursive), local to this member."
# type: "counter"
etcd_debugging_store_reads_total{action="getRecursive"}
# name: "etcd_debugging_store_watch_requests_total"
# description: "Total number of incoming watch requests (new or reestablished)."
# type: "counter"
etcd_debugging_store_watch_requests_total
# name: "etcd_debugging_store_watchers"
# description: "Count of currently active watchers."
# type: "gauge"
etcd_debugging_store_watchers
# name: "etcd_debugging_store_writes_total"
# description: "Total number of writes (e.g. set/compareAndDelete) seen by this member."
# type: "counter"
etcd_debugging_store_writes_total{action="create"}
etcd_debugging_store_writes_total{action="set"}
# name: "etcd_disk_backend_commit_duration_seconds"
# description: "The latency distributions of commit called by backend."
# type: "histogram"
etcd_disk_backend_commit_duration_seconds_bucket{le="0.001"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.002"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.004"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.008"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.016"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.032"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.064"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.128"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.256"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.512"}
etcd_disk_backend_commit_duration_seconds_bucket{le="1.024"}
etcd_disk_backend_commit_duration_seconds_bucket{le="2.048"}
etcd_disk_backend_commit_duration_seconds_bucket{le="4.096"}
etcd_disk_backend_commit_duration_seconds_bucket{le="8.192"}
etcd_disk_backend_commit_duration_seconds_bucket{le="+Inf"}
etcd_disk_backend_commit_duration_seconds_sum
etcd_disk_backend_commit_duration_seconds_count
# name: "etcd_disk_wal_fsync_duration_seconds"
# description: "The latency distributions of fsync called by wal."
# type: "histogram"
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.001"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.002"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.004"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.008"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.016"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.032"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.064"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.128"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.256"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.512"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="1.024"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="2.048"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="4.096"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="8.192"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="+Inf"}
etcd_disk_wal_fsync_duration_seconds_sum
etcd_disk_wal_fsync_duration_seconds_count
# name: "etcd_grpc_proxy_cache_hits_total"
# description: "Total number of cache hits"
# type: "gauge"
etcd_grpc_proxy_cache_hits_total
# name: "etcd_grpc_proxy_cache_misses_total"
# description: "Total number of cache misses"
# type: "gauge"
etcd_grpc_proxy_cache_misses_total
# name: "etcd_grpc_proxy_events_coalescing_total"
# description: "Total number of events coalescing"
# type: "counter"
etcd_grpc_proxy_events_coalescing_total
# name: "etcd_grpc_proxy_watchers_coalescing_total"
# description: "Total number of current watchers coalescing"
# type: "gauge"
etcd_grpc_proxy_watchers_coalescing_total
# name: "etcd_network_client_grpc_received_bytes_total"
# description: "The total number of bytes received from grpc clients."
# type: "counter"
etcd_network_client_grpc_received_bytes_total
# name: "etcd_network_client_grpc_sent_bytes_total"
# description: "The total number of bytes sent to grpc clients."
# type: "counter"
etcd_network_client_grpc_sent_bytes_total
# name: "etcd_network_peer_received_bytes_total"
# description: "The total number of bytes received from peers."
# type: "counter"
etcd_network_peer_received_bytes_total{From="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_round_trip_time_seconds"
# description: "Round-Trip-Time histogram between peers."
# type: "histogram"
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="+Inf"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0001"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0002"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0004"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0008"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0016"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0032"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0064"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0128"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0256"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0512"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.1024"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.2048"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.4096"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.8192"}
etcd_network_peer_round_trip_time_seconds_count{To="REMOTE_PEER_NODE_ID"}
etcd_network_peer_round_trip_time_seconds_sum{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_sent_bytes_total"
# description: "The total number of bytes sent to peers."
# type: "counter"
etcd_network_peer_sent_bytes_total{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_server_has_leader"
# description: "Whether or not a leader exists. 1 is existence, 0 is not."
# type: "gauge"
etcd_server_has_leader
# name: "etcd_server_is_leader"
# description: "Whether or not this member is a leader. 1 if is, 0 otherwise."
# type: "gauge"
etcd_server_is_leader
# name: "etcd_server_leader_changes_seen_total"
# description: "The number of leader changes seen."
# type: "counter"
etcd_server_leader_changes_seen_total
# name: "etcd_server_proposals_applied_total"
# description: "The total number of consensus proposals applied."
# type: "gauge"
etcd_server_proposals_applied_total
# name: "etcd_server_proposals_committed_total"
# description: "The total number of consensus proposals committed."
# type: "gauge"
etcd_server_proposals_committed_total
# name: "etcd_server_proposals_failed_total"
# description: "The total number of failed proposals seen."
# type: "counter"
etcd_server_proposals_failed_total
# name: "etcd_server_proposals_pending"
# description: "The current number of pending proposals to commit."
# type: "gauge"
etcd_server_proposals_pending
# name: "go_gc_duration_seconds"
# description: "A summary of the GC invocation durations."
# type: "summary"
go_gc_duration_seconds{quantile="0"}
go_gc_duration_seconds{quantile="0.25"}
go_gc_duration_seconds{quantile="0.5"}
go_gc_duration_seconds{quantile="0.75"}
go_gc_duration_seconds{quantile="1"}
go_gc_duration_seconds_sum
go_gc_duration_seconds_count
# name: "go_goroutines"
# description: "Number of goroutines that currently exist."
# type: "gauge"
go_goroutines
# name: "go_memstats_alloc_bytes"
# description: "Number of bytes allocated and still in use."
# type: "gauge"
go_memstats_alloc_bytes
# name: "go_memstats_alloc_bytes_total"
# description: "Total number of bytes allocated, even if freed."
# type: "counter"
go_memstats_alloc_bytes_total
# name: "go_memstats_buck_hash_sys_bytes"
# description: "Number of bytes used by the profiling bucket hash table."
# type: "gauge"
go_memstats_buck_hash_sys_bytes
# name: "go_memstats_frees_total"
# description: "Total number of frees."
# type: "counter"
go_memstats_frees_total
# name: "go_memstats_gc_sys_bytes"
# description: "Number of bytes used for garbage collection system metadata."
# type: "gauge"
go_memstats_gc_sys_bytes
# name: "go_memstats_heap_alloc_bytes"
# description: "Number of heap bytes allocated and still in use."
# type: "gauge"
go_memstats_heap_alloc_bytes
# name: "go_memstats_heap_idle_bytes"
# description: "Number of heap bytes waiting to be used."
# type: "gauge"
go_memstats_heap_idle_bytes
# name: "go_memstats_heap_inuse_bytes"
# description: "Number of heap bytes that are in use."
# type: "gauge"
go_memstats_heap_inuse_bytes
# name: "go_memstats_heap_objects"
# description: "Number of allocated objects."
# type: "gauge"
go_memstats_heap_objects
# name: "go_memstats_heap_released_bytes_total"
# description: "Total number of heap bytes released to OS."
# type: "counter"
go_memstats_heap_released_bytes_total
# name: "go_memstats_heap_sys_bytes"
# description: "Number of heap bytes obtained from system."
# type: "gauge"
go_memstats_heap_sys_bytes
# name: "go_memstats_last_gc_time_seconds"
# description: "Number of seconds since 1970 of last garbage collection."
# type: "gauge"
go_memstats_last_gc_time_seconds
# name: "go_memstats_lookups_total"
# description: "Total number of pointer lookups."
# type: "counter"
go_memstats_lookups_total
# name: "go_memstats_mallocs_total"
# description: "Total number of mallocs."
# type: "counter"
go_memstats_mallocs_total
# name: "go_memstats_mcache_inuse_bytes"
# description: "Number of bytes in use by mcache structures."
# type: "gauge"
go_memstats_mcache_inuse_bytes
# name: "go_memstats_mcache_sys_bytes"
# description: "Number of bytes used for mcache structures obtained from system."
# type: "gauge"
go_memstats_mcache_sys_bytes
# name: "go_memstats_mspan_inuse_bytes"
# description: "Number of bytes in use by mspan structures."
# type: "gauge"
go_memstats_mspan_inuse_bytes
# name: "go_memstats_mspan_sys_bytes"
# description: "Number of bytes used for mspan structures obtained from system."
# type: "gauge"
go_memstats_mspan_sys_bytes
# name: "go_memstats_next_gc_bytes"
# description: "Number of heap bytes when next garbage collection will take place."
# type: "gauge"
go_memstats_next_gc_bytes
# name: "go_memstats_other_sys_bytes"
# description: "Number of bytes used for other system allocations."
# type: "gauge"
go_memstats_other_sys_bytes
# name: "go_memstats_stack_inuse_bytes"
# description: "Number of bytes in use by the stack allocator."
# type: "gauge"
go_memstats_stack_inuse_bytes
# name: "go_memstats_stack_sys_bytes"
# description: "Number of bytes obtained from system for stack allocator."
# type: "gauge"
go_memstats_stack_sys_bytes
# name: "go_memstats_sys_bytes"
# description: "Number of bytes obtained by system. Sum of all system allocations."
# type: "gauge"
go_memstats_sys_bytes
# name: "grpc_server_handled_total"
# description: "Total number of RPCs completed on the server, regardless of success or failure."
# type: "counter"
# gRPC codes:
# - "Canceled"
# - "OK"
grpc_server_handled_total{grpc_code="CODE",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_received_total"
# description: "Total number of RPC stream messages received on the server."
# type: "counter"
grpc_server_msg_received_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_sent_total"
# description: "Total number of gRPC stream messages sent by the server."
# type: "counter"
grpc_server_msg_sent_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_started_total"
# description: "Total number of RPCs started on the server."
# type: "counter"
grpc_server_started_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "http_request_duration_microseconds"
# description: "The HTTP request latencies in microseconds."
# type: "summary"
http_request_duration_microseconds{handler="prometheus",quantile="0.5"}
http_request_duration_microseconds{handler="prometheus",quantile="0.9"}
http_request_duration_microseconds{handler="prometheus",quantile="0.99"}
http_request_duration_microseconds_sum{handler="prometheus"}
http_request_duration_microseconds_count{handler="prometheus"}
# name: "http_request_size_bytes"
# description: "The HTTP request sizes in bytes."
# type: "summary"
http_request_size_bytes{handler="prometheus",quantile="0.5"}
http_request_size_bytes{handler="prometheus",quantile="0.9"}
http_request_size_bytes{handler="prometheus",quantile="0.99"}
http_request_size_bytes_sum{handler="prometheus"}
http_request_size_bytes_count{handler="prometheus"}
# name: "http_response_size_bytes"
# description: "The HTTP response sizes in bytes."
# type: "summary"
http_response_size_bytes{handler="prometheus",quantile="0.5"}
http_response_size_bytes{handler="prometheus",quantile="0.9"}
http_response_size_bytes{handler="prometheus",quantile="0.99"}
http_response_size_bytes_sum{handler="prometheus"}
http_response_size_bytes_count{handler="prometheus"}

View File

@ -0,0 +1,516 @@
# server version: unknown
# name: "etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of db compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2048"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4096"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_compaction_total_duration_milliseconds"
# description: "Bucketed histogram of db compaction total duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="100"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="1600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="3200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="6400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="12800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="25600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="51200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="102400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="204800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="409600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="819200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_total_size_in_bytes"
# description: "Total size of the underlying database in bytes."
# type: "gauge"
etcd_debugging_mvcc_db_total_size_in_bytes
# name: "etcd_debugging_mvcc_delete_total"
# description: "Total number of deletes seen by this member."
# type: "counter"
etcd_debugging_mvcc_delete_total
# name: "etcd_debugging_mvcc_events_total"
# description: "Total number of events sent by this member."
# type: "counter"
etcd_debugging_mvcc_events_total
# name: "etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of index compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="0.5"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_keys_total"
# description: "Total number of keys."
# type: "gauge"
etcd_debugging_mvcc_keys_total
# name: "etcd_debugging_mvcc_pending_events_total"
# description: "Total number of pending events to be sent."
# type: "gauge"
etcd_debugging_mvcc_pending_events_total
# name: "etcd_debugging_mvcc_put_total"
# description: "Total number of puts seen by this member."
# type: "counter"
etcd_debugging_mvcc_put_total
# name: "etcd_debugging_mvcc_range_total"
# description: "Total number of ranges seen by this member."
# type: "counter"
etcd_debugging_mvcc_range_total
# name: "etcd_debugging_mvcc_slow_watcher_total"
# description: "Total number of unsynced slow watchers."
# type: "gauge"
etcd_debugging_mvcc_slow_watcher_total
# name: "etcd_debugging_mvcc_txn_total"
# description: "Total number of txns seen by this member."
# type: "counter"
etcd_debugging_mvcc_txn_total
# name: "etcd_debugging_mvcc_watch_stream_total"
# description: "Total number of watch streams."
# type: "gauge"
etcd_debugging_mvcc_watch_stream_total
# name: "etcd_debugging_mvcc_watcher_total"
# description: "Total number of watchers."
# type: "gauge"
etcd_debugging_mvcc_watcher_total
# name: "etcd_debugging_snap_save_marshalling_duration_seconds"
# description: "The marshalling cost distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_marshalling_duration_seconds_sum
etcd_debugging_snap_save_marshalling_duration_seconds_count
# name: "etcd_debugging_snap_save_total_duration_seconds"
# description: "The total latency distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_total_duration_seconds_sum
etcd_debugging_snap_save_total_duration_seconds_count
# name: "etcd_debugging_store_expires_total"
# description: "Total number of expired keys."
# type: "counter"
etcd_debugging_store_expires_total
# name: "etcd_debugging_store_reads_total"
# description: "Total number of reads action by (get/getRecursive), local to this member."
# type: "counter"
etcd_debugging_store_reads_total{action="getRecursive"}
# name: "etcd_debugging_store_watch_requests_total"
# description: "Total number of incoming watch requests (new or reestablished)."
# type: "counter"
etcd_debugging_store_watch_requests_total
# name: "etcd_debugging_store_watchers"
# description: "Count of currently active watchers."
# type: "gauge"
etcd_debugging_store_watchers
# name: "etcd_debugging_store_writes_total"
# description: "Total number of writes (e.g. set/compareAndDelete) seen by this member."
# type: "counter"
etcd_debugging_store_writes_total{action="create"}
etcd_debugging_store_writes_total{action="set"}
# name: "etcd_disk_backend_commit_duration_seconds"
# description: "The latency distributions of commit called by backend."
# type: "histogram"
etcd_disk_backend_commit_duration_seconds_bucket{le="0.001"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.002"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.004"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.008"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.016"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.032"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.064"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.128"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.256"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.512"}
etcd_disk_backend_commit_duration_seconds_bucket{le="1.024"}
etcd_disk_backend_commit_duration_seconds_bucket{le="2.048"}
etcd_disk_backend_commit_duration_seconds_bucket{le="4.096"}
etcd_disk_backend_commit_duration_seconds_bucket{le="8.192"}
etcd_disk_backend_commit_duration_seconds_bucket{le="+Inf"}
etcd_disk_backend_commit_duration_seconds_sum
etcd_disk_backend_commit_duration_seconds_count
# name: "etcd_disk_wal_fsync_duration_seconds"
# description: "The latency distributions of fsync called by wal."
# type: "histogram"
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.001"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.002"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.004"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.008"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.016"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.032"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.064"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.128"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.256"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.512"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="1.024"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="2.048"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="4.096"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="8.192"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="+Inf"}
etcd_disk_wal_fsync_duration_seconds_sum
etcd_disk_wal_fsync_duration_seconds_count
# name: "etcd_grpc_proxy_cache_hits_total"
# description: "Total number of cache hits"
# type: "gauge"
etcd_grpc_proxy_cache_hits_total
# name: "etcd_grpc_proxy_cache_misses_total"
# description: "Total number of cache misses"
# type: "gauge"
etcd_grpc_proxy_cache_misses_total
# name: "etcd_grpc_proxy_events_coalescing_total"
# description: "Total number of events coalescing"
# type: "counter"
etcd_grpc_proxy_events_coalescing_total
# name: "etcd_grpc_proxy_watchers_coalescing_total"
# description: "Total number of current watchers coalescing"
# type: "gauge"
etcd_grpc_proxy_watchers_coalescing_total
# name: "etcd_network_client_grpc_received_bytes_total"
# description: "The total number of bytes received from grpc clients."
# type: "counter"
etcd_network_client_grpc_received_bytes_total
# name: "etcd_network_client_grpc_sent_bytes_total"
# description: "The total number of bytes sent to grpc clients."
# type: "counter"
etcd_network_client_grpc_sent_bytes_total
# name: "etcd_network_peer_received_bytes_total"
# description: "The total number of bytes received from peers."
# type: "counter"
etcd_network_peer_received_bytes_total{From="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_round_trip_time_seconds"
# description: "Round-Trip-Time histogram between peers."
# type: "histogram"
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="+Inf"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0001"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0002"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0004"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0008"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0016"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0032"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0064"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0128"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0256"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0512"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.1024"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.2048"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.4096"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.8192"}
etcd_network_peer_round_trip_time_seconds_count{To="REMOTE_PEER_NODE_ID"}
etcd_network_peer_round_trip_time_seconds_sum{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_sent_bytes_total"
# description: "The total number of bytes sent to peers."
# type: "counter"
etcd_network_peer_sent_bytes_total{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_server_has_leader"
# description: "Whether or not a leader exists. 1 is existence, 0 is not."
# type: "gauge"
etcd_server_has_leader
# name: "etcd_server_is_leader"
# description: "Whether or not this member is a leader. 1 if is, 0 otherwise."
# type: "gauge"
etcd_server_is_leader
# name: "etcd_server_leader_changes_seen_total"
# description: "The number of leader changes seen."
# type: "counter"
etcd_server_leader_changes_seen_total
# name: "etcd_server_proposals_applied_total"
# description: "The total number of consensus proposals applied."
# type: "gauge"
etcd_server_proposals_applied_total
# name: "etcd_server_proposals_committed_total"
# description: "The total number of consensus proposals committed."
# type: "gauge"
etcd_server_proposals_committed_total
# name: "etcd_server_proposals_failed_total"
# description: "The total number of failed proposals seen."
# type: "counter"
etcd_server_proposals_failed_total
# name: "etcd_server_proposals_pending"
# description: "The current number of pending proposals to commit."
# type: "gauge"
etcd_server_proposals_pending
# name: "go_gc_duration_seconds"
# description: "A summary of the GC invocation durations."
# type: "summary"
go_gc_duration_seconds{quantile="0"}
go_gc_duration_seconds{quantile="0.25"}
go_gc_duration_seconds{quantile="0.5"}
go_gc_duration_seconds{quantile="0.75"}
go_gc_duration_seconds{quantile="1"}
go_gc_duration_seconds_sum
go_gc_duration_seconds_count
# name: "go_goroutines"
# description: "Number of goroutines that currently exist."
# type: "gauge"
go_goroutines
# name: "go_memstats_alloc_bytes"
# description: "Number of bytes allocated and still in use."
# type: "gauge"
go_memstats_alloc_bytes
# name: "go_memstats_alloc_bytes_total"
# description: "Total number of bytes allocated, even if freed."
# type: "counter"
go_memstats_alloc_bytes_total
# name: "go_memstats_buck_hash_sys_bytes"
# description: "Number of bytes used by the profiling bucket hash table."
# type: "gauge"
go_memstats_buck_hash_sys_bytes
# name: "go_memstats_frees_total"
# description: "Total number of frees."
# type: "counter"
go_memstats_frees_total
# name: "go_memstats_gc_sys_bytes"
# description: "Number of bytes used for garbage collection system metadata."
# type: "gauge"
go_memstats_gc_sys_bytes
# name: "go_memstats_heap_alloc_bytes"
# description: "Number of heap bytes allocated and still in use."
# type: "gauge"
go_memstats_heap_alloc_bytes
# name: "go_memstats_heap_idle_bytes"
# description: "Number of heap bytes waiting to be used."
# type: "gauge"
go_memstats_heap_idle_bytes
# name: "go_memstats_heap_inuse_bytes"
# description: "Number of heap bytes that are in use."
# type: "gauge"
go_memstats_heap_inuse_bytes
# name: "go_memstats_heap_objects"
# description: "Number of allocated objects."
# type: "gauge"
go_memstats_heap_objects
# name: "go_memstats_heap_released_bytes_total"
# description: "Total number of heap bytes released to OS."
# type: "counter"
go_memstats_heap_released_bytes_total
# name: "go_memstats_heap_sys_bytes"
# description: "Number of heap bytes obtained from system."
# type: "gauge"
go_memstats_heap_sys_bytes
# name: "go_memstats_last_gc_time_seconds"
# description: "Number of seconds since 1970 of last garbage collection."
# type: "gauge"
go_memstats_last_gc_time_seconds
# name: "go_memstats_lookups_total"
# description: "Total number of pointer lookups."
# type: "counter"
go_memstats_lookups_total
# name: "go_memstats_mallocs_total"
# description: "Total number of mallocs."
# type: "counter"
go_memstats_mallocs_total
# name: "go_memstats_mcache_inuse_bytes"
# description: "Number of bytes in use by mcache structures."
# type: "gauge"
go_memstats_mcache_inuse_bytes
# name: "go_memstats_mcache_sys_bytes"
# description: "Number of bytes used for mcache structures obtained from system."
# type: "gauge"
go_memstats_mcache_sys_bytes
# name: "go_memstats_mspan_inuse_bytes"
# description: "Number of bytes in use by mspan structures."
# type: "gauge"
go_memstats_mspan_inuse_bytes
# name: "go_memstats_mspan_sys_bytes"
# description: "Number of bytes used for mspan structures obtained from system."
# type: "gauge"
go_memstats_mspan_sys_bytes
# name: "go_memstats_next_gc_bytes"
# description: "Number of heap bytes when next garbage collection will take place."
# type: "gauge"
go_memstats_next_gc_bytes
# name: "go_memstats_other_sys_bytes"
# description: "Number of bytes used for other system allocations."
# type: "gauge"
go_memstats_other_sys_bytes
# name: "go_memstats_stack_inuse_bytes"
# description: "Number of bytes in use by the stack allocator."
# type: "gauge"
go_memstats_stack_inuse_bytes
# name: "go_memstats_stack_sys_bytes"
# description: "Number of bytes obtained from system for stack allocator."
# type: "gauge"
go_memstats_stack_sys_bytes
# name: "go_memstats_sys_bytes"
# description: "Number of bytes obtained by system. Sum of all system allocations."
# type: "gauge"
go_memstats_sys_bytes
# name: "grpc_server_handled_total"
# description: "Total number of RPCs completed on the server, regardless of success or failure."
# type: "counter"
# gRPC codes:
# - "OK"
# - "Unavailable"
grpc_server_handled_total{grpc_code="CODE",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_received_total"
# description: "Total number of RPC stream messages received on the server."
# type: "counter"
grpc_server_msg_received_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_sent_total"
# description: "Total number of gRPC stream messages sent by the server."
# type: "counter"
grpc_server_msg_sent_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_started_total"
# description: "Total number of RPCs started on the server."
# type: "counter"
grpc_server_started_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "http_request_duration_microseconds"
# description: "The HTTP request latencies in microseconds."
# type: "summary"
http_request_duration_microseconds{handler="prometheus",quantile="0.5"}
http_request_duration_microseconds{handler="prometheus",quantile="0.9"}
http_request_duration_microseconds{handler="prometheus",quantile="0.99"}
http_request_duration_microseconds_sum{handler="prometheus"}
http_request_duration_microseconds_count{handler="prometheus"}
# name: "http_request_size_bytes"
# description: "The HTTP request sizes in bytes."
# type: "summary"
http_request_size_bytes{handler="prometheus",quantile="0.5"}
http_request_size_bytes{handler="prometheus",quantile="0.9"}
http_request_size_bytes{handler="prometheus",quantile="0.99"}
http_request_size_bytes_sum{handler="prometheus"}
http_request_size_bytes_count{handler="prometheus"}
# name: "http_response_size_bytes"
# description: "The HTTP response sizes in bytes."
# type: "summary"
http_response_size_bytes{handler="prometheus",quantile="0.5"}
http_response_size_bytes{handler="prometheus",quantile="0.9"}
http_response_size_bytes{handler="prometheus",quantile="0.99"}
http_response_size_bytes_sum{handler="prometheus"}
http_response_size_bytes_count{handler="prometheus"}

View File

@ -0,0 +1,516 @@
# server version: unknown
# name: "etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of db compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2048"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4096"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_compaction_total_duration_milliseconds"
# description: "Bucketed histogram of db compaction total duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="100"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="1600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="3200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="6400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="12800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="25600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="51200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="102400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="204800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="409600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="819200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_total_size_in_bytes"
# description: "Total size of the underlying database in bytes."
# type: "gauge"
etcd_debugging_mvcc_db_total_size_in_bytes
# name: "etcd_debugging_mvcc_delete_total"
# description: "Total number of deletes seen by this member."
# type: "counter"
etcd_debugging_mvcc_delete_total
# name: "etcd_debugging_mvcc_events_total"
# description: "Total number of events sent by this member."
# type: "counter"
etcd_debugging_mvcc_events_total
# name: "etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of index compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="0.5"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_keys_total"
# description: "Total number of keys."
# type: "gauge"
etcd_debugging_mvcc_keys_total
# name: "etcd_debugging_mvcc_pending_events_total"
# description: "Total number of pending events to be sent."
# type: "gauge"
etcd_debugging_mvcc_pending_events_total
# name: "etcd_debugging_mvcc_put_total"
# description: "Total number of puts seen by this member."
# type: "counter"
etcd_debugging_mvcc_put_total
# name: "etcd_debugging_mvcc_range_total"
# description: "Total number of ranges seen by this member."
# type: "counter"
etcd_debugging_mvcc_range_total
# name: "etcd_debugging_mvcc_slow_watcher_total"
# description: "Total number of unsynced slow watchers."
# type: "gauge"
etcd_debugging_mvcc_slow_watcher_total
# name: "etcd_debugging_mvcc_txn_total"
# description: "Total number of txns seen by this member."
# type: "counter"
etcd_debugging_mvcc_txn_total
# name: "etcd_debugging_mvcc_watch_stream_total"
# description: "Total number of watch streams."
# type: "gauge"
etcd_debugging_mvcc_watch_stream_total
# name: "etcd_debugging_mvcc_watcher_total"
# description: "Total number of watchers."
# type: "gauge"
etcd_debugging_mvcc_watcher_total
# name: "etcd_debugging_snap_save_marshalling_duration_seconds"
# description: "The marshalling cost distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_marshalling_duration_seconds_sum
etcd_debugging_snap_save_marshalling_duration_seconds_count
# name: "etcd_debugging_snap_save_total_duration_seconds"
# description: "The total latency distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_total_duration_seconds_sum
etcd_debugging_snap_save_total_duration_seconds_count
# name: "etcd_debugging_store_expires_total"
# description: "Total number of expired keys."
# type: "counter"
etcd_debugging_store_expires_total
# name: "etcd_debugging_store_reads_total"
# description: "Total number of reads action by (get/getRecursive), local to this member."
# type: "counter"
etcd_debugging_store_reads_total{action="getRecursive"}
# name: "etcd_debugging_store_watch_requests_total"
# description: "Total number of incoming watch requests (new or reestablished)."
# type: "counter"
etcd_debugging_store_watch_requests_total
# name: "etcd_debugging_store_watchers"
# description: "Count of currently active watchers."
# type: "gauge"
etcd_debugging_store_watchers
# name: "etcd_debugging_store_writes_total"
# description: "Total number of writes (e.g. set/compareAndDelete) seen by this member."
# type: "counter"
etcd_debugging_store_writes_total{action="create"}
etcd_debugging_store_writes_total{action="set"}
# name: "etcd_disk_backend_commit_duration_seconds"
# description: "The latency distributions of commit called by backend."
# type: "histogram"
etcd_disk_backend_commit_duration_seconds_bucket{le="0.001"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.002"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.004"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.008"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.016"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.032"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.064"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.128"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.256"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.512"}
etcd_disk_backend_commit_duration_seconds_bucket{le="1.024"}
etcd_disk_backend_commit_duration_seconds_bucket{le="2.048"}
etcd_disk_backend_commit_duration_seconds_bucket{le="4.096"}
etcd_disk_backend_commit_duration_seconds_bucket{le="8.192"}
etcd_disk_backend_commit_duration_seconds_bucket{le="+Inf"}
etcd_disk_backend_commit_duration_seconds_sum
etcd_disk_backend_commit_duration_seconds_count
# name: "etcd_disk_wal_fsync_duration_seconds"
# description: "The latency distributions of fsync called by wal."
# type: "histogram"
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.001"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.002"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.004"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.008"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.016"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.032"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.064"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.128"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.256"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.512"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="1.024"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="2.048"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="4.096"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="8.192"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="+Inf"}
etcd_disk_wal_fsync_duration_seconds_sum
etcd_disk_wal_fsync_duration_seconds_count
# name: "etcd_grpc_proxy_cache_hits_total"
# description: "Total number of cache hits"
# type: "gauge"
etcd_grpc_proxy_cache_hits_total
# name: "etcd_grpc_proxy_cache_misses_total"
# description: "Total number of cache misses"
# type: "gauge"
etcd_grpc_proxy_cache_misses_total
# name: "etcd_grpc_proxy_events_coalescing_total"
# description: "Total number of events coalescing"
# type: "counter"
etcd_grpc_proxy_events_coalescing_total
# name: "etcd_grpc_proxy_watchers_coalescing_total"
# description: "Total number of current watchers coalescing"
# type: "gauge"
etcd_grpc_proxy_watchers_coalescing_total
# name: "etcd_network_client_grpc_received_bytes_total"
# description: "The total number of bytes received from grpc clients."
# type: "counter"
etcd_network_client_grpc_received_bytes_total
# name: "etcd_network_client_grpc_sent_bytes_total"
# description: "The total number of bytes sent to grpc clients."
# type: "counter"
etcd_network_client_grpc_sent_bytes_total
# name: "etcd_network_peer_received_bytes_total"
# description: "The total number of bytes received from peers."
# type: "counter"
etcd_network_peer_received_bytes_total{From="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_round_trip_time_seconds"
# description: "Round-Trip-Time histogram between peers."
# type: "histogram"
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="+Inf"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0001"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0002"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0004"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0008"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0016"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0032"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0064"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0128"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0256"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0512"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.1024"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.2048"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.4096"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.8192"}
etcd_network_peer_round_trip_time_seconds_count{To="REMOTE_PEER_NODE_ID"}
etcd_network_peer_round_trip_time_seconds_sum{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_sent_bytes_total"
# description: "The total number of bytes sent to peers."
# type: "counter"
etcd_network_peer_sent_bytes_total{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_server_has_leader"
# description: "Whether or not a leader exists. 1 is existence, 0 is not."
# type: "gauge"
etcd_server_has_leader
# name: "etcd_server_is_leader"
# description: "Whether or not this member is a leader. 1 if is, 0 otherwise."
# type: "gauge"
etcd_server_is_leader
# name: "etcd_server_leader_changes_seen_total"
# description: "The number of leader changes seen."
# type: "counter"
etcd_server_leader_changes_seen_total
# name: "etcd_server_proposals_applied_total"
# description: "The total number of consensus proposals applied."
# type: "gauge"
etcd_server_proposals_applied_total
# name: "etcd_server_proposals_committed_total"
# description: "The total number of consensus proposals committed."
# type: "gauge"
etcd_server_proposals_committed_total
# name: "etcd_server_proposals_failed_total"
# description: "The total number of failed proposals seen."
# type: "counter"
etcd_server_proposals_failed_total
# name: "etcd_server_proposals_pending"
# description: "The current number of pending proposals to commit."
# type: "gauge"
etcd_server_proposals_pending
# name: "go_gc_duration_seconds"
# description: "A summary of the GC invocation durations."
# type: "summary"
go_gc_duration_seconds{quantile="0"}
go_gc_duration_seconds{quantile="0.25"}
go_gc_duration_seconds{quantile="0.5"}
go_gc_duration_seconds{quantile="0.75"}
go_gc_duration_seconds{quantile="1"}
go_gc_duration_seconds_sum
go_gc_duration_seconds_count
# name: "go_goroutines"
# description: "Number of goroutines that currently exist."
# type: "gauge"
go_goroutines
# name: "go_memstats_alloc_bytes"
# description: "Number of bytes allocated and still in use."
# type: "gauge"
go_memstats_alloc_bytes
# name: "go_memstats_alloc_bytes_total"
# description: "Total number of bytes allocated, even if freed."
# type: "counter"
go_memstats_alloc_bytes_total
# name: "go_memstats_buck_hash_sys_bytes"
# description: "Number of bytes used by the profiling bucket hash table."
# type: "gauge"
go_memstats_buck_hash_sys_bytes
# name: "go_memstats_frees_total"
# description: "Total number of frees."
# type: "counter"
go_memstats_frees_total
# name: "go_memstats_gc_sys_bytes"
# description: "Number of bytes used for garbage collection system metadata."
# type: "gauge"
go_memstats_gc_sys_bytes
# name: "go_memstats_heap_alloc_bytes"
# description: "Number of heap bytes allocated and still in use."
# type: "gauge"
go_memstats_heap_alloc_bytes
# name: "go_memstats_heap_idle_bytes"
# description: "Number of heap bytes waiting to be used."
# type: "gauge"
go_memstats_heap_idle_bytes
# name: "go_memstats_heap_inuse_bytes"
# description: "Number of heap bytes that are in use."
# type: "gauge"
go_memstats_heap_inuse_bytes
# name: "go_memstats_heap_objects"
# description: "Number of allocated objects."
# type: "gauge"
go_memstats_heap_objects
# name: "go_memstats_heap_released_bytes_total"
# description: "Total number of heap bytes released to OS."
# type: "counter"
go_memstats_heap_released_bytes_total
# name: "go_memstats_heap_sys_bytes"
# description: "Number of heap bytes obtained from system."
# type: "gauge"
go_memstats_heap_sys_bytes
# name: "go_memstats_last_gc_time_seconds"
# description: "Number of seconds since 1970 of last garbage collection."
# type: "gauge"
go_memstats_last_gc_time_seconds
# name: "go_memstats_lookups_total"
# description: "Total number of pointer lookups."
# type: "counter"
go_memstats_lookups_total
# name: "go_memstats_mallocs_total"
# description: "Total number of mallocs."
# type: "counter"
go_memstats_mallocs_total
# name: "go_memstats_mcache_inuse_bytes"
# description: "Number of bytes in use by mcache structures."
# type: "gauge"
go_memstats_mcache_inuse_bytes
# name: "go_memstats_mcache_sys_bytes"
# description: "Number of bytes used for mcache structures obtained from system."
# type: "gauge"
go_memstats_mcache_sys_bytes
# name: "go_memstats_mspan_inuse_bytes"
# description: "Number of bytes in use by mspan structures."
# type: "gauge"
go_memstats_mspan_inuse_bytes
# name: "go_memstats_mspan_sys_bytes"
# description: "Number of bytes used for mspan structures obtained from system."
# type: "gauge"
go_memstats_mspan_sys_bytes
# name: "go_memstats_next_gc_bytes"
# description: "Number of heap bytes when next garbage collection will take place."
# type: "gauge"
go_memstats_next_gc_bytes
# name: "go_memstats_other_sys_bytes"
# description: "Number of bytes used for other system allocations."
# type: "gauge"
go_memstats_other_sys_bytes
# name: "go_memstats_stack_inuse_bytes"
# description: "Number of bytes in use by the stack allocator."
# type: "gauge"
go_memstats_stack_inuse_bytes
# name: "go_memstats_stack_sys_bytes"
# description: "Number of bytes obtained from system for stack allocator."
# type: "gauge"
go_memstats_stack_sys_bytes
# name: "go_memstats_sys_bytes"
# description: "Number of bytes obtained by system. Sum of all system allocations."
# type: "gauge"
go_memstats_sys_bytes
# name: "grpc_server_handled_total"
# description: "Total number of RPCs completed on the server, regardless of success or failure."
# type: "counter"
# gRPC codes:
# - "Canceled"
# - "OK"
grpc_server_handled_total{grpc_code="CODE",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_received_total"
# description: "Total number of RPC stream messages received on the server."
# type: "counter"
grpc_server_msg_received_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_sent_total"
# description: "Total number of gRPC stream messages sent by the server."
# type: "counter"
grpc_server_msg_sent_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_started_total"
# description: "Total number of RPCs started on the server."
# type: "counter"
grpc_server_started_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "http_request_duration_microseconds"
# description: "The HTTP request latencies in microseconds."
# type: "summary"
http_request_duration_microseconds{handler="prometheus",quantile="0.5"}
http_request_duration_microseconds{handler="prometheus",quantile="0.9"}
http_request_duration_microseconds{handler="prometheus",quantile="0.99"}
http_request_duration_microseconds_sum{handler="prometheus"}
http_request_duration_microseconds_count{handler="prometheus"}
# name: "http_request_size_bytes"
# description: "The HTTP request sizes in bytes."
# type: "summary"
http_request_size_bytes{handler="prometheus",quantile="0.5"}
http_request_size_bytes{handler="prometheus",quantile="0.9"}
http_request_size_bytes{handler="prometheus",quantile="0.99"}
http_request_size_bytes_sum{handler="prometheus"}
http_request_size_bytes_count{handler="prometheus"}
# name: "http_response_size_bytes"
# description: "The HTTP response sizes in bytes."
# type: "summary"
http_response_size_bytes{handler="prometheus",quantile="0.5"}
http_response_size_bytes{handler="prometheus",quantile="0.9"}
http_response_size_bytes{handler="prometheus",quantile="0.99"}
http_response_size_bytes_sum{handler="prometheus"}
http_response_size_bytes_count{handler="prometheus"}

View File

@ -0,0 +1,521 @@
# server version: etcd_server_version{server_version="3.1.18"}
# name: "etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of db compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2048"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4096"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_compaction_total_duration_milliseconds"
# description: "Bucketed histogram of db compaction total duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="100"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="1600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="3200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="6400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="12800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="25600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="51200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="102400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="204800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="409600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="819200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_total_size_in_bytes"
# description: "Total size of the underlying database in bytes."
# type: "gauge"
etcd_debugging_mvcc_db_total_size_in_bytes
# name: "etcd_debugging_mvcc_delete_total"
# description: "Total number of deletes seen by this member."
# type: "counter"
etcd_debugging_mvcc_delete_total
# name: "etcd_debugging_mvcc_events_total"
# description: "Total number of events sent by this member."
# type: "counter"
etcd_debugging_mvcc_events_total
# name: "etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of index compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="0.5"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_keys_total"
# description: "Total number of keys."
# type: "gauge"
etcd_debugging_mvcc_keys_total
# name: "etcd_debugging_mvcc_pending_events_total"
# description: "Total number of pending events to be sent."
# type: "gauge"
etcd_debugging_mvcc_pending_events_total
# name: "etcd_debugging_mvcc_put_total"
# description: "Total number of puts seen by this member."
# type: "counter"
etcd_debugging_mvcc_put_total
# name: "etcd_debugging_mvcc_range_total"
# description: "Total number of ranges seen by this member."
# type: "counter"
etcd_debugging_mvcc_range_total
# name: "etcd_debugging_mvcc_slow_watcher_total"
# description: "Total number of unsynced slow watchers."
# type: "gauge"
etcd_debugging_mvcc_slow_watcher_total
# name: "etcd_debugging_mvcc_txn_total"
# description: "Total number of txns seen by this member."
# type: "counter"
etcd_debugging_mvcc_txn_total
# name: "etcd_debugging_mvcc_watch_stream_total"
# description: "Total number of watch streams."
# type: "gauge"
etcd_debugging_mvcc_watch_stream_total
# name: "etcd_debugging_mvcc_watcher_total"
# description: "Total number of watchers."
# type: "gauge"
etcd_debugging_mvcc_watcher_total
# name: "etcd_debugging_snap_save_marshalling_duration_seconds"
# description: "The marshalling cost distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_marshalling_duration_seconds_sum
etcd_debugging_snap_save_marshalling_duration_seconds_count
# name: "etcd_debugging_snap_save_total_duration_seconds"
# description: "The total latency distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_total_duration_seconds_sum
etcd_debugging_snap_save_total_duration_seconds_count
# name: "etcd_debugging_store_expires_total"
# description: "Total number of expired keys."
# type: "counter"
etcd_debugging_store_expires_total
# name: "etcd_debugging_store_reads_total"
# description: "Total number of reads action by (get/getRecursive), local to this member."
# type: "counter"
etcd_debugging_store_reads_total{action="getRecursive"}
# name: "etcd_debugging_store_watch_requests_total"
# description: "Total number of incoming watch requests (new or reestablished)."
# type: "counter"
etcd_debugging_store_watch_requests_total
# name: "etcd_debugging_store_watchers"
# description: "Count of currently active watchers."
# type: "gauge"
etcd_debugging_store_watchers
# name: "etcd_debugging_store_writes_total"
# description: "Total number of writes (e.g. set/compareAndDelete) seen by this member."
# type: "counter"
etcd_debugging_store_writes_total{action="create"}
etcd_debugging_store_writes_total{action="set"}
# name: "etcd_disk_backend_commit_duration_seconds"
# description: "The latency distributions of commit called by backend."
# type: "histogram"
etcd_disk_backend_commit_duration_seconds_bucket{le="0.001"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.002"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.004"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.008"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.016"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.032"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.064"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.128"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.256"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.512"}
etcd_disk_backend_commit_duration_seconds_bucket{le="1.024"}
etcd_disk_backend_commit_duration_seconds_bucket{le="2.048"}
etcd_disk_backend_commit_duration_seconds_bucket{le="4.096"}
etcd_disk_backend_commit_duration_seconds_bucket{le="8.192"}
etcd_disk_backend_commit_duration_seconds_bucket{le="+Inf"}
etcd_disk_backend_commit_duration_seconds_sum
etcd_disk_backend_commit_duration_seconds_count
# name: "etcd_disk_wal_fsync_duration_seconds"
# description: "The latency distributions of fsync called by wal."
# type: "histogram"
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.001"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.002"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.004"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.008"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.016"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.032"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.064"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.128"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.256"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.512"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="1.024"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="2.048"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="4.096"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="8.192"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="+Inf"}
etcd_disk_wal_fsync_duration_seconds_sum
etcd_disk_wal_fsync_duration_seconds_count
# name: "etcd_grpc_proxy_cache_hits_total"
# description: "Total number of cache hits"
# type: "gauge"
etcd_grpc_proxy_cache_hits_total
# name: "etcd_grpc_proxy_cache_misses_total"
# description: "Total number of cache misses"
# type: "gauge"
etcd_grpc_proxy_cache_misses_total
# name: "etcd_grpc_proxy_events_coalescing_total"
# description: "Total number of events coalescing"
# type: "counter"
etcd_grpc_proxy_events_coalescing_total
# name: "etcd_grpc_proxy_watchers_coalescing_total"
# description: "Total number of current watchers coalescing"
# type: "gauge"
etcd_grpc_proxy_watchers_coalescing_total
# name: "etcd_network_client_grpc_received_bytes_total"
# description: "The total number of bytes received from grpc clients."
# type: "counter"
etcd_network_client_grpc_received_bytes_total
# name: "etcd_network_client_grpc_sent_bytes_total"
# description: "The total number of bytes sent to grpc clients."
# type: "counter"
etcd_network_client_grpc_sent_bytes_total
# name: "etcd_network_peer_received_bytes_total"
# description: "The total number of bytes received from peers."
# type: "counter"
etcd_network_peer_received_bytes_total{From="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_round_trip_time_seconds"
# description: "Round-Trip-Time histogram between peers."
# type: "histogram"
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="+Inf"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0001"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0002"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0004"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0008"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0016"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0032"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0064"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0128"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0256"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0512"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.1024"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.2048"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.4096"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.8192"}
etcd_network_peer_round_trip_time_seconds_count{To="REMOTE_PEER_NODE_ID"}
etcd_network_peer_round_trip_time_seconds_sum{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_sent_bytes_total"
# description: "The total number of bytes sent to peers."
# type: "counter"
etcd_network_peer_sent_bytes_total{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_server_has_leader"
# description: "Whether or not a leader exists. 1 is existence, 0 is not."
# type: "gauge"
etcd_server_has_leader
# name: "etcd_server_is_leader"
# description: "Whether or not this member is a leader. 1 if is, 0 otherwise."
# type: "gauge"
etcd_server_is_leader
# name: "etcd_server_leader_changes_seen_total"
# description: "The number of leader changes seen."
# type: "counter"
etcd_server_leader_changes_seen_total
# name: "etcd_server_proposals_applied_total"
# description: "The total number of consensus proposals applied."
# type: "gauge"
etcd_server_proposals_applied_total
# name: "etcd_server_proposals_committed_total"
# description: "The total number of consensus proposals committed."
# type: "gauge"
etcd_server_proposals_committed_total
# name: "etcd_server_proposals_failed_total"
# description: "The total number of failed proposals seen."
# type: "counter"
etcd_server_proposals_failed_total
# name: "etcd_server_proposals_pending"
# description: "The current number of pending proposals to commit."
# type: "gauge"
etcd_server_proposals_pending
# name: "etcd_server_version"
# description: "Which version is running. 1 for 'server_version' label with current version."
# type: "gauge"
etcd_server_version{server_version="3.1.18"}
# name: "go_gc_duration_seconds"
# description: "A summary of the GC invocation durations."
# type: "summary"
go_gc_duration_seconds{quantile="0"}
go_gc_duration_seconds{quantile="0.25"}
go_gc_duration_seconds{quantile="0.5"}
go_gc_duration_seconds{quantile="0.75"}
go_gc_duration_seconds{quantile="1"}
go_gc_duration_seconds_sum
go_gc_duration_seconds_count
# name: "go_goroutines"
# description: "Number of goroutines that currently exist."
# type: "gauge"
go_goroutines
# name: "go_memstats_alloc_bytes"
# description: "Number of bytes allocated and still in use."
# type: "gauge"
go_memstats_alloc_bytes
# name: "go_memstats_alloc_bytes_total"
# description: "Total number of bytes allocated, even if freed."
# type: "counter"
go_memstats_alloc_bytes_total
# name: "go_memstats_buck_hash_sys_bytes"
# description: "Number of bytes used by the profiling bucket hash table."
# type: "gauge"
go_memstats_buck_hash_sys_bytes
# name: "go_memstats_frees_total"
# description: "Total number of frees."
# type: "counter"
go_memstats_frees_total
# name: "go_memstats_gc_sys_bytes"
# description: "Number of bytes used for garbage collection system metadata."
# type: "gauge"
go_memstats_gc_sys_bytes
# name: "go_memstats_heap_alloc_bytes"
# description: "Number of heap bytes allocated and still in use."
# type: "gauge"
go_memstats_heap_alloc_bytes
# name: "go_memstats_heap_idle_bytes"
# description: "Number of heap bytes waiting to be used."
# type: "gauge"
go_memstats_heap_idle_bytes
# name: "go_memstats_heap_inuse_bytes"
# description: "Number of heap bytes that are in use."
# type: "gauge"
go_memstats_heap_inuse_bytes
# name: "go_memstats_heap_objects"
# description: "Number of allocated objects."
# type: "gauge"
go_memstats_heap_objects
# name: "go_memstats_heap_released_bytes_total"
# description: "Total number of heap bytes released to OS."
# type: "counter"
go_memstats_heap_released_bytes_total
# name: "go_memstats_heap_sys_bytes"
# description: "Number of heap bytes obtained from system."
# type: "gauge"
go_memstats_heap_sys_bytes
# name: "go_memstats_last_gc_time_seconds"
# description: "Number of seconds since 1970 of last garbage collection."
# type: "gauge"
go_memstats_last_gc_time_seconds
# name: "go_memstats_lookups_total"
# description: "Total number of pointer lookups."
# type: "counter"
go_memstats_lookups_total
# name: "go_memstats_mallocs_total"
# description: "Total number of mallocs."
# type: "counter"
go_memstats_mallocs_total
# name: "go_memstats_mcache_inuse_bytes"
# description: "Number of bytes in use by mcache structures."
# type: "gauge"
go_memstats_mcache_inuse_bytes
# name: "go_memstats_mcache_sys_bytes"
# description: "Number of bytes used for mcache structures obtained from system."
# type: "gauge"
go_memstats_mcache_sys_bytes
# name: "go_memstats_mspan_inuse_bytes"
# description: "Number of bytes in use by mspan structures."
# type: "gauge"
go_memstats_mspan_inuse_bytes
# name: "go_memstats_mspan_sys_bytes"
# description: "Number of bytes used for mspan structures obtained from system."
# type: "gauge"
go_memstats_mspan_sys_bytes
# name: "go_memstats_next_gc_bytes"
# description: "Number of heap bytes when next garbage collection will take place."
# type: "gauge"
go_memstats_next_gc_bytes
# name: "go_memstats_other_sys_bytes"
# description: "Number of bytes used for other system allocations."
# type: "gauge"
go_memstats_other_sys_bytes
# name: "go_memstats_stack_inuse_bytes"
# description: "Number of bytes in use by the stack allocator."
# type: "gauge"
go_memstats_stack_inuse_bytes
# name: "go_memstats_stack_sys_bytes"
# description: "Number of bytes obtained from system for stack allocator."
# type: "gauge"
go_memstats_stack_sys_bytes
# name: "go_memstats_sys_bytes"
# description: "Number of bytes obtained by system. Sum of all system allocations."
# type: "gauge"
go_memstats_sys_bytes
# name: "grpc_server_handled_total"
# description: "Total number of RPCs completed on the server, regardless of success or failure."
# type: "counter"
# gRPC codes:
# - "OK"
# - "Unavailable"
grpc_server_handled_total{grpc_code="CODE",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_received_total"
# description: "Total number of RPC stream messages received on the server."
# type: "counter"
grpc_server_msg_received_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_sent_total"
# description: "Total number of gRPC stream messages sent by the server."
# type: "counter"
grpc_server_msg_sent_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_started_total"
# description: "Total number of RPCs started on the server."
# type: "counter"
grpc_server_started_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "http_request_duration_microseconds"
# description: "The HTTP request latencies in microseconds."
# type: "summary"
http_request_duration_microseconds{handler="prometheus",quantile="0.5"}
http_request_duration_microseconds{handler="prometheus",quantile="0.9"}
http_request_duration_microseconds{handler="prometheus",quantile="0.99"}
http_request_duration_microseconds_sum{handler="prometheus"}
http_request_duration_microseconds_count{handler="prometheus"}
# name: "http_request_size_bytes"
# description: "The HTTP request sizes in bytes."
# type: "summary"
http_request_size_bytes{handler="prometheus",quantile="0.5"}
http_request_size_bytes{handler="prometheus",quantile="0.9"}
http_request_size_bytes{handler="prometheus",quantile="0.99"}
http_request_size_bytes_sum{handler="prometheus"}
http_request_size_bytes_count{handler="prometheus"}
# name: "http_response_size_bytes"
# description: "The HTTP response sizes in bytes."
# type: "summary"
http_response_size_bytes{handler="prometheus",quantile="0.5"}
http_response_size_bytes{handler="prometheus",quantile="0.9"}
http_response_size_bytes{handler="prometheus",quantile="0.99"}
http_response_size_bytes_sum{handler="prometheus"}
http_response_size_bytes_count{handler="prometheus"}

View File

@ -0,0 +1,598 @@
# server version: etcd_server_version{server_version="3.1.19"}
# name: "etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of db compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2048"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4096"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_compaction_total_duration_milliseconds"
# description: "Bucketed histogram of db compaction total duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="100"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="1600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="3200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="6400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="12800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="25600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="51200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="102400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="204800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="409600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="819200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_total_size_in_bytes"
# description: "Total size of the underlying database physically allocated in bytes. Use etcd_mvcc_db_total_size_in_bytes"
# type: "gauge"
etcd_debugging_mvcc_db_total_size_in_bytes
# name: "etcd_debugging_mvcc_delete_total"
# description: "Total number of deletes seen by this member."
# type: "counter"
etcd_debugging_mvcc_delete_total
# name: "etcd_debugging_mvcc_events_total"
# description: "Total number of events sent by this member."
# type: "counter"
etcd_debugging_mvcc_events_total
# name: "etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of index compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="0.5"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_keys_total"
# description: "Total number of keys."
# type: "gauge"
etcd_debugging_mvcc_keys_total
# name: "etcd_debugging_mvcc_pending_events_total"
# description: "Total number of pending events to be sent."
# type: "gauge"
etcd_debugging_mvcc_pending_events_total
# name: "etcd_debugging_mvcc_put_total"
# description: "Total number of puts seen by this member."
# type: "counter"
etcd_debugging_mvcc_put_total
# name: "etcd_debugging_mvcc_range_total"
# description: "Total number of ranges seen by this member."
# type: "counter"
etcd_debugging_mvcc_range_total
# name: "etcd_debugging_mvcc_slow_watcher_total"
# description: "Total number of unsynced slow watchers."
# type: "gauge"
etcd_debugging_mvcc_slow_watcher_total
# name: "etcd_debugging_mvcc_txn_total"
# description: "Total number of txns seen by this member."
# type: "counter"
etcd_debugging_mvcc_txn_total
# name: "etcd_debugging_mvcc_watch_stream_total"
# description: "Total number of watch streams."
# type: "gauge"
etcd_debugging_mvcc_watch_stream_total
# name: "etcd_debugging_mvcc_watcher_total"
# description: "Total number of watchers."
# type: "gauge"
etcd_debugging_mvcc_watcher_total
# name: "etcd_debugging_snap_save_marshalling_duration_seconds"
# description: "The marshalling cost distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_marshalling_duration_seconds_sum
etcd_debugging_snap_save_marshalling_duration_seconds_count
# name: "etcd_debugging_snap_save_total_duration_seconds"
# description: "The total latency distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_total_duration_seconds_sum
etcd_debugging_snap_save_total_duration_seconds_count
# name: "etcd_debugging_store_expires_total"
# description: "Total number of expired keys."
# type: "counter"
etcd_debugging_store_expires_total
# name: "etcd_debugging_store_reads_total"
# description: "Total number of reads action by (get/getRecursive), local to this member."
# type: "counter"
etcd_debugging_store_reads_total{action="getRecursive"}
# name: "etcd_debugging_store_watch_requests_total"
# description: "Total number of incoming watch requests (new or reestablished)."
# type: "counter"
etcd_debugging_store_watch_requests_total
# name: "etcd_debugging_store_watchers"
# description: "Count of currently active watchers."
# type: "gauge"
etcd_debugging_store_watchers
# name: "etcd_debugging_store_writes_total"
# description: "Total number of writes (e.g. set/compareAndDelete) seen by this member."
# type: "counter"
etcd_debugging_store_writes_total{action="create"}
etcd_debugging_store_writes_total{action="set"}
# name: "etcd_disk_backend_commit_duration_seconds"
# description: "The latency distributions of commit called by backend."
# type: "histogram"
etcd_disk_backend_commit_duration_seconds_bucket{le="0.001"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.002"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.004"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.008"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.016"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.032"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.064"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.128"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.256"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.512"}
etcd_disk_backend_commit_duration_seconds_bucket{le="1.024"}
etcd_disk_backend_commit_duration_seconds_bucket{le="2.048"}
etcd_disk_backend_commit_duration_seconds_bucket{le="4.096"}
etcd_disk_backend_commit_duration_seconds_bucket{le="8.192"}
etcd_disk_backend_commit_duration_seconds_bucket{le="+Inf"}
etcd_disk_backend_commit_duration_seconds_sum
etcd_disk_backend_commit_duration_seconds_count
# name: "etcd_disk_backend_defrag_duration_seconds"
# description: "The latency distribution of backend defragmentation."
# type: "histogram"
etcd_disk_backend_defrag_duration_seconds_bucket{le="0.1"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="0.2"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="0.4"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="0.8"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="1.6"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="3.2"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="6.4"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="12.8"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="25.6"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="51.2"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="102.4"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="204.8"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="409.6"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="+Inf"}
etcd_disk_backend_defrag_duration_seconds_sum
etcd_disk_backend_defrag_duration_seconds_count
# name: "etcd_disk_wal_fsync_duration_seconds"
# description: "The latency distributions of fsync called by wal."
# type: "histogram"
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.001"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.002"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.004"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.008"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.016"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.032"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.064"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.128"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.256"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.512"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="1.024"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="2.048"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="4.096"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="8.192"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="+Inf"}
etcd_disk_wal_fsync_duration_seconds_sum
etcd_disk_wal_fsync_duration_seconds_count
# name: "etcd_grpc_proxy_cache_hits_total"
# description: "Total number of cache hits"
# type: "gauge"
etcd_grpc_proxy_cache_hits_total
# name: "etcd_grpc_proxy_cache_misses_total"
# description: "Total number of cache misses"
# type: "gauge"
etcd_grpc_proxy_cache_misses_total
# name: "etcd_grpc_proxy_events_coalescing_total"
# description: "Total number of events coalescing"
# type: "counter"
etcd_grpc_proxy_events_coalescing_total
# name: "etcd_grpc_proxy_watchers_coalescing_total"
# description: "Total number of current watchers coalescing"
# type: "gauge"
etcd_grpc_proxy_watchers_coalescing_total
# name: "etcd_mvcc_db_total_size_in_bytes"
# description: "Total size of the underlying database physically allocated in bytes."
# type: "gauge"
etcd_mvcc_db_total_size_in_bytes
# name: "etcd_mvcc_db_total_size_in_use_in_bytes"
# description: "Total size of the underlying database logically in use in bytes."
# type: "gauge"
etcd_mvcc_db_total_size_in_use_in_bytes
# name: "etcd_mvcc_hash_duration_seconds"
# description: "The latency distribution of storage hash operation."
# type: "histogram"
etcd_mvcc_hash_duration_seconds_bucket{le="0.01"}
etcd_mvcc_hash_duration_seconds_bucket{le="0.02"}
etcd_mvcc_hash_duration_seconds_bucket{le="0.04"}
etcd_mvcc_hash_duration_seconds_bucket{le="0.08"}
etcd_mvcc_hash_duration_seconds_bucket{le="0.16"}
etcd_mvcc_hash_duration_seconds_bucket{le="0.32"}
etcd_mvcc_hash_duration_seconds_bucket{le="0.64"}
etcd_mvcc_hash_duration_seconds_bucket{le="1.28"}
etcd_mvcc_hash_duration_seconds_bucket{le="2.56"}
etcd_mvcc_hash_duration_seconds_bucket{le="5.12"}
etcd_mvcc_hash_duration_seconds_bucket{le="10.24"}
etcd_mvcc_hash_duration_seconds_bucket{le="20.48"}
etcd_mvcc_hash_duration_seconds_bucket{le="40.96"}
etcd_mvcc_hash_duration_seconds_bucket{le="81.92"}
etcd_mvcc_hash_duration_seconds_bucket{le="163.84"}
etcd_mvcc_hash_duration_seconds_bucket{le="+Inf"}
etcd_mvcc_hash_duration_seconds_sum
etcd_mvcc_hash_duration_seconds_count
# name: "etcd_network_client_grpc_received_bytes_total"
# description: "The total number of bytes received from grpc clients."
# type: "counter"
etcd_network_client_grpc_received_bytes_total
# name: "etcd_network_client_grpc_sent_bytes_total"
# description: "The total number of bytes sent to grpc clients."
# type: "counter"
etcd_network_client_grpc_sent_bytes_total
# name: "etcd_network_peer_received_bytes_total"
# description: "The total number of bytes received from peers."
# type: "counter"
etcd_network_peer_received_bytes_total{From="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_round_trip_time_seconds"
# description: "Round-Trip-Time histogram between peers."
# type: "histogram"
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="+Inf"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0001"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0002"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0004"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0008"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0016"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0032"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0064"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0128"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0256"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0512"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.1024"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.2048"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.4096"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.8192"}
etcd_network_peer_round_trip_time_seconds_count{To="REMOTE_PEER_NODE_ID"}
etcd_network_peer_round_trip_time_seconds_sum{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_sent_bytes_total"
# description: "The total number of bytes sent to peers."
# type: "counter"
etcd_network_peer_sent_bytes_total{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_server_go_version"
# description: "Which Go version server is running with. 1 for 'server_go_version' label with current version."
# type: "gauge"
etcd_server_go_version{server_go_version="go1.8.7"}
# name: "etcd_server_has_leader"
# description: "Whether or not a leader exists. 1 is existence, 0 is not."
# type: "gauge"
etcd_server_has_leader
# name: "etcd_server_heartbeat_send_failures_total"
# description: "The total number of leader heartbeat send failures (likely overloaded from slow disk)."
# type: "counter"
etcd_server_heartbeat_send_failures_total
# name: "etcd_server_is_leader"
# description: "Whether or not this member is a leader. 1 if is, 0 otherwise."
# type: "gauge"
etcd_server_is_leader
# name: "etcd_server_leader_changes_seen_total"
# description: "The number of leader changes seen."
# type: "counter"
etcd_server_leader_changes_seen_total
# name: "etcd_server_proposals_applied_total"
# description: "The total number of consensus proposals applied."
# type: "gauge"
etcd_server_proposals_applied_total
# name: "etcd_server_proposals_committed_total"
# description: "The total number of consensus proposals committed."
# type: "gauge"
etcd_server_proposals_committed_total
# name: "etcd_server_proposals_failed_total"
# description: "The total number of failed proposals seen."
# type: "counter"
etcd_server_proposals_failed_total
# name: "etcd_server_proposals_pending"
# description: "The current number of pending proposals to commit."
# type: "gauge"
etcd_server_proposals_pending
# name: "etcd_server_quota_backend_bytes"
# description: "Current backend storage quota size in bytes."
# type: "gauge"
etcd_server_quota_backend_bytes
# name: "etcd_server_slow_apply_total"
# description: "The total number of slow apply requests (likely overloaded from slow disk)."
# type: "counter"
etcd_server_slow_apply_total
# name: "etcd_server_slow_read_indexes_total"
# description: "The total number of pending read indexes not in sync with leader's or timed out read index requests."
# type: "counter"
etcd_server_slow_read_indexes_total
# name: "etcd_server_version"
# description: "Which version is running. 1 for 'server_version' label with current version."
# type: "gauge"
etcd_server_version{server_version="3.1.19"}
# name: "go_gc_duration_seconds"
# description: "A summary of the GC invocation durations."
# type: "summary"
go_gc_duration_seconds{quantile="0"}
go_gc_duration_seconds{quantile="0.25"}
go_gc_duration_seconds{quantile="0.5"}
go_gc_duration_seconds{quantile="0.75"}
go_gc_duration_seconds{quantile="1"}
go_gc_duration_seconds_sum
go_gc_duration_seconds_count
# name: "go_goroutines"
# description: "Number of goroutines that currently exist."
# type: "gauge"
go_goroutines
# name: "go_memstats_alloc_bytes"
# description: "Number of bytes allocated and still in use."
# type: "gauge"
go_memstats_alloc_bytes
# name: "go_memstats_alloc_bytes_total"
# description: "Total number of bytes allocated, even if freed."
# type: "counter"
go_memstats_alloc_bytes_total
# name: "go_memstats_buck_hash_sys_bytes"
# description: "Number of bytes used by the profiling bucket hash table."
# type: "gauge"
go_memstats_buck_hash_sys_bytes
# name: "go_memstats_frees_total"
# description: "Total number of frees."
# type: "counter"
go_memstats_frees_total
# name: "go_memstats_gc_sys_bytes"
# description: "Number of bytes used for garbage collection system metadata."
# type: "gauge"
go_memstats_gc_sys_bytes
# name: "go_memstats_heap_alloc_bytes"
# description: "Number of heap bytes allocated and still in use."
# type: "gauge"
go_memstats_heap_alloc_bytes
# name: "go_memstats_heap_idle_bytes"
# description: "Number of heap bytes waiting to be used."
# type: "gauge"
go_memstats_heap_idle_bytes
# name: "go_memstats_heap_inuse_bytes"
# description: "Number of heap bytes that are in use."
# type: "gauge"
go_memstats_heap_inuse_bytes
# name: "go_memstats_heap_objects"
# description: "Number of allocated objects."
# type: "gauge"
go_memstats_heap_objects
# name: "go_memstats_heap_released_bytes_total"
# description: "Total number of heap bytes released to OS."
# type: "counter"
go_memstats_heap_released_bytes_total
# name: "go_memstats_heap_sys_bytes"
# description: "Number of heap bytes obtained from system."
# type: "gauge"
go_memstats_heap_sys_bytes
# name: "go_memstats_last_gc_time_seconds"
# description: "Number of seconds since 1970 of last garbage collection."
# type: "gauge"
go_memstats_last_gc_time_seconds
# name: "go_memstats_lookups_total"
# description: "Total number of pointer lookups."
# type: "counter"
go_memstats_lookups_total
# name: "go_memstats_mallocs_total"
# description: "Total number of mallocs."
# type: "counter"
go_memstats_mallocs_total
# name: "go_memstats_mcache_inuse_bytes"
# description: "Number of bytes in use by mcache structures."
# type: "gauge"
go_memstats_mcache_inuse_bytes
# name: "go_memstats_mcache_sys_bytes"
# description: "Number of bytes used for mcache structures obtained from system."
# type: "gauge"
go_memstats_mcache_sys_bytes
# name: "go_memstats_mspan_inuse_bytes"
# description: "Number of bytes in use by mspan structures."
# type: "gauge"
go_memstats_mspan_inuse_bytes
# name: "go_memstats_mspan_sys_bytes"
# description: "Number of bytes used for mspan structures obtained from system."
# type: "gauge"
go_memstats_mspan_sys_bytes
# name: "go_memstats_next_gc_bytes"
# description: "Number of heap bytes when next garbage collection will take place."
# type: "gauge"
go_memstats_next_gc_bytes
# name: "go_memstats_other_sys_bytes"
# description: "Number of bytes used for other system allocations."
# type: "gauge"
go_memstats_other_sys_bytes
# name: "go_memstats_stack_inuse_bytes"
# description: "Number of bytes in use by the stack allocator."
# type: "gauge"
go_memstats_stack_inuse_bytes
# name: "go_memstats_stack_sys_bytes"
# description: "Number of bytes obtained from system for stack allocator."
# type: "gauge"
go_memstats_stack_sys_bytes
# name: "go_memstats_sys_bytes"
# description: "Number of bytes obtained by system. Sum of all system allocations."
# type: "gauge"
go_memstats_sys_bytes
# name: "grpc_server_handled_total"
# description: "Total number of RPCs completed on the server, regardless of success or failure."
# type: "counter"
# gRPC codes:
# - "OK"
# - "Unavailable"
grpc_server_handled_total{grpc_code="CODE",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_received_total"
# description: "Total number of RPC stream messages received on the server."
# type: "counter"
grpc_server_msg_received_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_sent_total"
# description: "Total number of gRPC stream messages sent by the server."
# type: "counter"
grpc_server_msg_sent_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_started_total"
# description: "Total number of RPCs started on the server."
# type: "counter"
grpc_server_started_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "http_request_duration_microseconds"
# description: "The HTTP request latencies in microseconds."
# type: "summary"
http_request_duration_microseconds{handler="prometheus",quantile="0.5"}
http_request_duration_microseconds{handler="prometheus",quantile="0.9"}
http_request_duration_microseconds{handler="prometheus",quantile="0.99"}
http_request_duration_microseconds_sum{handler="prometheus"}
http_request_duration_microseconds_count{handler="prometheus"}
# name: "http_request_size_bytes"
# description: "The HTTP request sizes in bytes."
# type: "summary"
http_request_size_bytes{handler="prometheus",quantile="0.5"}
http_request_size_bytes{handler="prometheus",quantile="0.9"}
http_request_size_bytes{handler="prometheus",quantile="0.99"}
http_request_size_bytes_sum{handler="prometheus"}
http_request_size_bytes_count{handler="prometheus"}
# name: "http_response_size_bytes"
# description: "The HTTP response sizes in bytes."
# type: "summary"
http_response_size_bytes{handler="prometheus",quantile="0.5"}
http_response_size_bytes{handler="prometheus",quantile="0.9"}
http_response_size_bytes{handler="prometheus",quantile="0.99"}
http_response_size_bytes_sum{handler="prometheus"}
http_response_size_bytes_count{handler="prometheus"}

View File

@ -0,0 +1,511 @@
# server version: unknown
# name: "etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of db compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2048"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4096"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_compaction_total_duration_milliseconds"
# description: "Bucketed histogram of db compaction total duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="100"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="1600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="3200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="6400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="12800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="25600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="51200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="102400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="204800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="409600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="819200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_total_size_in_bytes"
# description: "Total size of the underlying database in bytes."
# type: "gauge"
etcd_debugging_mvcc_db_total_size_in_bytes
# name: "etcd_debugging_mvcc_delete_total"
# description: "Total number of deletes seen by this member."
# type: "counter"
etcd_debugging_mvcc_delete_total
# name: "etcd_debugging_mvcc_events_total"
# description: "Total number of events sent by this member."
# type: "counter"
etcd_debugging_mvcc_events_total
# name: "etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of index compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="0.5"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_keys_total"
# description: "Total number of keys."
# type: "gauge"
etcd_debugging_mvcc_keys_total
# name: "etcd_debugging_mvcc_pending_events_total"
# description: "Total number of pending events to be sent."
# type: "gauge"
etcd_debugging_mvcc_pending_events_total
# name: "etcd_debugging_mvcc_put_total"
# description: "Total number of puts seen by this member."
# type: "counter"
etcd_debugging_mvcc_put_total
# name: "etcd_debugging_mvcc_range_total"
# description: "Total number of ranges seen by this member."
# type: "counter"
etcd_debugging_mvcc_range_total
# name: "etcd_debugging_mvcc_slow_watcher_total"
# description: "Total number of unsynced slow watchers."
# type: "gauge"
etcd_debugging_mvcc_slow_watcher_total
# name: "etcd_debugging_mvcc_txn_total"
# description: "Total number of txns seen by this member."
# type: "counter"
etcd_debugging_mvcc_txn_total
# name: "etcd_debugging_mvcc_watch_stream_total"
# description: "Total number of watch streams."
# type: "gauge"
etcd_debugging_mvcc_watch_stream_total
# name: "etcd_debugging_mvcc_watcher_total"
# description: "Total number of watchers."
# type: "gauge"
etcd_debugging_mvcc_watcher_total
# name: "etcd_debugging_snap_save_marshalling_duration_seconds"
# description: "The marshalling cost distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_marshalling_duration_seconds_sum
etcd_debugging_snap_save_marshalling_duration_seconds_count
# name: "etcd_debugging_snap_save_total_duration_seconds"
# description: "The total latency distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_total_duration_seconds_sum
etcd_debugging_snap_save_total_duration_seconds_count
# name: "etcd_debugging_store_expires_total"
# description: "Total number of expired keys."
# type: "counter"
etcd_debugging_store_expires_total
# name: "etcd_debugging_store_reads_total"
# description: "Total number of reads action by (get/getRecursive), local to this member."
# type: "counter"
etcd_debugging_store_reads_total{action="getRecursive"}
# name: "etcd_debugging_store_watch_requests_total"
# description: "Total number of incoming watch requests (new or reestablished)."
# type: "counter"
etcd_debugging_store_watch_requests_total
# name: "etcd_debugging_store_watchers"
# description: "Count of currently active watchers."
# type: "gauge"
etcd_debugging_store_watchers
# name: "etcd_debugging_store_writes_total"
# description: "Total number of writes (e.g. set/compareAndDelete) seen by this member."
# type: "counter"
etcd_debugging_store_writes_total{action="create"}
etcd_debugging_store_writes_total{action="set"}
# name: "etcd_disk_backend_commit_duration_seconds"
# description: "The latency distributions of commit called by backend."
# type: "histogram"
etcd_disk_backend_commit_duration_seconds_bucket{le="0.001"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.002"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.004"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.008"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.016"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.032"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.064"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.128"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.256"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.512"}
etcd_disk_backend_commit_duration_seconds_bucket{le="1.024"}
etcd_disk_backend_commit_duration_seconds_bucket{le="2.048"}
etcd_disk_backend_commit_duration_seconds_bucket{le="4.096"}
etcd_disk_backend_commit_duration_seconds_bucket{le="8.192"}
etcd_disk_backend_commit_duration_seconds_bucket{le="+Inf"}
etcd_disk_backend_commit_duration_seconds_sum
etcd_disk_backend_commit_duration_seconds_count
# name: "etcd_disk_wal_fsync_duration_seconds"
# description: "The latency distributions of fsync called by wal."
# type: "histogram"
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.001"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.002"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.004"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.008"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.016"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.032"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.064"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.128"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.256"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.512"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="1.024"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="2.048"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="4.096"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="8.192"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="+Inf"}
etcd_disk_wal_fsync_duration_seconds_sum
etcd_disk_wal_fsync_duration_seconds_count
# name: "etcd_grpc_proxy_cache_hits_total"
# description: "Total number of cache hits"
# type: "gauge"
etcd_grpc_proxy_cache_hits_total
# name: "etcd_grpc_proxy_cache_misses_total"
# description: "Total number of cache misses"
# type: "gauge"
etcd_grpc_proxy_cache_misses_total
# name: "etcd_grpc_proxy_events_coalescing_total"
# description: "Total number of events coalescing"
# type: "counter"
etcd_grpc_proxy_events_coalescing_total
# name: "etcd_grpc_proxy_watchers_coalescing_total"
# description: "Total number of current watchers coalescing"
# type: "gauge"
etcd_grpc_proxy_watchers_coalescing_total
# name: "etcd_network_client_grpc_received_bytes_total"
# description: "The total number of bytes received from grpc clients."
# type: "counter"
etcd_network_client_grpc_received_bytes_total
# name: "etcd_network_client_grpc_sent_bytes_total"
# description: "The total number of bytes sent to grpc clients."
# type: "counter"
etcd_network_client_grpc_sent_bytes_total
# name: "etcd_network_peer_received_bytes_total"
# description: "The total number of bytes received from peers."
# type: "counter"
etcd_network_peer_received_bytes_total{From="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_round_trip_time_seconds"
# description: "Round-Trip-Time histogram between peers."
# type: "histogram"
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="+Inf"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0001"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0002"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0004"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0008"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0016"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0032"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0064"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0128"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0256"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0512"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.1024"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.2048"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.4096"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.8192"}
etcd_network_peer_round_trip_time_seconds_count{To="REMOTE_PEER_NODE_ID"}
etcd_network_peer_round_trip_time_seconds_sum{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_sent_bytes_total"
# description: "The total number of bytes sent to peers."
# type: "counter"
etcd_network_peer_sent_bytes_total{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_server_has_leader"
# description: "Whether or not a leader exists. 1 is existence, 0 is not."
# type: "gauge"
etcd_server_has_leader
# name: "etcd_server_leader_changes_seen_total"
# description: "The number of leader changes seen."
# type: "counter"
etcd_server_leader_changes_seen_total
# name: "etcd_server_proposals_applied_total"
# description: "The total number of consensus proposals applied."
# type: "gauge"
etcd_server_proposals_applied_total
# name: "etcd_server_proposals_committed_total"
# description: "The total number of consensus proposals committed."
# type: "gauge"
etcd_server_proposals_committed_total
# name: "etcd_server_proposals_failed_total"
# description: "The total number of failed proposals seen."
# type: "counter"
etcd_server_proposals_failed_total
# name: "etcd_server_proposals_pending"
# description: "The current number of pending proposals to commit."
# type: "gauge"
etcd_server_proposals_pending
# name: "go_gc_duration_seconds"
# description: "A summary of the GC invocation durations."
# type: "summary"
go_gc_duration_seconds{quantile="0"}
go_gc_duration_seconds{quantile="0.25"}
go_gc_duration_seconds{quantile="0.5"}
go_gc_duration_seconds{quantile="0.75"}
go_gc_duration_seconds{quantile="1"}
go_gc_duration_seconds_sum
go_gc_duration_seconds_count
# name: "go_goroutines"
# description: "Number of goroutines that currently exist."
# type: "gauge"
go_goroutines
# name: "go_memstats_alloc_bytes"
# description: "Number of bytes allocated and still in use."
# type: "gauge"
go_memstats_alloc_bytes
# name: "go_memstats_alloc_bytes_total"
# description: "Total number of bytes allocated, even if freed."
# type: "counter"
go_memstats_alloc_bytes_total
# name: "go_memstats_buck_hash_sys_bytes"
# description: "Number of bytes used by the profiling bucket hash table."
# type: "gauge"
go_memstats_buck_hash_sys_bytes
# name: "go_memstats_frees_total"
# description: "Total number of frees."
# type: "counter"
go_memstats_frees_total
# name: "go_memstats_gc_sys_bytes"
# description: "Number of bytes used for garbage collection system metadata."
# type: "gauge"
go_memstats_gc_sys_bytes
# name: "go_memstats_heap_alloc_bytes"
# description: "Number of heap bytes allocated and still in use."
# type: "gauge"
go_memstats_heap_alloc_bytes
# name: "go_memstats_heap_idle_bytes"
# description: "Number of heap bytes waiting to be used."
# type: "gauge"
go_memstats_heap_idle_bytes
# name: "go_memstats_heap_inuse_bytes"
# description: "Number of heap bytes that are in use."
# type: "gauge"
go_memstats_heap_inuse_bytes
# name: "go_memstats_heap_objects"
# description: "Number of allocated objects."
# type: "gauge"
go_memstats_heap_objects
# name: "go_memstats_heap_released_bytes_total"
# description: "Total number of heap bytes released to OS."
# type: "counter"
go_memstats_heap_released_bytes_total
# name: "go_memstats_heap_sys_bytes"
# description: "Number of heap bytes obtained from system."
# type: "gauge"
go_memstats_heap_sys_bytes
# name: "go_memstats_last_gc_time_seconds"
# description: "Number of seconds since 1970 of last garbage collection."
# type: "gauge"
go_memstats_last_gc_time_seconds
# name: "go_memstats_lookups_total"
# description: "Total number of pointer lookups."
# type: "counter"
go_memstats_lookups_total
# name: "go_memstats_mallocs_total"
# description: "Total number of mallocs."
# type: "counter"
go_memstats_mallocs_total
# name: "go_memstats_mcache_inuse_bytes"
# description: "Number of bytes in use by mcache structures."
# type: "gauge"
go_memstats_mcache_inuse_bytes
# name: "go_memstats_mcache_sys_bytes"
# description: "Number of bytes used for mcache structures obtained from system."
# type: "gauge"
go_memstats_mcache_sys_bytes
# name: "go_memstats_mspan_inuse_bytes"
# description: "Number of bytes in use by mspan structures."
# type: "gauge"
go_memstats_mspan_inuse_bytes
# name: "go_memstats_mspan_sys_bytes"
# description: "Number of bytes used for mspan structures obtained from system."
# type: "gauge"
go_memstats_mspan_sys_bytes
# name: "go_memstats_next_gc_bytes"
# description: "Number of heap bytes when next garbage collection will take place."
# type: "gauge"
go_memstats_next_gc_bytes
# name: "go_memstats_other_sys_bytes"
# description: "Number of bytes used for other system allocations."
# type: "gauge"
go_memstats_other_sys_bytes
# name: "go_memstats_stack_inuse_bytes"
# description: "Number of bytes in use by the stack allocator."
# type: "gauge"
go_memstats_stack_inuse_bytes
# name: "go_memstats_stack_sys_bytes"
# description: "Number of bytes obtained from system for stack allocator."
# type: "gauge"
go_memstats_stack_sys_bytes
# name: "go_memstats_sys_bytes"
# description: "Number of bytes obtained by system. Sum of all system allocations."
# type: "gauge"
go_memstats_sys_bytes
# name: "grpc_server_handled_total"
# description: "Total number of RPCs completed on the server, regardless of success or failure."
# type: "counter"
# gRPC codes:
# - "OK"
# - "Unavailable"
grpc_server_handled_total{grpc_code="CODE",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_received_total"
# description: "Total number of RPC stream messages received on the server."
# type: "counter"
grpc_server_msg_received_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_sent_total"
# description: "Total number of gRPC stream messages sent by the server."
# type: "counter"
grpc_server_msg_sent_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_started_total"
# description: "Total number of RPCs started on the server."
# type: "counter"
grpc_server_started_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "http_request_duration_microseconds"
# description: "The HTTP request latencies in microseconds."
# type: "summary"
http_request_duration_microseconds{handler="prometheus",quantile="0.5"}
http_request_duration_microseconds{handler="prometheus",quantile="0.9"}
http_request_duration_microseconds{handler="prometheus",quantile="0.99"}
http_request_duration_microseconds_sum{handler="prometheus"}
http_request_duration_microseconds_count{handler="prometheus"}
# name: "http_request_size_bytes"
# description: "The HTTP request sizes in bytes."
# type: "summary"
http_request_size_bytes{handler="prometheus",quantile="0.5"}
http_request_size_bytes{handler="prometheus",quantile="0.9"}
http_request_size_bytes{handler="prometheus",quantile="0.99"}
http_request_size_bytes_sum{handler="prometheus"}
http_request_size_bytes_count{handler="prometheus"}
# name: "http_response_size_bytes"
# description: "The HTTP response sizes in bytes."
# type: "summary"
http_response_size_bytes{handler="prometheus",quantile="0.5"}
http_response_size_bytes{handler="prometheus",quantile="0.9"}
http_response_size_bytes{handler="prometheus",quantile="0.99"}
http_response_size_bytes_sum{handler="prometheus"}
http_response_size_bytes_count{handler="prometheus"}

View File

@ -0,0 +1,795 @@
# server version: etcd_server_version{server_version="3.1.20"}
# name: "etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of db compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2048"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4096"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_compaction_total_duration_milliseconds"
# description: "Bucketed histogram of db compaction total duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="100"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="1600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="3200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="6400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="12800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="25600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="51200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="102400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="204800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="409600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="819200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_total_size_in_bytes"
# description: "Total size of the underlying database physically allocated in bytes. Use etcd_mvcc_db_total_size_in_bytes"
# type: "gauge"
etcd_debugging_mvcc_db_total_size_in_bytes
# name: "etcd_debugging_mvcc_delete_total"
# description: "Total number of deletes seen by this member."
# type: "counter"
etcd_debugging_mvcc_delete_total
# name: "etcd_debugging_mvcc_events_total"
# description: "Total number of events sent by this member."
# type: "counter"
etcd_debugging_mvcc_events_total
# name: "etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of index compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="0.5"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_keys_total"
# description: "Total number of keys."
# type: "gauge"
etcd_debugging_mvcc_keys_total
# name: "etcd_debugging_mvcc_pending_events_total"
# description: "Total number of pending events to be sent."
# type: "gauge"
etcd_debugging_mvcc_pending_events_total
# name: "etcd_debugging_mvcc_put_total"
# description: "Total number of puts seen by this member."
# type: "counter"
etcd_debugging_mvcc_put_total
# name: "etcd_debugging_mvcc_range_total"
# description: "Total number of ranges seen by this member."
# type: "counter"
etcd_debugging_mvcc_range_total
# name: "etcd_debugging_mvcc_slow_watcher_total"
# description: "Total number of unsynced slow watchers."
# type: "gauge"
etcd_debugging_mvcc_slow_watcher_total
# name: "etcd_debugging_mvcc_txn_total"
# description: "Total number of txns seen by this member."
# type: "counter"
etcd_debugging_mvcc_txn_total
# name: "etcd_debugging_mvcc_watch_stream_total"
# description: "Total number of watch streams."
# type: "gauge"
etcd_debugging_mvcc_watch_stream_total
# name: "etcd_debugging_mvcc_watcher_total"
# description: "Total number of watchers."
# type: "gauge"
etcd_debugging_mvcc_watcher_total
# name: "etcd_debugging_snap_save_marshalling_duration_seconds"
# description: "The marshalling cost distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_marshalling_duration_seconds_sum
etcd_debugging_snap_save_marshalling_duration_seconds_count
# name: "etcd_debugging_snap_save_total_duration_seconds"
# description: "The total latency distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_total_duration_seconds_sum
etcd_debugging_snap_save_total_duration_seconds_count
# name: "etcd_debugging_store_expires_total"
# description: "Total number of expired keys."
# type: "counter"
etcd_debugging_store_expires_total
# name: "etcd_debugging_store_reads_total"
# description: "Total number of reads action by (get/getRecursive), local to this member."
# type: "counter"
etcd_debugging_store_reads_total{action="getRecursive"}
# name: "etcd_debugging_store_watch_requests_total"
# description: "Total number of incoming watch requests (new or reestablished)."
# type: "counter"
etcd_debugging_store_watch_requests_total
# name: "etcd_debugging_store_watchers"
# description: "Count of currently active watchers."
# type: "gauge"
etcd_debugging_store_watchers
# name: "etcd_debugging_store_writes_total"
# description: "Total number of writes (e.g. set/compareAndDelete) seen by this member."
# type: "counter"
etcd_debugging_store_writes_total{action="create"}
etcd_debugging_store_writes_total{action="set"}
# name: "etcd_disk_backend_commit_duration_seconds"
# description: "The latency distributions of commit called by backend."
# type: "histogram"
etcd_disk_backend_commit_duration_seconds_bucket{le="0.001"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.002"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.004"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.008"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.016"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.032"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.064"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.128"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.256"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.512"}
etcd_disk_backend_commit_duration_seconds_bucket{le="1.024"}
etcd_disk_backend_commit_duration_seconds_bucket{le="2.048"}
etcd_disk_backend_commit_duration_seconds_bucket{le="4.096"}
etcd_disk_backend_commit_duration_seconds_bucket{le="8.192"}
etcd_disk_backend_commit_duration_seconds_bucket{le="+Inf"}
etcd_disk_backend_commit_duration_seconds_sum
etcd_disk_backend_commit_duration_seconds_count
# name: "etcd_disk_backend_defrag_duration_seconds"
# description: "The latency distribution of backend defragmentation."
# type: "histogram"
etcd_disk_backend_defrag_duration_seconds_bucket{le="0.1"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="0.2"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="0.4"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="0.8"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="1.6"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="3.2"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="6.4"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="12.8"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="25.6"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="51.2"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="102.4"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="204.8"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="409.6"}
etcd_disk_backend_defrag_duration_seconds_bucket{le="+Inf"}
etcd_disk_backend_defrag_duration_seconds_sum
etcd_disk_backend_defrag_duration_seconds_count
# name: "etcd_disk_wal_fsync_duration_seconds"
# description: "The latency distributions of fsync called by wal."
# type: "histogram"
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.001"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.002"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.004"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.008"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.016"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.032"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.064"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.128"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.256"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.512"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="1.024"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="2.048"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="4.096"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="8.192"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="+Inf"}
etcd_disk_wal_fsync_duration_seconds_sum
etcd_disk_wal_fsync_duration_seconds_count
# name: "etcd_grpc_proxy_cache_hits_total"
# description: "Total number of cache hits"
# type: "gauge"
etcd_grpc_proxy_cache_hits_total
# name: "etcd_grpc_proxy_cache_misses_total"
# description: "Total number of cache misses"
# type: "gauge"
etcd_grpc_proxy_cache_misses_total
# name: "etcd_grpc_proxy_events_coalescing_total"
# description: "Total number of events coalescing"
# type: "counter"
etcd_grpc_proxy_events_coalescing_total
# name: "etcd_grpc_proxy_watchers_coalescing_total"
# description: "Total number of current watchers coalescing"
# type: "gauge"
etcd_grpc_proxy_watchers_coalescing_total
# name: "etcd_mvcc_db_total_size_in_bytes"
# description: "Total size of the underlying database physically allocated in bytes."
# type: "gauge"
etcd_mvcc_db_total_size_in_bytes
# name: "etcd_mvcc_db_total_size_in_use_in_bytes"
# description: "Total size of the underlying database logically in use in bytes."
# type: "gauge"
etcd_mvcc_db_total_size_in_use_in_bytes
# name: "etcd_mvcc_hash_duration_seconds"
# description: "The latency distribution of storage hash operation."
# type: "histogram"
etcd_mvcc_hash_duration_seconds_bucket{le="0.01"}
etcd_mvcc_hash_duration_seconds_bucket{le="0.02"}
etcd_mvcc_hash_duration_seconds_bucket{le="0.04"}
etcd_mvcc_hash_duration_seconds_bucket{le="0.08"}
etcd_mvcc_hash_duration_seconds_bucket{le="0.16"}
etcd_mvcc_hash_duration_seconds_bucket{le="0.32"}
etcd_mvcc_hash_duration_seconds_bucket{le="0.64"}
etcd_mvcc_hash_duration_seconds_bucket{le="1.28"}
etcd_mvcc_hash_duration_seconds_bucket{le="2.56"}
etcd_mvcc_hash_duration_seconds_bucket{le="5.12"}
etcd_mvcc_hash_duration_seconds_bucket{le="10.24"}
etcd_mvcc_hash_duration_seconds_bucket{le="20.48"}
etcd_mvcc_hash_duration_seconds_bucket{le="40.96"}
etcd_mvcc_hash_duration_seconds_bucket{le="81.92"}
etcd_mvcc_hash_duration_seconds_bucket{le="163.84"}
etcd_mvcc_hash_duration_seconds_bucket{le="+Inf"}
etcd_mvcc_hash_duration_seconds_sum
etcd_mvcc_hash_duration_seconds_count
# name: "etcd_network_client_grpc_received_bytes_total"
# description: "The total number of bytes received from grpc clients."
# type: "counter"
etcd_network_client_grpc_received_bytes_total
# name: "etcd_network_client_grpc_sent_bytes_total"
# description: "The total number of bytes sent to grpc clients."
# type: "counter"
etcd_network_client_grpc_sent_bytes_total
# name: "etcd_network_peer_received_bytes_total"
# description: "The total number of bytes received from peers."
# type: "counter"
etcd_network_peer_received_bytes_total{From="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_round_trip_time_seconds"
# description: "Round-Trip-Time histogram between peers."
# type: "histogram"
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="+Inf"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0001"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0002"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0004"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0008"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0016"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0032"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0064"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0128"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0256"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0512"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.1024"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.2048"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.4096"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.8192"}
etcd_network_peer_round_trip_time_seconds_count{To="REMOTE_PEER_NODE_ID"}
etcd_network_peer_round_trip_time_seconds_sum{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_sent_bytes_total"
# description: "The total number of bytes sent to peers."
# type: "counter"
etcd_network_peer_sent_bytes_total{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_server_go_version"
# description: "Which Go version server is running with. 1 for 'server_go_version' label with current version."
# type: "gauge"
etcd_server_go_version{server_go_version="go1.8.7"}
# name: "etcd_server_has_leader"
# description: "Whether or not a leader exists. 1 is existence, 0 is not."
# type: "gauge"
etcd_server_has_leader
# name: "etcd_server_health_failures"
# description: "The total number of failed health checks"
# type: "counter"
etcd_server_health_failures
# name: "etcd_server_health_success"
# description: "The total number of successful health checks"
# type: "counter"
etcd_server_health_success
# name: "etcd_server_heartbeat_send_failures_total"
# description: "The total number of leader heartbeat send failures (likely overloaded from slow disk)."
# type: "counter"
etcd_server_heartbeat_send_failures_total
# name: "etcd_server_id"
# description: "Server or member ID in hexadecimal format. 1 for 'server_id' label with current ID."
# type: "gauge"
etcd_server_id{server_id="7339c4e5e833c029"}
# name: "etcd_server_is_leader"
# description: "Whether or not this member is a leader. 1 if is, 0 otherwise."
# type: "gauge"
etcd_server_is_leader
# name: "etcd_server_leader_changes_seen_total"
# description: "The number of leader changes seen."
# type: "counter"
etcd_server_leader_changes_seen_total
# name: "etcd_server_proposals_applied_total"
# description: "The total number of consensus proposals applied."
# type: "gauge"
etcd_server_proposals_applied_total
# name: "etcd_server_proposals_committed_total"
# description: "The total number of consensus proposals committed."
# type: "gauge"
etcd_server_proposals_committed_total
# name: "etcd_server_proposals_failed_total"
# description: "The total number of failed proposals seen."
# type: "counter"
etcd_server_proposals_failed_total
# name: "etcd_server_proposals_pending"
# description: "The current number of pending proposals to commit."
# type: "gauge"
etcd_server_proposals_pending
# name: "etcd_server_quota_backend_bytes"
# description: "Current backend storage quota size in bytes."
# type: "gauge"
etcd_server_quota_backend_bytes
# name: "etcd_server_read_indexes_failed_total"
# description: "The total number of failed read indexes seen."
# type: "counter"
etcd_server_read_indexes_failed_total
# name: "etcd_server_slow_apply_total"
# description: "The total number of slow apply requests (likely overloaded from slow disk)."
# type: "counter"
etcd_server_slow_apply_total
# name: "etcd_server_slow_read_indexes_total"
# description: "The total number of pending read indexes not in sync with leader's or timed out read index requests."
# type: "counter"
etcd_server_slow_read_indexes_total
# name: "etcd_server_version"
# description: "Which version is running. 1 for 'server_version' label with current version."
# type: "gauge"
etcd_server_version{server_version="3.1.20"}
# name: "etcd_snap_db_fsync_duration_seconds"
# description: "The latency distributions of fsyncing .snap.db file"
# type: "histogram"
etcd_snap_db_fsync_duration_seconds_bucket{le="0.001"}
etcd_snap_db_fsync_duration_seconds_bucket{le="0.002"}
etcd_snap_db_fsync_duration_seconds_bucket{le="0.004"}
etcd_snap_db_fsync_duration_seconds_bucket{le="0.008"}
etcd_snap_db_fsync_duration_seconds_bucket{le="0.016"}
etcd_snap_db_fsync_duration_seconds_bucket{le="0.032"}
etcd_snap_db_fsync_duration_seconds_bucket{le="0.064"}
etcd_snap_db_fsync_duration_seconds_bucket{le="0.128"}
etcd_snap_db_fsync_duration_seconds_bucket{le="0.256"}
etcd_snap_db_fsync_duration_seconds_bucket{le="0.512"}
etcd_snap_db_fsync_duration_seconds_bucket{le="1.024"}
etcd_snap_db_fsync_duration_seconds_bucket{le="2.048"}
etcd_snap_db_fsync_duration_seconds_bucket{le="4.096"}
etcd_snap_db_fsync_duration_seconds_bucket{le="8.192"}
etcd_snap_db_fsync_duration_seconds_bucket{le="+Inf"}
etcd_snap_db_fsync_duration_seconds_sum
etcd_snap_db_fsync_duration_seconds_count
# name: "etcd_snap_db_save_total_duration_seconds"
# description: "The total latency distributions of v3 snapshot save"
# type: "histogram"
etcd_snap_db_save_total_duration_seconds_bucket{le="0.1"}
etcd_snap_db_save_total_duration_seconds_bucket{le="0.2"}
etcd_snap_db_save_total_duration_seconds_bucket{le="0.4"}
etcd_snap_db_save_total_duration_seconds_bucket{le="0.8"}
etcd_snap_db_save_total_duration_seconds_bucket{le="1.6"}
etcd_snap_db_save_total_duration_seconds_bucket{le="3.2"}
etcd_snap_db_save_total_duration_seconds_bucket{le="6.4"}
etcd_snap_db_save_total_duration_seconds_bucket{le="12.8"}
etcd_snap_db_save_total_duration_seconds_bucket{le="25.6"}
etcd_snap_db_save_total_duration_seconds_bucket{le="51.2"}
etcd_snap_db_save_total_duration_seconds_bucket{le="+Inf"}
etcd_snap_db_save_total_duration_seconds_sum
etcd_snap_db_save_total_duration_seconds_count
# name: "go_gc_duration_seconds"
# description: "A summary of the GC invocation durations."
# type: "summary"
go_gc_duration_seconds{quantile="0"}
go_gc_duration_seconds{quantile="0.25"}
go_gc_duration_seconds{quantile="0.5"}
go_gc_duration_seconds{quantile="0.75"}
go_gc_duration_seconds{quantile="1"}
go_gc_duration_seconds_sum
go_gc_duration_seconds_count
# name: "go_goroutines"
# description: "Number of goroutines that currently exist."
# type: "gauge"
go_goroutines
# name: "go_memstats_alloc_bytes"
# description: "Number of bytes allocated and still in use."
# type: "gauge"
go_memstats_alloc_bytes
# name: "go_memstats_alloc_bytes_total"
# description: "Total number of bytes allocated, even if freed."
# type: "counter"
go_memstats_alloc_bytes_total
# name: "go_memstats_buck_hash_sys_bytes"
# description: "Number of bytes used by the profiling bucket hash table."
# type: "gauge"
go_memstats_buck_hash_sys_bytes
# name: "go_memstats_frees_total"
# description: "Total number of frees."
# type: "counter"
go_memstats_frees_total
# name: "go_memstats_gc_sys_bytes"
# description: "Number of bytes used for garbage collection system metadata."
# type: "gauge"
go_memstats_gc_sys_bytes
# name: "go_memstats_heap_alloc_bytes"
# description: "Number of heap bytes allocated and still in use."
# type: "gauge"
go_memstats_heap_alloc_bytes
# name: "go_memstats_heap_idle_bytes"
# description: "Number of heap bytes waiting to be used."
# type: "gauge"
go_memstats_heap_idle_bytes
# name: "go_memstats_heap_inuse_bytes"
# description: "Number of heap bytes that are in use."
# type: "gauge"
go_memstats_heap_inuse_bytes
# name: "go_memstats_heap_objects"
# description: "Number of allocated objects."
# type: "gauge"
go_memstats_heap_objects
# name: "go_memstats_heap_released_bytes_total"
# description: "Total number of heap bytes released to OS."
# type: "counter"
go_memstats_heap_released_bytes_total
# name: "go_memstats_heap_sys_bytes"
# description: "Number of heap bytes obtained from system."
# type: "gauge"
go_memstats_heap_sys_bytes
# name: "go_memstats_last_gc_time_seconds"
# description: "Number of seconds since 1970 of last garbage collection."
# type: "gauge"
go_memstats_last_gc_time_seconds
# name: "go_memstats_lookups_total"
# description: "Total number of pointer lookups."
# type: "counter"
go_memstats_lookups_total
# name: "go_memstats_mallocs_total"
# description: "Total number of mallocs."
# type: "counter"
go_memstats_mallocs_total
# name: "go_memstats_mcache_inuse_bytes"
# description: "Number of bytes in use by mcache structures."
# type: "gauge"
go_memstats_mcache_inuse_bytes
# name: "go_memstats_mcache_sys_bytes"
# description: "Number of bytes used for mcache structures obtained from system."
# type: "gauge"
go_memstats_mcache_sys_bytes
# name: "go_memstats_mspan_inuse_bytes"
# description: "Number of bytes in use by mspan structures."
# type: "gauge"
go_memstats_mspan_inuse_bytes
# name: "go_memstats_mspan_sys_bytes"
# description: "Number of bytes used for mspan structures obtained from system."
# type: "gauge"
go_memstats_mspan_sys_bytes
# name: "go_memstats_next_gc_bytes"
# description: "Number of heap bytes when next garbage collection will take place."
# type: "gauge"
go_memstats_next_gc_bytes
# name: "go_memstats_other_sys_bytes"
# description: "Number of bytes used for other system allocations."
# type: "gauge"
go_memstats_other_sys_bytes
# name: "go_memstats_stack_inuse_bytes"
# description: "Number of bytes in use by the stack allocator."
# type: "gauge"
go_memstats_stack_inuse_bytes
# name: "go_memstats_stack_sys_bytes"
# description: "Number of bytes obtained from system for stack allocator."
# type: "gauge"
go_memstats_stack_sys_bytes
# name: "go_memstats_sys_bytes"
# description: "Number of bytes obtained by system. Sum of all system allocations."
# type: "gauge"
go_memstats_sys_bytes
# name: "grpc_server_handled_total"
# description: "Total number of RPCs completed on the server, regardless of success or failure."
# type: "counter"
# gRPC codes:
# - "Aborted"
# - "AlreadyExists"
# - "Canceled"
# - "DataLoss"
# - "DeadlineExceeded"
# - "FailedPrecondition"
# - "Internal"
# - "InvalidArgument"
# - "NotFound"
# - "OK"
# - "OutOfRange"
# - "PermissionDenied"
# - "ResourceExhausted"
# - "Unauthenticated"
# - "Unavailable"
# - "Unimplemented"
# - "Unknown"
grpc_server_handled_total{grpc_code="CODE",grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_received_total"
# description: "Total number of RPC stream messages received on the server."
# type: "counter"
grpc_server_msg_received_total{grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"}
grpc_server_msg_received_total{grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"}
grpc_server_msg_received_total{grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_sent_total"
# description: "Total number of gRPC stream messages sent by the server."
# type: "counter"
grpc_server_msg_sent_total{grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"}
grpc_server_msg_sent_total{grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"}
grpc_server_msg_sent_total{grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_started_total"
# description: "Total number of RPCs started on the server."
# type: "counter"
grpc_server_started_total{grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_started_total{grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_started_total{grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_started_total{grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_started_total{grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_started_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_started_total{grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"}
grpc_server_started_total{grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"}
grpc_server_started_total{grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"}
grpc_server_started_total{grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"}
grpc_server_started_total{grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"}
grpc_server_started_total{grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"}
grpc_server_started_total{grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"}
grpc_server_started_total{grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"}
grpc_server_started_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_started_total{grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_started_total{grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_started_total{grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_started_total{grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_started_total{grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_started_total{grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"}
grpc_server_started_total{grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"}
grpc_server_started_total{grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_started_total{grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_started_total{grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_started_total{grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_started_total{grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_started_total{grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_started_total{grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"}
grpc_server_started_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "http_request_duration_microseconds"
# description: "The HTTP request latencies in microseconds."
# type: "summary"
http_request_duration_microseconds{handler="prometheus",quantile="0.5"}
http_request_duration_microseconds{handler="prometheus",quantile="0.9"}
http_request_duration_microseconds{handler="prometheus",quantile="0.99"}
http_request_duration_microseconds_sum{handler="prometheus"}
http_request_duration_microseconds_count{handler="prometheus"}
# name: "http_request_size_bytes"
# description: "The HTTP request sizes in bytes."
# type: "summary"
http_request_size_bytes{handler="prometheus",quantile="0.5"}
http_request_size_bytes{handler="prometheus",quantile="0.9"}
http_request_size_bytes{handler="prometheus",quantile="0.99"}
http_request_size_bytes_sum{handler="prometheus"}
http_request_size_bytes_count{handler="prometheus"}
# name: "http_response_size_bytes"
# description: "The HTTP response sizes in bytes."
# type: "summary"
http_response_size_bytes{handler="prometheus",quantile="0.5"}
http_response_size_bytes{handler="prometheus",quantile="0.9"}
http_response_size_bytes{handler="prometheus",quantile="0.99"}
http_response_size_bytes_sum{handler="prometheus"}
http_response_size_bytes_count{handler="prometheus"}

View File

@ -0,0 +1,511 @@
# server version: unknown
# name: "etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of db compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2048"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4096"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_compaction_total_duration_milliseconds"
# description: "Bucketed histogram of db compaction total duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="100"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="1600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="3200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="6400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="12800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="25600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="51200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="102400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="204800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="409600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="819200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_total_size_in_bytes"
# description: "Total size of the underlying database in bytes."
# type: "gauge"
etcd_debugging_mvcc_db_total_size_in_bytes
# name: "etcd_debugging_mvcc_delete_total"
# description: "Total number of deletes seen by this member."
# type: "counter"
etcd_debugging_mvcc_delete_total
# name: "etcd_debugging_mvcc_events_total"
# description: "Total number of events sent by this member."
# type: "counter"
etcd_debugging_mvcc_events_total
# name: "etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of index compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="0.5"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_keys_total"
# description: "Total number of keys."
# type: "gauge"
etcd_debugging_mvcc_keys_total
# name: "etcd_debugging_mvcc_pending_events_total"
# description: "Total number of pending events to be sent."
# type: "gauge"
etcd_debugging_mvcc_pending_events_total
# name: "etcd_debugging_mvcc_put_total"
# description: "Total number of puts seen by this member."
# type: "counter"
etcd_debugging_mvcc_put_total
# name: "etcd_debugging_mvcc_range_total"
# description: "Total number of ranges seen by this member."
# type: "counter"
etcd_debugging_mvcc_range_total
# name: "etcd_debugging_mvcc_slow_watcher_total"
# description: "Total number of unsynced slow watchers."
# type: "gauge"
etcd_debugging_mvcc_slow_watcher_total
# name: "etcd_debugging_mvcc_txn_total"
# description: "Total number of txns seen by this member."
# type: "counter"
etcd_debugging_mvcc_txn_total
# name: "etcd_debugging_mvcc_watch_stream_total"
# description: "Total number of watch streams."
# type: "gauge"
etcd_debugging_mvcc_watch_stream_total
# name: "etcd_debugging_mvcc_watcher_total"
# description: "Total number of watchers."
# type: "gauge"
etcd_debugging_mvcc_watcher_total
# name: "etcd_debugging_snap_save_marshalling_duration_seconds"
# description: "The marshalling cost distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_marshalling_duration_seconds_sum
etcd_debugging_snap_save_marshalling_duration_seconds_count
# name: "etcd_debugging_snap_save_total_duration_seconds"
# description: "The total latency distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_total_duration_seconds_sum
etcd_debugging_snap_save_total_duration_seconds_count
# name: "etcd_debugging_store_expires_total"
# description: "Total number of expired keys."
# type: "counter"
etcd_debugging_store_expires_total
# name: "etcd_debugging_store_reads_total"
# description: "Total number of reads action by (get/getRecursive), local to this member."
# type: "counter"
etcd_debugging_store_reads_total{action="getRecursive"}
# name: "etcd_debugging_store_watch_requests_total"
# description: "Total number of incoming watch requests (new or reestablished)."
# type: "counter"
etcd_debugging_store_watch_requests_total
# name: "etcd_debugging_store_watchers"
# description: "Count of currently active watchers."
# type: "gauge"
etcd_debugging_store_watchers
# name: "etcd_debugging_store_writes_total"
# description: "Total number of writes (e.g. set/compareAndDelete) seen by this member."
# type: "counter"
etcd_debugging_store_writes_total{action="create"}
etcd_debugging_store_writes_total{action="set"}
# name: "etcd_disk_backend_commit_duration_seconds"
# description: "The latency distributions of commit called by backend."
# type: "histogram"
etcd_disk_backend_commit_duration_seconds_bucket{le="0.001"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.002"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.004"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.008"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.016"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.032"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.064"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.128"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.256"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.512"}
etcd_disk_backend_commit_duration_seconds_bucket{le="1.024"}
etcd_disk_backend_commit_duration_seconds_bucket{le="2.048"}
etcd_disk_backend_commit_duration_seconds_bucket{le="4.096"}
etcd_disk_backend_commit_duration_seconds_bucket{le="8.192"}
etcd_disk_backend_commit_duration_seconds_bucket{le="+Inf"}
etcd_disk_backend_commit_duration_seconds_sum
etcd_disk_backend_commit_duration_seconds_count
# name: "etcd_disk_wal_fsync_duration_seconds"
# description: "The latency distributions of fsync called by wal."
# type: "histogram"
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.001"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.002"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.004"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.008"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.016"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.032"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.064"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.128"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.256"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.512"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="1.024"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="2.048"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="4.096"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="8.192"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="+Inf"}
etcd_disk_wal_fsync_duration_seconds_sum
etcd_disk_wal_fsync_duration_seconds_count
# name: "etcd_grpc_proxy_cache_hits_total"
# description: "Total number of cache hits"
# type: "gauge"
etcd_grpc_proxy_cache_hits_total
# name: "etcd_grpc_proxy_cache_misses_total"
# description: "Total number of cache misses"
# type: "gauge"
etcd_grpc_proxy_cache_misses_total
# name: "etcd_grpc_proxy_events_coalescing_total"
# description: "Total number of events coalescing"
# type: "counter"
etcd_grpc_proxy_events_coalescing_total
# name: "etcd_grpc_proxy_watchers_coalescing_total"
# description: "Total number of current watchers coalescing"
# type: "gauge"
etcd_grpc_proxy_watchers_coalescing_total
# name: "etcd_network_client_grpc_received_bytes_total"
# description: "The total number of bytes received from grpc clients."
# type: "counter"
etcd_network_client_grpc_received_bytes_total
# name: "etcd_network_client_grpc_sent_bytes_total"
# description: "The total number of bytes sent to grpc clients."
# type: "counter"
etcd_network_client_grpc_sent_bytes_total
# name: "etcd_network_peer_received_bytes_total"
# description: "The total number of bytes received from peers."
# type: "counter"
etcd_network_peer_received_bytes_total{From="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_round_trip_time_seconds"
# description: "Round-Trip-Time histogram between peers."
# type: "histogram"
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="+Inf"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0001"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0002"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0004"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0008"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0016"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0032"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0064"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0128"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0256"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0512"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.1024"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.2048"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.4096"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.8192"}
etcd_network_peer_round_trip_time_seconds_count{To="REMOTE_PEER_NODE_ID"}
etcd_network_peer_round_trip_time_seconds_sum{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_sent_bytes_total"
# description: "The total number of bytes sent to peers."
# type: "counter"
etcd_network_peer_sent_bytes_total{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_server_has_leader"
# description: "Whether or not a leader exists. 1 is existence, 0 is not."
# type: "gauge"
etcd_server_has_leader
# name: "etcd_server_leader_changes_seen_total"
# description: "The number of leader changes seen."
# type: "counter"
etcd_server_leader_changes_seen_total
# name: "etcd_server_proposals_applied_total"
# description: "The total number of consensus proposals applied."
# type: "gauge"
etcd_server_proposals_applied_total
# name: "etcd_server_proposals_committed_total"
# description: "The total number of consensus proposals committed."
# type: "gauge"
etcd_server_proposals_committed_total
# name: "etcd_server_proposals_failed_total"
# description: "The total number of failed proposals seen."
# type: "counter"
etcd_server_proposals_failed_total
# name: "etcd_server_proposals_pending"
# description: "The current number of pending proposals to commit."
# type: "gauge"
etcd_server_proposals_pending
# name: "go_gc_duration_seconds"
# description: "A summary of the GC invocation durations."
# type: "summary"
go_gc_duration_seconds{quantile="0"}
go_gc_duration_seconds{quantile="0.25"}
go_gc_duration_seconds{quantile="0.5"}
go_gc_duration_seconds{quantile="0.75"}
go_gc_duration_seconds{quantile="1"}
go_gc_duration_seconds_sum
go_gc_duration_seconds_count
# name: "go_goroutines"
# description: "Number of goroutines that currently exist."
# type: "gauge"
go_goroutines
# name: "go_memstats_alloc_bytes"
# description: "Number of bytes allocated and still in use."
# type: "gauge"
go_memstats_alloc_bytes
# name: "go_memstats_alloc_bytes_total"
# description: "Total number of bytes allocated, even if freed."
# type: "counter"
go_memstats_alloc_bytes_total
# name: "go_memstats_buck_hash_sys_bytes"
# description: "Number of bytes used by the profiling bucket hash table."
# type: "gauge"
go_memstats_buck_hash_sys_bytes
# name: "go_memstats_frees_total"
# description: "Total number of frees."
# type: "counter"
go_memstats_frees_total
# name: "go_memstats_gc_sys_bytes"
# description: "Number of bytes used for garbage collection system metadata."
# type: "gauge"
go_memstats_gc_sys_bytes
# name: "go_memstats_heap_alloc_bytes"
# description: "Number of heap bytes allocated and still in use."
# type: "gauge"
go_memstats_heap_alloc_bytes
# name: "go_memstats_heap_idle_bytes"
# description: "Number of heap bytes waiting to be used."
# type: "gauge"
go_memstats_heap_idle_bytes
# name: "go_memstats_heap_inuse_bytes"
# description: "Number of heap bytes that are in use."
# type: "gauge"
go_memstats_heap_inuse_bytes
# name: "go_memstats_heap_objects"
# description: "Number of allocated objects."
# type: "gauge"
go_memstats_heap_objects
# name: "go_memstats_heap_released_bytes_total"
# description: "Total number of heap bytes released to OS."
# type: "counter"
go_memstats_heap_released_bytes_total
# name: "go_memstats_heap_sys_bytes"
# description: "Number of heap bytes obtained from system."
# type: "gauge"
go_memstats_heap_sys_bytes
# name: "go_memstats_last_gc_time_seconds"
# description: "Number of seconds since 1970 of last garbage collection."
# type: "gauge"
go_memstats_last_gc_time_seconds
# name: "go_memstats_lookups_total"
# description: "Total number of pointer lookups."
# type: "counter"
go_memstats_lookups_total
# name: "go_memstats_mallocs_total"
# description: "Total number of mallocs."
# type: "counter"
go_memstats_mallocs_total
# name: "go_memstats_mcache_inuse_bytes"
# description: "Number of bytes in use by mcache structures."
# type: "gauge"
go_memstats_mcache_inuse_bytes
# name: "go_memstats_mcache_sys_bytes"
# description: "Number of bytes used for mcache structures obtained from system."
# type: "gauge"
go_memstats_mcache_sys_bytes
# name: "go_memstats_mspan_inuse_bytes"
# description: "Number of bytes in use by mspan structures."
# type: "gauge"
go_memstats_mspan_inuse_bytes
# name: "go_memstats_mspan_sys_bytes"
# description: "Number of bytes used for mspan structures obtained from system."
# type: "gauge"
go_memstats_mspan_sys_bytes
# name: "go_memstats_next_gc_bytes"
# description: "Number of heap bytes when next garbage collection will take place."
# type: "gauge"
go_memstats_next_gc_bytes
# name: "go_memstats_other_sys_bytes"
# description: "Number of bytes used for other system allocations."
# type: "gauge"
go_memstats_other_sys_bytes
# name: "go_memstats_stack_inuse_bytes"
# description: "Number of bytes in use by the stack allocator."
# type: "gauge"
go_memstats_stack_inuse_bytes
# name: "go_memstats_stack_sys_bytes"
# description: "Number of bytes obtained from system for stack allocator."
# type: "gauge"
go_memstats_stack_sys_bytes
# name: "go_memstats_sys_bytes"
# description: "Number of bytes obtained by system. Sum of all system allocations."
# type: "gauge"
go_memstats_sys_bytes
# name: "grpc_server_handled_total"
# description: "Total number of RPCs completed on the server, regardless of success or failure."
# type: "counter"
# gRPC codes:
# - "Canceled"
# - "OK"
grpc_server_handled_total{grpc_code="CODE",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_received_total"
# description: "Total number of RPC stream messages received on the server."
# type: "counter"
grpc_server_msg_received_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_sent_total"
# description: "Total number of gRPC stream messages sent by the server."
# type: "counter"
grpc_server_msg_sent_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_started_total"
# description: "Total number of RPCs started on the server."
# type: "counter"
grpc_server_started_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "http_request_duration_microseconds"
# description: "The HTTP request latencies in microseconds."
# type: "summary"
http_request_duration_microseconds{handler="prometheus",quantile="0.5"}
http_request_duration_microseconds{handler="prometheus",quantile="0.9"}
http_request_duration_microseconds{handler="prometheus",quantile="0.99"}
http_request_duration_microseconds_sum{handler="prometheus"}
http_request_duration_microseconds_count{handler="prometheus"}
# name: "http_request_size_bytes"
# description: "The HTTP request sizes in bytes."
# type: "summary"
http_request_size_bytes{handler="prometheus",quantile="0.5"}
http_request_size_bytes{handler="prometheus",quantile="0.9"}
http_request_size_bytes{handler="prometheus",quantile="0.99"}
http_request_size_bytes_sum{handler="prometheus"}
http_request_size_bytes_count{handler="prometheus"}
# name: "http_response_size_bytes"
# description: "The HTTP response sizes in bytes."
# type: "summary"
http_response_size_bytes{handler="prometheus",quantile="0.5"}
http_response_size_bytes{handler="prometheus",quantile="0.9"}
http_response_size_bytes{handler="prometheus",quantile="0.99"}
http_response_size_bytes_sum{handler="prometheus"}
http_response_size_bytes_count{handler="prometheus"}

View File

@ -0,0 +1,511 @@
# server version: unknown
# name: "etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of db compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2048"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4096"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_compaction_total_duration_milliseconds"
# description: "Bucketed histogram of db compaction total duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="100"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="1600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="3200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="6400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="12800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="25600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="51200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="102400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="204800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="409600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="819200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_total_size_in_bytes"
# description: "Total size of the underlying database in bytes."
# type: "gauge"
etcd_debugging_mvcc_db_total_size_in_bytes
# name: "etcd_debugging_mvcc_delete_total"
# description: "Total number of deletes seen by this member."
# type: "counter"
etcd_debugging_mvcc_delete_total
# name: "etcd_debugging_mvcc_events_total"
# description: "Total number of events sent by this member."
# type: "counter"
etcd_debugging_mvcc_events_total
# name: "etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of index compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="0.5"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_keys_total"
# description: "Total number of keys."
# type: "gauge"
etcd_debugging_mvcc_keys_total
# name: "etcd_debugging_mvcc_pending_events_total"
# description: "Total number of pending events to be sent."
# type: "gauge"
etcd_debugging_mvcc_pending_events_total
# name: "etcd_debugging_mvcc_put_total"
# description: "Total number of puts seen by this member."
# type: "counter"
etcd_debugging_mvcc_put_total
# name: "etcd_debugging_mvcc_range_total"
# description: "Total number of ranges seen by this member."
# type: "counter"
etcd_debugging_mvcc_range_total
# name: "etcd_debugging_mvcc_slow_watcher_total"
# description: "Total number of unsynced slow watchers."
# type: "gauge"
etcd_debugging_mvcc_slow_watcher_total
# name: "etcd_debugging_mvcc_txn_total"
# description: "Total number of txns seen by this member."
# type: "counter"
etcd_debugging_mvcc_txn_total
# name: "etcd_debugging_mvcc_watch_stream_total"
# description: "Total number of watch streams."
# type: "gauge"
etcd_debugging_mvcc_watch_stream_total
# name: "etcd_debugging_mvcc_watcher_total"
# description: "Total number of watchers."
# type: "gauge"
etcd_debugging_mvcc_watcher_total
# name: "etcd_debugging_snap_save_marshalling_duration_seconds"
# description: "The marshalling cost distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_marshalling_duration_seconds_sum
etcd_debugging_snap_save_marshalling_duration_seconds_count
# name: "etcd_debugging_snap_save_total_duration_seconds"
# description: "The total latency distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_total_duration_seconds_sum
etcd_debugging_snap_save_total_duration_seconds_count
# name: "etcd_debugging_store_expires_total"
# description: "Total number of expired keys."
# type: "counter"
etcd_debugging_store_expires_total
# name: "etcd_debugging_store_reads_total"
# description: "Total number of reads action by (get/getRecursive), local to this member."
# type: "counter"
etcd_debugging_store_reads_total{action="getRecursive"}
# name: "etcd_debugging_store_watch_requests_total"
# description: "Total number of incoming watch requests (new or reestablished)."
# type: "counter"
etcd_debugging_store_watch_requests_total
# name: "etcd_debugging_store_watchers"
# description: "Count of currently active watchers."
# type: "gauge"
etcd_debugging_store_watchers
# name: "etcd_debugging_store_writes_total"
# description: "Total number of writes (e.g. set/compareAndDelete) seen by this member."
# type: "counter"
etcd_debugging_store_writes_total{action="create"}
etcd_debugging_store_writes_total{action="set"}
# name: "etcd_disk_backend_commit_duration_seconds"
# description: "The latency distributions of commit called by backend."
# type: "histogram"
etcd_disk_backend_commit_duration_seconds_bucket{le="0.001"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.002"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.004"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.008"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.016"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.032"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.064"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.128"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.256"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.512"}
etcd_disk_backend_commit_duration_seconds_bucket{le="1.024"}
etcd_disk_backend_commit_duration_seconds_bucket{le="2.048"}
etcd_disk_backend_commit_duration_seconds_bucket{le="4.096"}
etcd_disk_backend_commit_duration_seconds_bucket{le="8.192"}
etcd_disk_backend_commit_duration_seconds_bucket{le="+Inf"}
etcd_disk_backend_commit_duration_seconds_sum
etcd_disk_backend_commit_duration_seconds_count
# name: "etcd_disk_wal_fsync_duration_seconds"
# description: "The latency distributions of fsync called by wal."
# type: "histogram"
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.001"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.002"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.004"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.008"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.016"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.032"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.064"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.128"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.256"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.512"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="1.024"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="2.048"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="4.096"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="8.192"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="+Inf"}
etcd_disk_wal_fsync_duration_seconds_sum
etcd_disk_wal_fsync_duration_seconds_count
# name: "etcd_grpc_proxy_cache_hits_total"
# description: "Total number of cache hits"
# type: "gauge"
etcd_grpc_proxy_cache_hits_total
# name: "etcd_grpc_proxy_cache_misses_total"
# description: "Total number of cache misses"
# type: "gauge"
etcd_grpc_proxy_cache_misses_total
# name: "etcd_grpc_proxy_events_coalescing_total"
# description: "Total number of events coalescing"
# type: "counter"
etcd_grpc_proxy_events_coalescing_total
# name: "etcd_grpc_proxy_watchers_coalescing_total"
# description: "Total number of current watchers coalescing"
# type: "gauge"
etcd_grpc_proxy_watchers_coalescing_total
# name: "etcd_network_client_grpc_received_bytes_total"
# description: "The total number of bytes received from grpc clients."
# type: "counter"
etcd_network_client_grpc_received_bytes_total
# name: "etcd_network_client_grpc_sent_bytes_total"
# description: "The total number of bytes sent to grpc clients."
# type: "counter"
etcd_network_client_grpc_sent_bytes_total
# name: "etcd_network_peer_received_bytes_total"
# description: "The total number of bytes received from peers."
# type: "counter"
etcd_network_peer_received_bytes_total{From="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_round_trip_time_seconds"
# description: "Round-Trip-Time histogram between peers."
# type: "histogram"
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="+Inf"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0001"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0002"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0004"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0008"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0016"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0032"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0064"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0128"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0256"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0512"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.1024"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.2048"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.4096"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.8192"}
etcd_network_peer_round_trip_time_seconds_count{To="REMOTE_PEER_NODE_ID"}
etcd_network_peer_round_trip_time_seconds_sum{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_sent_bytes_total"
# description: "The total number of bytes sent to peers."
# type: "counter"
etcd_network_peer_sent_bytes_total{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_server_has_leader"
# description: "Whether or not a leader exists. 1 is existence, 0 is not."
# type: "gauge"
etcd_server_has_leader
# name: "etcd_server_leader_changes_seen_total"
# description: "The number of leader changes seen."
# type: "counter"
etcd_server_leader_changes_seen_total
# name: "etcd_server_proposals_applied_total"
# description: "The total number of consensus proposals applied."
# type: "gauge"
etcd_server_proposals_applied_total
# name: "etcd_server_proposals_committed_total"
# description: "The total number of consensus proposals committed."
# type: "gauge"
etcd_server_proposals_committed_total
# name: "etcd_server_proposals_failed_total"
# description: "The total number of failed proposals seen."
# type: "counter"
etcd_server_proposals_failed_total
# name: "etcd_server_proposals_pending"
# description: "The current number of pending proposals to commit."
# type: "gauge"
etcd_server_proposals_pending
# name: "go_gc_duration_seconds"
# description: "A summary of the GC invocation durations."
# type: "summary"
go_gc_duration_seconds{quantile="0"}
go_gc_duration_seconds{quantile="0.25"}
go_gc_duration_seconds{quantile="0.5"}
go_gc_duration_seconds{quantile="0.75"}
go_gc_duration_seconds{quantile="1"}
go_gc_duration_seconds_sum
go_gc_duration_seconds_count
# name: "go_goroutines"
# description: "Number of goroutines that currently exist."
# type: "gauge"
go_goroutines
# name: "go_memstats_alloc_bytes"
# description: "Number of bytes allocated and still in use."
# type: "gauge"
go_memstats_alloc_bytes
# name: "go_memstats_alloc_bytes_total"
# description: "Total number of bytes allocated, even if freed."
# type: "counter"
go_memstats_alloc_bytes_total
# name: "go_memstats_buck_hash_sys_bytes"
# description: "Number of bytes used by the profiling bucket hash table."
# type: "gauge"
go_memstats_buck_hash_sys_bytes
# name: "go_memstats_frees_total"
# description: "Total number of frees."
# type: "counter"
go_memstats_frees_total
# name: "go_memstats_gc_sys_bytes"
# description: "Number of bytes used for garbage collection system metadata."
# type: "gauge"
go_memstats_gc_sys_bytes
# name: "go_memstats_heap_alloc_bytes"
# description: "Number of heap bytes allocated and still in use."
# type: "gauge"
go_memstats_heap_alloc_bytes
# name: "go_memstats_heap_idle_bytes"
# description: "Number of heap bytes waiting to be used."
# type: "gauge"
go_memstats_heap_idle_bytes
# name: "go_memstats_heap_inuse_bytes"
# description: "Number of heap bytes that are in use."
# type: "gauge"
go_memstats_heap_inuse_bytes
# name: "go_memstats_heap_objects"
# description: "Number of allocated objects."
# type: "gauge"
go_memstats_heap_objects
# name: "go_memstats_heap_released_bytes_total"
# description: "Total number of heap bytes released to OS."
# type: "counter"
go_memstats_heap_released_bytes_total
# name: "go_memstats_heap_sys_bytes"
# description: "Number of heap bytes obtained from system."
# type: "gauge"
go_memstats_heap_sys_bytes
# name: "go_memstats_last_gc_time_seconds"
# description: "Number of seconds since 1970 of last garbage collection."
# type: "gauge"
go_memstats_last_gc_time_seconds
# name: "go_memstats_lookups_total"
# description: "Total number of pointer lookups."
# type: "counter"
go_memstats_lookups_total
# name: "go_memstats_mallocs_total"
# description: "Total number of mallocs."
# type: "counter"
go_memstats_mallocs_total
# name: "go_memstats_mcache_inuse_bytes"
# description: "Number of bytes in use by mcache structures."
# type: "gauge"
go_memstats_mcache_inuse_bytes
# name: "go_memstats_mcache_sys_bytes"
# description: "Number of bytes used for mcache structures obtained from system."
# type: "gauge"
go_memstats_mcache_sys_bytes
# name: "go_memstats_mspan_inuse_bytes"
# description: "Number of bytes in use by mspan structures."
# type: "gauge"
go_memstats_mspan_inuse_bytes
# name: "go_memstats_mspan_sys_bytes"
# description: "Number of bytes used for mspan structures obtained from system."
# type: "gauge"
go_memstats_mspan_sys_bytes
# name: "go_memstats_next_gc_bytes"
# description: "Number of heap bytes when next garbage collection will take place."
# type: "gauge"
go_memstats_next_gc_bytes
# name: "go_memstats_other_sys_bytes"
# description: "Number of bytes used for other system allocations."
# type: "gauge"
go_memstats_other_sys_bytes
# name: "go_memstats_stack_inuse_bytes"
# description: "Number of bytes in use by the stack allocator."
# type: "gauge"
go_memstats_stack_inuse_bytes
# name: "go_memstats_stack_sys_bytes"
# description: "Number of bytes obtained from system for stack allocator."
# type: "gauge"
go_memstats_stack_sys_bytes
# name: "go_memstats_sys_bytes"
# description: "Number of bytes obtained by system. Sum of all system allocations."
# type: "gauge"
go_memstats_sys_bytes
# name: "grpc_server_handled_total"
# description: "Total number of RPCs completed on the server, regardless of success or failure."
# type: "counter"
# gRPC codes:
# - "Canceled"
# - "OK"
grpc_server_handled_total{grpc_code="CODE",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_received_total"
# description: "Total number of RPC stream messages received on the server."
# type: "counter"
grpc_server_msg_received_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_sent_total"
# description: "Total number of gRPC stream messages sent by the server."
# type: "counter"
grpc_server_msg_sent_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_started_total"
# description: "Total number of RPCs started on the server."
# type: "counter"
grpc_server_started_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "http_request_duration_microseconds"
# description: "The HTTP request latencies in microseconds."
# type: "summary"
http_request_duration_microseconds{handler="prometheus",quantile="0.5"}
http_request_duration_microseconds{handler="prometheus",quantile="0.9"}
http_request_duration_microseconds{handler="prometheus",quantile="0.99"}
http_request_duration_microseconds_sum{handler="prometheus"}
http_request_duration_microseconds_count{handler="prometheus"}
# name: "http_request_size_bytes"
# description: "The HTTP request sizes in bytes."
# type: "summary"
http_request_size_bytes{handler="prometheus",quantile="0.5"}
http_request_size_bytes{handler="prometheus",quantile="0.9"}
http_request_size_bytes{handler="prometheus",quantile="0.99"}
http_request_size_bytes_sum{handler="prometheus"}
http_request_size_bytes_count{handler="prometheus"}
# name: "http_response_size_bytes"
# description: "The HTTP response sizes in bytes."
# type: "summary"
http_response_size_bytes{handler="prometheus",quantile="0.5"}
http_response_size_bytes{handler="prometheus",quantile="0.9"}
http_response_size_bytes{handler="prometheus",quantile="0.99"}
http_response_size_bytes_sum{handler="prometheus"}
http_response_size_bytes_count{handler="prometheus"}

View File

@ -0,0 +1,511 @@
# server version: unknown
# name: "etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of db compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2048"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4096"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_compaction_total_duration_milliseconds"
# description: "Bucketed histogram of db compaction total duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="100"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="1600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="3200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="6400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="12800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="25600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="51200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="102400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="204800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="409600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="819200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_total_size_in_bytes"
# description: "Total size of the underlying database in bytes."
# type: "gauge"
etcd_debugging_mvcc_db_total_size_in_bytes
# name: "etcd_debugging_mvcc_delete_total"
# description: "Total number of deletes seen by this member."
# type: "counter"
etcd_debugging_mvcc_delete_total
# name: "etcd_debugging_mvcc_events_total"
# description: "Total number of events sent by this member."
# type: "counter"
etcd_debugging_mvcc_events_total
# name: "etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of index compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="0.5"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_keys_total"
# description: "Total number of keys."
# type: "gauge"
etcd_debugging_mvcc_keys_total
# name: "etcd_debugging_mvcc_pending_events_total"
# description: "Total number of pending events to be sent."
# type: "gauge"
etcd_debugging_mvcc_pending_events_total
# name: "etcd_debugging_mvcc_put_total"
# description: "Total number of puts seen by this member."
# type: "counter"
etcd_debugging_mvcc_put_total
# name: "etcd_debugging_mvcc_range_total"
# description: "Total number of ranges seen by this member."
# type: "counter"
etcd_debugging_mvcc_range_total
# name: "etcd_debugging_mvcc_slow_watcher_total"
# description: "Total number of unsynced slow watchers."
# type: "gauge"
etcd_debugging_mvcc_slow_watcher_total
# name: "etcd_debugging_mvcc_txn_total"
# description: "Total number of txns seen by this member."
# type: "counter"
etcd_debugging_mvcc_txn_total
# name: "etcd_debugging_mvcc_watch_stream_total"
# description: "Total number of watch streams."
# type: "gauge"
etcd_debugging_mvcc_watch_stream_total
# name: "etcd_debugging_mvcc_watcher_total"
# description: "Total number of watchers."
# type: "gauge"
etcd_debugging_mvcc_watcher_total
# name: "etcd_debugging_snap_save_marshalling_duration_seconds"
# description: "The marshalling cost distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_marshalling_duration_seconds_sum
etcd_debugging_snap_save_marshalling_duration_seconds_count
# name: "etcd_debugging_snap_save_total_duration_seconds"
# description: "The total latency distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_total_duration_seconds_sum
etcd_debugging_snap_save_total_duration_seconds_count
# name: "etcd_debugging_store_expires_total"
# description: "Total number of expired keys."
# type: "counter"
etcd_debugging_store_expires_total
# name: "etcd_debugging_store_reads_total"
# description: "Total number of reads action by (get/getRecursive), local to this member."
# type: "counter"
etcd_debugging_store_reads_total{action="getRecursive"}
# name: "etcd_debugging_store_watch_requests_total"
# description: "Total number of incoming watch requests (new or reestablished)."
# type: "counter"
etcd_debugging_store_watch_requests_total
# name: "etcd_debugging_store_watchers"
# description: "Count of currently active watchers."
# type: "gauge"
etcd_debugging_store_watchers
# name: "etcd_debugging_store_writes_total"
# description: "Total number of writes (e.g. set/compareAndDelete) seen by this member."
# type: "counter"
etcd_debugging_store_writes_total{action="create"}
etcd_debugging_store_writes_total{action="set"}
# name: "etcd_disk_backend_commit_duration_seconds"
# description: "The latency distributions of commit called by backend."
# type: "histogram"
etcd_disk_backend_commit_duration_seconds_bucket{le="0.001"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.002"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.004"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.008"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.016"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.032"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.064"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.128"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.256"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.512"}
etcd_disk_backend_commit_duration_seconds_bucket{le="1.024"}
etcd_disk_backend_commit_duration_seconds_bucket{le="2.048"}
etcd_disk_backend_commit_duration_seconds_bucket{le="4.096"}
etcd_disk_backend_commit_duration_seconds_bucket{le="8.192"}
etcd_disk_backend_commit_duration_seconds_bucket{le="+Inf"}
etcd_disk_backend_commit_duration_seconds_sum
etcd_disk_backend_commit_duration_seconds_count
# name: "etcd_disk_wal_fsync_duration_seconds"
# description: "The latency distributions of fsync called by wal."
# type: "histogram"
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.001"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.002"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.004"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.008"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.016"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.032"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.064"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.128"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.256"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.512"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="1.024"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="2.048"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="4.096"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="8.192"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="+Inf"}
etcd_disk_wal_fsync_duration_seconds_sum
etcd_disk_wal_fsync_duration_seconds_count
# name: "etcd_grpc_proxy_cache_hits_total"
# description: "Total number of cache hits"
# type: "gauge"
etcd_grpc_proxy_cache_hits_total
# name: "etcd_grpc_proxy_cache_misses_total"
# description: "Total number of cache misses"
# type: "gauge"
etcd_grpc_proxy_cache_misses_total
# name: "etcd_grpc_proxy_events_coalescing_total"
# description: "Total number of events coalescing"
# type: "counter"
etcd_grpc_proxy_events_coalescing_total
# name: "etcd_grpc_proxy_watchers_coalescing_total"
# description: "Total number of current watchers coalescing"
# type: "gauge"
etcd_grpc_proxy_watchers_coalescing_total
# name: "etcd_network_client_grpc_received_bytes_total"
# description: "The total number of bytes received from grpc clients."
# type: "counter"
etcd_network_client_grpc_received_bytes_total
# name: "etcd_network_client_grpc_sent_bytes_total"
# description: "The total number of bytes sent to grpc clients."
# type: "counter"
etcd_network_client_grpc_sent_bytes_total
# name: "etcd_network_peer_received_bytes_total"
# description: "The total number of bytes received from peers."
# type: "counter"
etcd_network_peer_received_bytes_total{From="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_round_trip_time_seconds"
# description: "Round-Trip-Time histogram between peers."
# type: "histogram"
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="+Inf"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0001"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0002"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0004"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0008"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0016"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0032"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0064"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0128"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0256"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0512"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.1024"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.2048"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.4096"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.8192"}
etcd_network_peer_round_trip_time_seconds_count{To="REMOTE_PEER_NODE_ID"}
etcd_network_peer_round_trip_time_seconds_sum{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_sent_bytes_total"
# description: "The total number of bytes sent to peers."
# type: "counter"
etcd_network_peer_sent_bytes_total{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_server_has_leader"
# description: "Whether or not a leader exists. 1 is existence, 0 is not."
# type: "gauge"
etcd_server_has_leader
# name: "etcd_server_leader_changes_seen_total"
# description: "The number of leader changes seen."
# type: "counter"
etcd_server_leader_changes_seen_total
# name: "etcd_server_proposals_applied_total"
# description: "The total number of consensus proposals applied."
# type: "gauge"
etcd_server_proposals_applied_total
# name: "etcd_server_proposals_committed_total"
# description: "The total number of consensus proposals committed."
# type: "gauge"
etcd_server_proposals_committed_total
# name: "etcd_server_proposals_failed_total"
# description: "The total number of failed proposals seen."
# type: "counter"
etcd_server_proposals_failed_total
# name: "etcd_server_proposals_pending"
# description: "The current number of pending proposals to commit."
# type: "gauge"
etcd_server_proposals_pending
# name: "go_gc_duration_seconds"
# description: "A summary of the GC invocation durations."
# type: "summary"
go_gc_duration_seconds{quantile="0"}
go_gc_duration_seconds{quantile="0.25"}
go_gc_duration_seconds{quantile="0.5"}
go_gc_duration_seconds{quantile="0.75"}
go_gc_duration_seconds{quantile="1"}
go_gc_duration_seconds_sum
go_gc_duration_seconds_count
# name: "go_goroutines"
# description: "Number of goroutines that currently exist."
# type: "gauge"
go_goroutines
# name: "go_memstats_alloc_bytes"
# description: "Number of bytes allocated and still in use."
# type: "gauge"
go_memstats_alloc_bytes
# name: "go_memstats_alloc_bytes_total"
# description: "Total number of bytes allocated, even if freed."
# type: "counter"
go_memstats_alloc_bytes_total
# name: "go_memstats_buck_hash_sys_bytes"
# description: "Number of bytes used by the profiling bucket hash table."
# type: "gauge"
go_memstats_buck_hash_sys_bytes
# name: "go_memstats_frees_total"
# description: "Total number of frees."
# type: "counter"
go_memstats_frees_total
# name: "go_memstats_gc_sys_bytes"
# description: "Number of bytes used for garbage collection system metadata."
# type: "gauge"
go_memstats_gc_sys_bytes
# name: "go_memstats_heap_alloc_bytes"
# description: "Number of heap bytes allocated and still in use."
# type: "gauge"
go_memstats_heap_alloc_bytes
# name: "go_memstats_heap_idle_bytes"
# description: "Number of heap bytes waiting to be used."
# type: "gauge"
go_memstats_heap_idle_bytes
# name: "go_memstats_heap_inuse_bytes"
# description: "Number of heap bytes that are in use."
# type: "gauge"
go_memstats_heap_inuse_bytes
# name: "go_memstats_heap_objects"
# description: "Number of allocated objects."
# type: "gauge"
go_memstats_heap_objects
# name: "go_memstats_heap_released_bytes_total"
# description: "Total number of heap bytes released to OS."
# type: "counter"
go_memstats_heap_released_bytes_total
# name: "go_memstats_heap_sys_bytes"
# description: "Number of heap bytes obtained from system."
# type: "gauge"
go_memstats_heap_sys_bytes
# name: "go_memstats_last_gc_time_seconds"
# description: "Number of seconds since 1970 of last garbage collection."
# type: "gauge"
go_memstats_last_gc_time_seconds
# name: "go_memstats_lookups_total"
# description: "Total number of pointer lookups."
# type: "counter"
go_memstats_lookups_total
# name: "go_memstats_mallocs_total"
# description: "Total number of mallocs."
# type: "counter"
go_memstats_mallocs_total
# name: "go_memstats_mcache_inuse_bytes"
# description: "Number of bytes in use by mcache structures."
# type: "gauge"
go_memstats_mcache_inuse_bytes
# name: "go_memstats_mcache_sys_bytes"
# description: "Number of bytes used for mcache structures obtained from system."
# type: "gauge"
go_memstats_mcache_sys_bytes
# name: "go_memstats_mspan_inuse_bytes"
# description: "Number of bytes in use by mspan structures."
# type: "gauge"
go_memstats_mspan_inuse_bytes
# name: "go_memstats_mspan_sys_bytes"
# description: "Number of bytes used for mspan structures obtained from system."
# type: "gauge"
go_memstats_mspan_sys_bytes
# name: "go_memstats_next_gc_bytes"
# description: "Number of heap bytes when next garbage collection will take place."
# type: "gauge"
go_memstats_next_gc_bytes
# name: "go_memstats_other_sys_bytes"
# description: "Number of bytes used for other system allocations."
# type: "gauge"
go_memstats_other_sys_bytes
# name: "go_memstats_stack_inuse_bytes"
# description: "Number of bytes in use by the stack allocator."
# type: "gauge"
go_memstats_stack_inuse_bytes
# name: "go_memstats_stack_sys_bytes"
# description: "Number of bytes obtained from system for stack allocator."
# type: "gauge"
go_memstats_stack_sys_bytes
# name: "go_memstats_sys_bytes"
# description: "Number of bytes obtained by system. Sum of all system allocations."
# type: "gauge"
go_memstats_sys_bytes
# name: "grpc_server_handled_total"
# description: "Total number of RPCs completed on the server, regardless of success or failure."
# type: "counter"
# gRPC codes:
# - "OK"
# - "Unavailable"
grpc_server_handled_total{grpc_code="CODE",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_received_total"
# description: "Total number of RPC stream messages received on the server."
# type: "counter"
grpc_server_msg_received_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_sent_total"
# description: "Total number of gRPC stream messages sent by the server."
# type: "counter"
grpc_server_msg_sent_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_started_total"
# description: "Total number of RPCs started on the server."
# type: "counter"
grpc_server_started_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "http_request_duration_microseconds"
# description: "The HTTP request latencies in microseconds."
# type: "summary"
http_request_duration_microseconds{handler="prometheus",quantile="0.5"}
http_request_duration_microseconds{handler="prometheus",quantile="0.9"}
http_request_duration_microseconds{handler="prometheus",quantile="0.99"}
http_request_duration_microseconds_sum{handler="prometheus"}
http_request_duration_microseconds_count{handler="prometheus"}
# name: "http_request_size_bytes"
# description: "The HTTP request sizes in bytes."
# type: "summary"
http_request_size_bytes{handler="prometheus",quantile="0.5"}
http_request_size_bytes{handler="prometheus",quantile="0.9"}
http_request_size_bytes{handler="prometheus",quantile="0.99"}
http_request_size_bytes_sum{handler="prometheus"}
http_request_size_bytes_count{handler="prometheus"}
# name: "http_response_size_bytes"
# description: "The HTTP response sizes in bytes."
# type: "summary"
http_response_size_bytes{handler="prometheus",quantile="0.5"}
http_response_size_bytes{handler="prometheus",quantile="0.9"}
http_response_size_bytes{handler="prometheus",quantile="0.99"}
http_response_size_bytes_sum{handler="prometheus"}
http_response_size_bytes_count{handler="prometheus"}

View File

@ -0,0 +1,511 @@
# server version: unknown
# name: "etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of db compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2048"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4096"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_compaction_total_duration_milliseconds"
# description: "Bucketed histogram of db compaction total duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="100"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="1600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="3200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="6400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="12800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="25600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="51200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="102400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="204800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="409600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="819200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_total_size_in_bytes"
# description: "Total size of the underlying database in bytes."
# type: "gauge"
etcd_debugging_mvcc_db_total_size_in_bytes
# name: "etcd_debugging_mvcc_delete_total"
# description: "Total number of deletes seen by this member."
# type: "counter"
etcd_debugging_mvcc_delete_total
# name: "etcd_debugging_mvcc_events_total"
# description: "Total number of events sent by this member."
# type: "counter"
etcd_debugging_mvcc_events_total
# name: "etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of index compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="0.5"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_keys_total"
# description: "Total number of keys."
# type: "gauge"
etcd_debugging_mvcc_keys_total
# name: "etcd_debugging_mvcc_pending_events_total"
# description: "Total number of pending events to be sent."
# type: "gauge"
etcd_debugging_mvcc_pending_events_total
# name: "etcd_debugging_mvcc_put_total"
# description: "Total number of puts seen by this member."
# type: "counter"
etcd_debugging_mvcc_put_total
# name: "etcd_debugging_mvcc_range_total"
# description: "Total number of ranges seen by this member."
# type: "counter"
etcd_debugging_mvcc_range_total
# name: "etcd_debugging_mvcc_slow_watcher_total"
# description: "Total number of unsynced slow watchers."
# type: "gauge"
etcd_debugging_mvcc_slow_watcher_total
# name: "etcd_debugging_mvcc_txn_total"
# description: "Total number of txns seen by this member."
# type: "counter"
etcd_debugging_mvcc_txn_total
# name: "etcd_debugging_mvcc_watch_stream_total"
# description: "Total number of watch streams."
# type: "gauge"
etcd_debugging_mvcc_watch_stream_total
# name: "etcd_debugging_mvcc_watcher_total"
# description: "Total number of watchers."
# type: "gauge"
etcd_debugging_mvcc_watcher_total
# name: "etcd_debugging_snap_save_marshalling_duration_seconds"
# description: "The marshalling cost distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_marshalling_duration_seconds_sum
etcd_debugging_snap_save_marshalling_duration_seconds_count
# name: "etcd_debugging_snap_save_total_duration_seconds"
# description: "The total latency distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_total_duration_seconds_sum
etcd_debugging_snap_save_total_duration_seconds_count
# name: "etcd_debugging_store_expires_total"
# description: "Total number of expired keys."
# type: "counter"
etcd_debugging_store_expires_total
# name: "etcd_debugging_store_reads_total"
# description: "Total number of reads action by (get/getRecursive), local to this member."
# type: "counter"
etcd_debugging_store_reads_total{action="getRecursive"}
# name: "etcd_debugging_store_watch_requests_total"
# description: "Total number of incoming watch requests (new or reestablished)."
# type: "counter"
etcd_debugging_store_watch_requests_total
# name: "etcd_debugging_store_watchers"
# description: "Count of currently active watchers."
# type: "gauge"
etcd_debugging_store_watchers
# name: "etcd_debugging_store_writes_total"
# description: "Total number of writes (e.g. set/compareAndDelete) seen by this member."
# type: "counter"
etcd_debugging_store_writes_total{action="create"}
etcd_debugging_store_writes_total{action="set"}
# name: "etcd_disk_backend_commit_duration_seconds"
# description: "The latency distributions of commit called by backend."
# type: "histogram"
etcd_disk_backend_commit_duration_seconds_bucket{le="0.001"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.002"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.004"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.008"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.016"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.032"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.064"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.128"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.256"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.512"}
etcd_disk_backend_commit_duration_seconds_bucket{le="1.024"}
etcd_disk_backend_commit_duration_seconds_bucket{le="2.048"}
etcd_disk_backend_commit_duration_seconds_bucket{le="4.096"}
etcd_disk_backend_commit_duration_seconds_bucket{le="8.192"}
etcd_disk_backend_commit_duration_seconds_bucket{le="+Inf"}
etcd_disk_backend_commit_duration_seconds_sum
etcd_disk_backend_commit_duration_seconds_count
# name: "etcd_disk_wal_fsync_duration_seconds"
# description: "The latency distributions of fsync called by wal."
# type: "histogram"
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.001"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.002"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.004"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.008"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.016"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.032"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.064"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.128"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.256"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.512"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="1.024"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="2.048"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="4.096"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="8.192"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="+Inf"}
etcd_disk_wal_fsync_duration_seconds_sum
etcd_disk_wal_fsync_duration_seconds_count
# name: "etcd_grpc_proxy_cache_hits_total"
# description: "Total number of cache hits"
# type: "gauge"
etcd_grpc_proxy_cache_hits_total
# name: "etcd_grpc_proxy_cache_misses_total"
# description: "Total number of cache misses"
# type: "gauge"
etcd_grpc_proxy_cache_misses_total
# name: "etcd_grpc_proxy_events_coalescing_total"
# description: "Total number of events coalescing"
# type: "counter"
etcd_grpc_proxy_events_coalescing_total
# name: "etcd_grpc_proxy_watchers_coalescing_total"
# description: "Total number of current watchers coalescing"
# type: "gauge"
etcd_grpc_proxy_watchers_coalescing_total
# name: "etcd_network_client_grpc_received_bytes_total"
# description: "The total number of bytes received from grpc clients."
# type: "counter"
etcd_network_client_grpc_received_bytes_total
# name: "etcd_network_client_grpc_sent_bytes_total"
# description: "The total number of bytes sent to grpc clients."
# type: "counter"
etcd_network_client_grpc_sent_bytes_total
# name: "etcd_network_peer_received_bytes_total"
# description: "The total number of bytes received from peers."
# type: "counter"
etcd_network_peer_received_bytes_total{From="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_round_trip_time_seconds"
# description: "Round-Trip-Time histogram between peers."
# type: "histogram"
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="+Inf"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0001"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0002"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0004"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0008"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0016"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0032"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0064"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0128"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0256"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0512"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.1024"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.2048"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.4096"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.8192"}
etcd_network_peer_round_trip_time_seconds_count{To="REMOTE_PEER_NODE_ID"}
etcd_network_peer_round_trip_time_seconds_sum{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_sent_bytes_total"
# description: "The total number of bytes sent to peers."
# type: "counter"
etcd_network_peer_sent_bytes_total{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_server_has_leader"
# description: "Whether or not a leader exists. 1 is existence, 0 is not."
# type: "gauge"
etcd_server_has_leader
# name: "etcd_server_leader_changes_seen_total"
# description: "The number of leader changes seen."
# type: "counter"
etcd_server_leader_changes_seen_total
# name: "etcd_server_proposals_applied_total"
# description: "The total number of consensus proposals applied."
# type: "gauge"
etcd_server_proposals_applied_total
# name: "etcd_server_proposals_committed_total"
# description: "The total number of consensus proposals committed."
# type: "gauge"
etcd_server_proposals_committed_total
# name: "etcd_server_proposals_failed_total"
# description: "The total number of failed proposals seen."
# type: "counter"
etcd_server_proposals_failed_total
# name: "etcd_server_proposals_pending"
# description: "The current number of pending proposals to commit."
# type: "gauge"
etcd_server_proposals_pending
# name: "go_gc_duration_seconds"
# description: "A summary of the GC invocation durations."
# type: "summary"
go_gc_duration_seconds{quantile="0"}
go_gc_duration_seconds{quantile="0.25"}
go_gc_duration_seconds{quantile="0.5"}
go_gc_duration_seconds{quantile="0.75"}
go_gc_duration_seconds{quantile="1"}
go_gc_duration_seconds_sum
go_gc_duration_seconds_count
# name: "go_goroutines"
# description: "Number of goroutines that currently exist."
# type: "gauge"
go_goroutines
# name: "go_memstats_alloc_bytes"
# description: "Number of bytes allocated and still in use."
# type: "gauge"
go_memstats_alloc_bytes
# name: "go_memstats_alloc_bytes_total"
# description: "Total number of bytes allocated, even if freed."
# type: "counter"
go_memstats_alloc_bytes_total
# name: "go_memstats_buck_hash_sys_bytes"
# description: "Number of bytes used by the profiling bucket hash table."
# type: "gauge"
go_memstats_buck_hash_sys_bytes
# name: "go_memstats_frees_total"
# description: "Total number of frees."
# type: "counter"
go_memstats_frees_total
# name: "go_memstats_gc_sys_bytes"
# description: "Number of bytes used for garbage collection system metadata."
# type: "gauge"
go_memstats_gc_sys_bytes
# name: "go_memstats_heap_alloc_bytes"
# description: "Number of heap bytes allocated and still in use."
# type: "gauge"
go_memstats_heap_alloc_bytes
# name: "go_memstats_heap_idle_bytes"
# description: "Number of heap bytes waiting to be used."
# type: "gauge"
go_memstats_heap_idle_bytes
# name: "go_memstats_heap_inuse_bytes"
# description: "Number of heap bytes that are in use."
# type: "gauge"
go_memstats_heap_inuse_bytes
# name: "go_memstats_heap_objects"
# description: "Number of allocated objects."
# type: "gauge"
go_memstats_heap_objects
# name: "go_memstats_heap_released_bytes_total"
# description: "Total number of heap bytes released to OS."
# type: "counter"
go_memstats_heap_released_bytes_total
# name: "go_memstats_heap_sys_bytes"
# description: "Number of heap bytes obtained from system."
# type: "gauge"
go_memstats_heap_sys_bytes
# name: "go_memstats_last_gc_time_seconds"
# description: "Number of seconds since 1970 of last garbage collection."
# type: "gauge"
go_memstats_last_gc_time_seconds
# name: "go_memstats_lookups_total"
# description: "Total number of pointer lookups."
# type: "counter"
go_memstats_lookups_total
# name: "go_memstats_mallocs_total"
# description: "Total number of mallocs."
# type: "counter"
go_memstats_mallocs_total
# name: "go_memstats_mcache_inuse_bytes"
# description: "Number of bytes in use by mcache structures."
# type: "gauge"
go_memstats_mcache_inuse_bytes
# name: "go_memstats_mcache_sys_bytes"
# description: "Number of bytes used for mcache structures obtained from system."
# type: "gauge"
go_memstats_mcache_sys_bytes
# name: "go_memstats_mspan_inuse_bytes"
# description: "Number of bytes in use by mspan structures."
# type: "gauge"
go_memstats_mspan_inuse_bytes
# name: "go_memstats_mspan_sys_bytes"
# description: "Number of bytes used for mspan structures obtained from system."
# type: "gauge"
go_memstats_mspan_sys_bytes
# name: "go_memstats_next_gc_bytes"
# description: "Number of heap bytes when next garbage collection will take place."
# type: "gauge"
go_memstats_next_gc_bytes
# name: "go_memstats_other_sys_bytes"
# description: "Number of bytes used for other system allocations."
# type: "gauge"
go_memstats_other_sys_bytes
# name: "go_memstats_stack_inuse_bytes"
# description: "Number of bytes in use by the stack allocator."
# type: "gauge"
go_memstats_stack_inuse_bytes
# name: "go_memstats_stack_sys_bytes"
# description: "Number of bytes obtained from system for stack allocator."
# type: "gauge"
go_memstats_stack_sys_bytes
# name: "go_memstats_sys_bytes"
# description: "Number of bytes obtained by system. Sum of all system allocations."
# type: "gauge"
go_memstats_sys_bytes
# name: "grpc_server_handled_total"
# description: "Total number of RPCs completed on the server, regardless of success or failure."
# type: "counter"
# gRPC codes:
# - "OK"
# - "Unavailable"
grpc_server_handled_total{grpc_code="CODE",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_received_total"
# description: "Total number of RPC stream messages received on the server."
# type: "counter"
grpc_server_msg_received_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_sent_total"
# description: "Total number of gRPC stream messages sent by the server."
# type: "counter"
grpc_server_msg_sent_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_started_total"
# description: "Total number of RPCs started on the server."
# type: "counter"
grpc_server_started_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "http_request_duration_microseconds"
# description: "The HTTP request latencies in microseconds."
# type: "summary"
http_request_duration_microseconds{handler="prometheus",quantile="0.5"}
http_request_duration_microseconds{handler="prometheus",quantile="0.9"}
http_request_duration_microseconds{handler="prometheus",quantile="0.99"}
http_request_duration_microseconds_sum{handler="prometheus"}
http_request_duration_microseconds_count{handler="prometheus"}
# name: "http_request_size_bytes"
# description: "The HTTP request sizes in bytes."
# type: "summary"
http_request_size_bytes{handler="prometheus",quantile="0.5"}
http_request_size_bytes{handler="prometheus",quantile="0.9"}
http_request_size_bytes{handler="prometheus",quantile="0.99"}
http_request_size_bytes_sum{handler="prometheus"}
http_request_size_bytes_count{handler="prometheus"}
# name: "http_response_size_bytes"
# description: "The HTTP response sizes in bytes."
# type: "summary"
http_response_size_bytes{handler="prometheus",quantile="0.5"}
http_response_size_bytes{handler="prometheus",quantile="0.9"}
http_response_size_bytes{handler="prometheus",quantile="0.99"}
http_response_size_bytes_sum{handler="prometheus"}
http_response_size_bytes_count{handler="prometheus"}

View File

@ -0,0 +1,511 @@
# server version: unknown
# name: "etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of db compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2048"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4096"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_compaction_total_duration_milliseconds"
# description: "Bucketed histogram of db compaction total duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="100"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="1600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="3200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="6400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="12800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="25600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="51200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="102400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="204800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="409600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="819200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_total_size_in_bytes"
# description: "Total size of the underlying database in bytes."
# type: "gauge"
etcd_debugging_mvcc_db_total_size_in_bytes
# name: "etcd_debugging_mvcc_delete_total"
# description: "Total number of deletes seen by this member."
# type: "counter"
etcd_debugging_mvcc_delete_total
# name: "etcd_debugging_mvcc_events_total"
# description: "Total number of events sent by this member."
# type: "counter"
etcd_debugging_mvcc_events_total
# name: "etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of index compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="0.5"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_keys_total"
# description: "Total number of keys."
# type: "gauge"
etcd_debugging_mvcc_keys_total
# name: "etcd_debugging_mvcc_pending_events_total"
# description: "Total number of pending events to be sent."
# type: "gauge"
etcd_debugging_mvcc_pending_events_total
# name: "etcd_debugging_mvcc_put_total"
# description: "Total number of puts seen by this member."
# type: "counter"
etcd_debugging_mvcc_put_total
# name: "etcd_debugging_mvcc_range_total"
# description: "Total number of ranges seen by this member."
# type: "counter"
etcd_debugging_mvcc_range_total
# name: "etcd_debugging_mvcc_slow_watcher_total"
# description: "Total number of unsynced slow watchers."
# type: "gauge"
etcd_debugging_mvcc_slow_watcher_total
# name: "etcd_debugging_mvcc_txn_total"
# description: "Total number of txns seen by this member."
# type: "counter"
etcd_debugging_mvcc_txn_total
# name: "etcd_debugging_mvcc_watch_stream_total"
# description: "Total number of watch streams."
# type: "gauge"
etcd_debugging_mvcc_watch_stream_total
# name: "etcd_debugging_mvcc_watcher_total"
# description: "Total number of watchers."
# type: "gauge"
etcd_debugging_mvcc_watcher_total
# name: "etcd_debugging_snap_save_marshalling_duration_seconds"
# description: "The marshalling cost distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_marshalling_duration_seconds_sum
etcd_debugging_snap_save_marshalling_duration_seconds_count
# name: "etcd_debugging_snap_save_total_duration_seconds"
# description: "The total latency distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_total_duration_seconds_sum
etcd_debugging_snap_save_total_duration_seconds_count
# name: "etcd_debugging_store_expires_total"
# description: "Total number of expired keys."
# type: "counter"
etcd_debugging_store_expires_total
# name: "etcd_debugging_store_reads_total"
# description: "Total number of reads action by (get/getRecursive), local to this member."
# type: "counter"
etcd_debugging_store_reads_total{action="getRecursive"}
# name: "etcd_debugging_store_watch_requests_total"
# description: "Total number of incoming watch requests (new or reestablished)."
# type: "counter"
etcd_debugging_store_watch_requests_total
# name: "etcd_debugging_store_watchers"
# description: "Count of currently active watchers."
# type: "gauge"
etcd_debugging_store_watchers
# name: "etcd_debugging_store_writes_total"
# description: "Total number of writes (e.g. set/compareAndDelete) seen by this member."
# type: "counter"
etcd_debugging_store_writes_total{action="create"}
etcd_debugging_store_writes_total{action="set"}
# name: "etcd_disk_backend_commit_duration_seconds"
# description: "The latency distributions of commit called by backend."
# type: "histogram"
etcd_disk_backend_commit_duration_seconds_bucket{le="0.001"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.002"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.004"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.008"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.016"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.032"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.064"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.128"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.256"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.512"}
etcd_disk_backend_commit_duration_seconds_bucket{le="1.024"}
etcd_disk_backend_commit_duration_seconds_bucket{le="2.048"}
etcd_disk_backend_commit_duration_seconds_bucket{le="4.096"}
etcd_disk_backend_commit_duration_seconds_bucket{le="8.192"}
etcd_disk_backend_commit_duration_seconds_bucket{le="+Inf"}
etcd_disk_backend_commit_duration_seconds_sum
etcd_disk_backend_commit_duration_seconds_count
# name: "etcd_disk_wal_fsync_duration_seconds"
# description: "The latency distributions of fsync called by wal."
# type: "histogram"
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.001"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.002"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.004"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.008"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.016"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.032"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.064"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.128"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.256"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.512"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="1.024"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="2.048"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="4.096"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="8.192"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="+Inf"}
etcd_disk_wal_fsync_duration_seconds_sum
etcd_disk_wal_fsync_duration_seconds_count
# name: "etcd_grpc_proxy_cache_hits_total"
# description: "Total number of cache hits"
# type: "gauge"
etcd_grpc_proxy_cache_hits_total
# name: "etcd_grpc_proxy_cache_misses_total"
# description: "Total number of cache misses"
# type: "gauge"
etcd_grpc_proxy_cache_misses_total
# name: "etcd_grpc_proxy_events_coalescing_total"
# description: "Total number of events coalescing"
# type: "counter"
etcd_grpc_proxy_events_coalescing_total
# name: "etcd_grpc_proxy_watchers_coalescing_total"
# description: "Total number of current watchers coalescing"
# type: "gauge"
etcd_grpc_proxy_watchers_coalescing_total
# name: "etcd_network_client_grpc_received_bytes_total"
# description: "The total number of bytes received from grpc clients."
# type: "counter"
etcd_network_client_grpc_received_bytes_total
# name: "etcd_network_client_grpc_sent_bytes_total"
# description: "The total number of bytes sent to grpc clients."
# type: "counter"
etcd_network_client_grpc_sent_bytes_total
# name: "etcd_network_peer_received_bytes_total"
# description: "The total number of bytes received from peers."
# type: "counter"
etcd_network_peer_received_bytes_total{From="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_round_trip_time_seconds"
# description: "Round-Trip-Time histogram between peers."
# type: "histogram"
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="+Inf"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0001"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0002"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0004"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0008"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0016"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0032"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0064"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0128"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0256"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0512"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.1024"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.2048"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.4096"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.8192"}
etcd_network_peer_round_trip_time_seconds_count{To="REMOTE_PEER_NODE_ID"}
etcd_network_peer_round_trip_time_seconds_sum{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_sent_bytes_total"
# description: "The total number of bytes sent to peers."
# type: "counter"
etcd_network_peer_sent_bytes_total{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_server_has_leader"
# description: "Whether or not a leader exists. 1 is existence, 0 is not."
# type: "gauge"
etcd_server_has_leader
# name: "etcd_server_leader_changes_seen_total"
# description: "The number of leader changes seen."
# type: "counter"
etcd_server_leader_changes_seen_total
# name: "etcd_server_proposals_applied_total"
# description: "The total number of consensus proposals applied."
# type: "gauge"
etcd_server_proposals_applied_total
# name: "etcd_server_proposals_committed_total"
# description: "The total number of consensus proposals committed."
# type: "gauge"
etcd_server_proposals_committed_total
# name: "etcd_server_proposals_failed_total"
# description: "The total number of failed proposals seen."
# type: "counter"
etcd_server_proposals_failed_total
# name: "etcd_server_proposals_pending"
# description: "The current number of pending proposals to commit."
# type: "gauge"
etcd_server_proposals_pending
# name: "go_gc_duration_seconds"
# description: "A summary of the GC invocation durations."
# type: "summary"
go_gc_duration_seconds{quantile="0"}
go_gc_duration_seconds{quantile="0.25"}
go_gc_duration_seconds{quantile="0.5"}
go_gc_duration_seconds{quantile="0.75"}
go_gc_duration_seconds{quantile="1"}
go_gc_duration_seconds_sum
go_gc_duration_seconds_count
# name: "go_goroutines"
# description: "Number of goroutines that currently exist."
# type: "gauge"
go_goroutines
# name: "go_memstats_alloc_bytes"
# description: "Number of bytes allocated and still in use."
# type: "gauge"
go_memstats_alloc_bytes
# name: "go_memstats_alloc_bytes_total"
# description: "Total number of bytes allocated, even if freed."
# type: "counter"
go_memstats_alloc_bytes_total
# name: "go_memstats_buck_hash_sys_bytes"
# description: "Number of bytes used by the profiling bucket hash table."
# type: "gauge"
go_memstats_buck_hash_sys_bytes
# name: "go_memstats_frees_total"
# description: "Total number of frees."
# type: "counter"
go_memstats_frees_total
# name: "go_memstats_gc_sys_bytes"
# description: "Number of bytes used for garbage collection system metadata."
# type: "gauge"
go_memstats_gc_sys_bytes
# name: "go_memstats_heap_alloc_bytes"
# description: "Number of heap bytes allocated and still in use."
# type: "gauge"
go_memstats_heap_alloc_bytes
# name: "go_memstats_heap_idle_bytes"
# description: "Number of heap bytes waiting to be used."
# type: "gauge"
go_memstats_heap_idle_bytes
# name: "go_memstats_heap_inuse_bytes"
# description: "Number of heap bytes that are in use."
# type: "gauge"
go_memstats_heap_inuse_bytes
# name: "go_memstats_heap_objects"
# description: "Number of allocated objects."
# type: "gauge"
go_memstats_heap_objects
# name: "go_memstats_heap_released_bytes_total"
# description: "Total number of heap bytes released to OS."
# type: "counter"
go_memstats_heap_released_bytes_total
# name: "go_memstats_heap_sys_bytes"
# description: "Number of heap bytes obtained from system."
# type: "gauge"
go_memstats_heap_sys_bytes
# name: "go_memstats_last_gc_time_seconds"
# description: "Number of seconds since 1970 of last garbage collection."
# type: "gauge"
go_memstats_last_gc_time_seconds
# name: "go_memstats_lookups_total"
# description: "Total number of pointer lookups."
# type: "counter"
go_memstats_lookups_total
# name: "go_memstats_mallocs_total"
# description: "Total number of mallocs."
# type: "counter"
go_memstats_mallocs_total
# name: "go_memstats_mcache_inuse_bytes"
# description: "Number of bytes in use by mcache structures."
# type: "gauge"
go_memstats_mcache_inuse_bytes
# name: "go_memstats_mcache_sys_bytes"
# description: "Number of bytes used for mcache structures obtained from system."
# type: "gauge"
go_memstats_mcache_sys_bytes
# name: "go_memstats_mspan_inuse_bytes"
# description: "Number of bytes in use by mspan structures."
# type: "gauge"
go_memstats_mspan_inuse_bytes
# name: "go_memstats_mspan_sys_bytes"
# description: "Number of bytes used for mspan structures obtained from system."
# type: "gauge"
go_memstats_mspan_sys_bytes
# name: "go_memstats_next_gc_bytes"
# description: "Number of heap bytes when next garbage collection will take place."
# type: "gauge"
go_memstats_next_gc_bytes
# name: "go_memstats_other_sys_bytes"
# description: "Number of bytes used for other system allocations."
# type: "gauge"
go_memstats_other_sys_bytes
# name: "go_memstats_stack_inuse_bytes"
# description: "Number of bytes in use by the stack allocator."
# type: "gauge"
go_memstats_stack_inuse_bytes
# name: "go_memstats_stack_sys_bytes"
# description: "Number of bytes obtained from system for stack allocator."
# type: "gauge"
go_memstats_stack_sys_bytes
# name: "go_memstats_sys_bytes"
# description: "Number of bytes obtained by system. Sum of all system allocations."
# type: "gauge"
go_memstats_sys_bytes
# name: "grpc_server_handled_total"
# description: "Total number of RPCs completed on the server, regardless of success or failure."
# type: "counter"
# gRPC codes:
# - "OK"
# - "Unavailable"
grpc_server_handled_total{grpc_code="CODE",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_received_total"
# description: "Total number of RPC stream messages received on the server."
# type: "counter"
grpc_server_msg_received_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_sent_total"
# description: "Total number of gRPC stream messages sent by the server."
# type: "counter"
grpc_server_msg_sent_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_started_total"
# description: "Total number of RPCs started on the server."
# type: "counter"
grpc_server_started_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "http_request_duration_microseconds"
# description: "The HTTP request latencies in microseconds."
# type: "summary"
http_request_duration_microseconds{handler="prometheus",quantile="0.5"}
http_request_duration_microseconds{handler="prometheus",quantile="0.9"}
http_request_duration_microseconds{handler="prometheus",quantile="0.99"}
http_request_duration_microseconds_sum{handler="prometheus"}
http_request_duration_microseconds_count{handler="prometheus"}
# name: "http_request_size_bytes"
# description: "The HTTP request sizes in bytes."
# type: "summary"
http_request_size_bytes{handler="prometheus",quantile="0.5"}
http_request_size_bytes{handler="prometheus",quantile="0.9"}
http_request_size_bytes{handler="prometheus",quantile="0.99"}
http_request_size_bytes_sum{handler="prometheus"}
http_request_size_bytes_count{handler="prometheus"}
# name: "http_response_size_bytes"
# description: "The HTTP response sizes in bytes."
# type: "summary"
http_response_size_bytes{handler="prometheus",quantile="0.5"}
http_response_size_bytes{handler="prometheus",quantile="0.9"}
http_response_size_bytes{handler="prometheus",quantile="0.99"}
http_response_size_bytes_sum{handler="prometheus"}
http_response_size_bytes_count{handler="prometheus"}

View File

@ -0,0 +1,511 @@
# server version: unknown
# name: "etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of db compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2048"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4096"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_compaction_total_duration_milliseconds"
# description: "Bucketed histogram of db compaction total duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="100"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="1600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="3200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="6400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="12800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="25600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="51200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="102400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="204800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="409600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="819200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_total_size_in_bytes"
# description: "Total size of the underlying database in bytes."
# type: "gauge"
etcd_debugging_mvcc_db_total_size_in_bytes
# name: "etcd_debugging_mvcc_delete_total"
# description: "Total number of deletes seen by this member."
# type: "counter"
etcd_debugging_mvcc_delete_total
# name: "etcd_debugging_mvcc_events_total"
# description: "Total number of events sent by this member."
# type: "counter"
etcd_debugging_mvcc_events_total
# name: "etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of index compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="0.5"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_keys_total"
# description: "Total number of keys."
# type: "gauge"
etcd_debugging_mvcc_keys_total
# name: "etcd_debugging_mvcc_pending_events_total"
# description: "Total number of pending events to be sent."
# type: "gauge"
etcd_debugging_mvcc_pending_events_total
# name: "etcd_debugging_mvcc_put_total"
# description: "Total number of puts seen by this member."
# type: "counter"
etcd_debugging_mvcc_put_total
# name: "etcd_debugging_mvcc_range_total"
# description: "Total number of ranges seen by this member."
# type: "counter"
etcd_debugging_mvcc_range_total
# name: "etcd_debugging_mvcc_slow_watcher_total"
# description: "Total number of unsynced slow watchers."
# type: "gauge"
etcd_debugging_mvcc_slow_watcher_total
# name: "etcd_debugging_mvcc_txn_total"
# description: "Total number of txns seen by this member."
# type: "counter"
etcd_debugging_mvcc_txn_total
# name: "etcd_debugging_mvcc_watch_stream_total"
# description: "Total number of watch streams."
# type: "gauge"
etcd_debugging_mvcc_watch_stream_total
# name: "etcd_debugging_mvcc_watcher_total"
# description: "Total number of watchers."
# type: "gauge"
etcd_debugging_mvcc_watcher_total
# name: "etcd_debugging_snap_save_marshalling_duration_seconds"
# description: "The marshalling cost distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_marshalling_duration_seconds_sum
etcd_debugging_snap_save_marshalling_duration_seconds_count
# name: "etcd_debugging_snap_save_total_duration_seconds"
# description: "The total latency distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_total_duration_seconds_sum
etcd_debugging_snap_save_total_duration_seconds_count
# name: "etcd_debugging_store_expires_total"
# description: "Total number of expired keys."
# type: "counter"
etcd_debugging_store_expires_total
# name: "etcd_debugging_store_reads_total"
# description: "Total number of reads action by (get/getRecursive), local to this member."
# type: "counter"
etcd_debugging_store_reads_total{action="getRecursive"}
# name: "etcd_debugging_store_watch_requests_total"
# description: "Total number of incoming watch requests (new or reestablished)."
# type: "counter"
etcd_debugging_store_watch_requests_total
# name: "etcd_debugging_store_watchers"
# description: "Count of currently active watchers."
# type: "gauge"
etcd_debugging_store_watchers
# name: "etcd_debugging_store_writes_total"
# description: "Total number of writes (e.g. set/compareAndDelete) seen by this member."
# type: "counter"
etcd_debugging_store_writes_total{action="create"}
etcd_debugging_store_writes_total{action="set"}
# name: "etcd_disk_backend_commit_duration_seconds"
# description: "The latency distributions of commit called by backend."
# type: "histogram"
etcd_disk_backend_commit_duration_seconds_bucket{le="0.001"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.002"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.004"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.008"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.016"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.032"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.064"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.128"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.256"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.512"}
etcd_disk_backend_commit_duration_seconds_bucket{le="1.024"}
etcd_disk_backend_commit_duration_seconds_bucket{le="2.048"}
etcd_disk_backend_commit_duration_seconds_bucket{le="4.096"}
etcd_disk_backend_commit_duration_seconds_bucket{le="8.192"}
etcd_disk_backend_commit_duration_seconds_bucket{le="+Inf"}
etcd_disk_backend_commit_duration_seconds_sum
etcd_disk_backend_commit_duration_seconds_count
# name: "etcd_disk_wal_fsync_duration_seconds"
# description: "The latency distributions of fsync called by wal."
# type: "histogram"
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.001"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.002"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.004"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.008"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.016"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.032"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.064"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.128"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.256"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.512"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="1.024"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="2.048"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="4.096"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="8.192"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="+Inf"}
etcd_disk_wal_fsync_duration_seconds_sum
etcd_disk_wal_fsync_duration_seconds_count
# name: "etcd_grpc_proxy_cache_hits_total"
# description: "Total number of cache hits"
# type: "gauge"
etcd_grpc_proxy_cache_hits_total
# name: "etcd_grpc_proxy_cache_misses_total"
# description: "Total number of cache misses"
# type: "gauge"
etcd_grpc_proxy_cache_misses_total
# name: "etcd_grpc_proxy_events_coalescing_total"
# description: "Total number of events coalescing"
# type: "counter"
etcd_grpc_proxy_events_coalescing_total
# name: "etcd_grpc_proxy_watchers_coalescing_total"
# description: "Total number of current watchers coalescing"
# type: "gauge"
etcd_grpc_proxy_watchers_coalescing_total
# name: "etcd_network_client_grpc_received_bytes_total"
# description: "The total number of bytes received from grpc clients."
# type: "counter"
etcd_network_client_grpc_received_bytes_total
# name: "etcd_network_client_grpc_sent_bytes_total"
# description: "The total number of bytes sent to grpc clients."
# type: "counter"
etcd_network_client_grpc_sent_bytes_total
# name: "etcd_network_peer_received_bytes_total"
# description: "The total number of bytes received from peers."
# type: "counter"
etcd_network_peer_received_bytes_total{From="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_round_trip_time_seconds"
# description: "Round-Trip-Time histogram between peers."
# type: "histogram"
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="+Inf"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0001"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0002"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0004"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0008"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0016"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0032"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0064"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0128"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0256"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0512"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.1024"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.2048"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.4096"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.8192"}
etcd_network_peer_round_trip_time_seconds_count{To="REMOTE_PEER_NODE_ID"}
etcd_network_peer_round_trip_time_seconds_sum{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_sent_bytes_total"
# description: "The total number of bytes sent to peers."
# type: "counter"
etcd_network_peer_sent_bytes_total{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_server_has_leader"
# description: "Whether or not a leader exists. 1 is existence, 0 is not."
# type: "gauge"
etcd_server_has_leader
# name: "etcd_server_leader_changes_seen_total"
# description: "The number of leader changes seen."
# type: "counter"
etcd_server_leader_changes_seen_total
# name: "etcd_server_proposals_applied_total"
# description: "The total number of consensus proposals applied."
# type: "gauge"
etcd_server_proposals_applied_total
# name: "etcd_server_proposals_committed_total"
# description: "The total number of consensus proposals committed."
# type: "gauge"
etcd_server_proposals_committed_total
# name: "etcd_server_proposals_failed_total"
# description: "The total number of failed proposals seen."
# type: "counter"
etcd_server_proposals_failed_total
# name: "etcd_server_proposals_pending"
# description: "The current number of pending proposals to commit."
# type: "gauge"
etcd_server_proposals_pending
# name: "go_gc_duration_seconds"
# description: "A summary of the GC invocation durations."
# type: "summary"
go_gc_duration_seconds{quantile="0"}
go_gc_duration_seconds{quantile="0.25"}
go_gc_duration_seconds{quantile="0.5"}
go_gc_duration_seconds{quantile="0.75"}
go_gc_duration_seconds{quantile="1"}
go_gc_duration_seconds_sum
go_gc_duration_seconds_count
# name: "go_goroutines"
# description: "Number of goroutines that currently exist."
# type: "gauge"
go_goroutines
# name: "go_memstats_alloc_bytes"
# description: "Number of bytes allocated and still in use."
# type: "gauge"
go_memstats_alloc_bytes
# name: "go_memstats_alloc_bytes_total"
# description: "Total number of bytes allocated, even if freed."
# type: "counter"
go_memstats_alloc_bytes_total
# name: "go_memstats_buck_hash_sys_bytes"
# description: "Number of bytes used by the profiling bucket hash table."
# type: "gauge"
go_memstats_buck_hash_sys_bytes
# name: "go_memstats_frees_total"
# description: "Total number of frees."
# type: "counter"
go_memstats_frees_total
# name: "go_memstats_gc_sys_bytes"
# description: "Number of bytes used for garbage collection system metadata."
# type: "gauge"
go_memstats_gc_sys_bytes
# name: "go_memstats_heap_alloc_bytes"
# description: "Number of heap bytes allocated and still in use."
# type: "gauge"
go_memstats_heap_alloc_bytes
# name: "go_memstats_heap_idle_bytes"
# description: "Number of heap bytes waiting to be used."
# type: "gauge"
go_memstats_heap_idle_bytes
# name: "go_memstats_heap_inuse_bytes"
# description: "Number of heap bytes that are in use."
# type: "gauge"
go_memstats_heap_inuse_bytes
# name: "go_memstats_heap_objects"
# description: "Number of allocated objects."
# type: "gauge"
go_memstats_heap_objects
# name: "go_memstats_heap_released_bytes_total"
# description: "Total number of heap bytes released to OS."
# type: "counter"
go_memstats_heap_released_bytes_total
# name: "go_memstats_heap_sys_bytes"
# description: "Number of heap bytes obtained from system."
# type: "gauge"
go_memstats_heap_sys_bytes
# name: "go_memstats_last_gc_time_seconds"
# description: "Number of seconds since 1970 of last garbage collection."
# type: "gauge"
go_memstats_last_gc_time_seconds
# name: "go_memstats_lookups_total"
# description: "Total number of pointer lookups."
# type: "counter"
go_memstats_lookups_total
# name: "go_memstats_mallocs_total"
# description: "Total number of mallocs."
# type: "counter"
go_memstats_mallocs_total
# name: "go_memstats_mcache_inuse_bytes"
# description: "Number of bytes in use by mcache structures."
# type: "gauge"
go_memstats_mcache_inuse_bytes
# name: "go_memstats_mcache_sys_bytes"
# description: "Number of bytes used for mcache structures obtained from system."
# type: "gauge"
go_memstats_mcache_sys_bytes
# name: "go_memstats_mspan_inuse_bytes"
# description: "Number of bytes in use by mspan structures."
# type: "gauge"
go_memstats_mspan_inuse_bytes
# name: "go_memstats_mspan_sys_bytes"
# description: "Number of bytes used for mspan structures obtained from system."
# type: "gauge"
go_memstats_mspan_sys_bytes
# name: "go_memstats_next_gc_bytes"
# description: "Number of heap bytes when next garbage collection will take place."
# type: "gauge"
go_memstats_next_gc_bytes
# name: "go_memstats_other_sys_bytes"
# description: "Number of bytes used for other system allocations."
# type: "gauge"
go_memstats_other_sys_bytes
# name: "go_memstats_stack_inuse_bytes"
# description: "Number of bytes in use by the stack allocator."
# type: "gauge"
go_memstats_stack_inuse_bytes
# name: "go_memstats_stack_sys_bytes"
# description: "Number of bytes obtained from system for stack allocator."
# type: "gauge"
go_memstats_stack_sys_bytes
# name: "go_memstats_sys_bytes"
# description: "Number of bytes obtained by system. Sum of all system allocations."
# type: "gauge"
go_memstats_sys_bytes
# name: "grpc_server_handled_total"
# description: "Total number of RPCs completed on the server, regardless of success or failure."
# type: "counter"
# gRPC codes:
# - "OK"
# - "Unavailable"
grpc_server_handled_total{grpc_code="CODE",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_received_total"
# description: "Total number of RPC stream messages received on the server."
# type: "counter"
grpc_server_msg_received_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_sent_total"
# description: "Total number of gRPC stream messages sent by the server."
# type: "counter"
grpc_server_msg_sent_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_started_total"
# description: "Total number of RPCs started on the server."
# type: "counter"
grpc_server_started_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "http_request_duration_microseconds"
# description: "The HTTP request latencies in microseconds."
# type: "summary"
http_request_duration_microseconds{handler="prometheus",quantile="0.5"}
http_request_duration_microseconds{handler="prometheus",quantile="0.9"}
http_request_duration_microseconds{handler="prometheus",quantile="0.99"}
http_request_duration_microseconds_sum{handler="prometheus"}
http_request_duration_microseconds_count{handler="prometheus"}
# name: "http_request_size_bytes"
# description: "The HTTP request sizes in bytes."
# type: "summary"
http_request_size_bytes{handler="prometheus",quantile="0.5"}
http_request_size_bytes{handler="prometheus",quantile="0.9"}
http_request_size_bytes{handler="prometheus",quantile="0.99"}
http_request_size_bytes_sum{handler="prometheus"}
http_request_size_bytes_count{handler="prometheus"}
# name: "http_response_size_bytes"
# description: "The HTTP response sizes in bytes."
# type: "summary"
http_response_size_bytes{handler="prometheus",quantile="0.5"}
http_response_size_bytes{handler="prometheus",quantile="0.9"}
http_response_size_bytes{handler="prometheus",quantile="0.99"}
http_response_size_bytes_sum{handler="prometheus"}
http_response_size_bytes_count{handler="prometheus"}

View File

@ -0,0 +1,511 @@
# server version: unknown
# name: "etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of db compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2048"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4096"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_compaction_total_duration_milliseconds"
# description: "Bucketed histogram of db compaction total duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="100"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="1600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="3200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="6400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="12800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="25600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="51200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="102400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="204800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="409600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="819200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_total_size_in_bytes"
# description: "Total size of the underlying database in bytes."
# type: "gauge"
etcd_debugging_mvcc_db_total_size_in_bytes
# name: "etcd_debugging_mvcc_delete_total"
# description: "Total number of deletes seen by this member."
# type: "counter"
etcd_debugging_mvcc_delete_total
# name: "etcd_debugging_mvcc_events_total"
# description: "Total number of events sent by this member."
# type: "counter"
etcd_debugging_mvcc_events_total
# name: "etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of index compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="0.5"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_keys_total"
# description: "Total number of keys."
# type: "gauge"
etcd_debugging_mvcc_keys_total
# name: "etcd_debugging_mvcc_pending_events_total"
# description: "Total number of pending events to be sent."
# type: "gauge"
etcd_debugging_mvcc_pending_events_total
# name: "etcd_debugging_mvcc_put_total"
# description: "Total number of puts seen by this member."
# type: "counter"
etcd_debugging_mvcc_put_total
# name: "etcd_debugging_mvcc_range_total"
# description: "Total number of ranges seen by this member."
# type: "counter"
etcd_debugging_mvcc_range_total
# name: "etcd_debugging_mvcc_slow_watcher_total"
# description: "Total number of unsynced slow watchers."
# type: "gauge"
etcd_debugging_mvcc_slow_watcher_total
# name: "etcd_debugging_mvcc_txn_total"
# description: "Total number of txns seen by this member."
# type: "counter"
etcd_debugging_mvcc_txn_total
# name: "etcd_debugging_mvcc_watch_stream_total"
# description: "Total number of watch streams."
# type: "gauge"
etcd_debugging_mvcc_watch_stream_total
# name: "etcd_debugging_mvcc_watcher_total"
# description: "Total number of watchers."
# type: "gauge"
etcd_debugging_mvcc_watcher_total
# name: "etcd_debugging_snap_save_marshalling_duration_seconds"
# description: "The marshalling cost distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_marshalling_duration_seconds_sum
etcd_debugging_snap_save_marshalling_duration_seconds_count
# name: "etcd_debugging_snap_save_total_duration_seconds"
# description: "The total latency distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_total_duration_seconds_sum
etcd_debugging_snap_save_total_duration_seconds_count
# name: "etcd_debugging_store_expires_total"
# description: "Total number of expired keys."
# type: "counter"
etcd_debugging_store_expires_total
# name: "etcd_debugging_store_reads_total"
# description: "Total number of reads action by (get/getRecursive), local to this member."
# type: "counter"
etcd_debugging_store_reads_total{action="getRecursive"}
# name: "etcd_debugging_store_watch_requests_total"
# description: "Total number of incoming watch requests (new or reestablished)."
# type: "counter"
etcd_debugging_store_watch_requests_total
# name: "etcd_debugging_store_watchers"
# description: "Count of currently active watchers."
# type: "gauge"
etcd_debugging_store_watchers
# name: "etcd_debugging_store_writes_total"
# description: "Total number of writes (e.g. set/compareAndDelete) seen by this member."
# type: "counter"
etcd_debugging_store_writes_total{action="create"}
etcd_debugging_store_writes_total{action="set"}
# name: "etcd_disk_backend_commit_duration_seconds"
# description: "The latency distributions of commit called by backend."
# type: "histogram"
etcd_disk_backend_commit_duration_seconds_bucket{le="0.001"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.002"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.004"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.008"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.016"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.032"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.064"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.128"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.256"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.512"}
etcd_disk_backend_commit_duration_seconds_bucket{le="1.024"}
etcd_disk_backend_commit_duration_seconds_bucket{le="2.048"}
etcd_disk_backend_commit_duration_seconds_bucket{le="4.096"}
etcd_disk_backend_commit_duration_seconds_bucket{le="8.192"}
etcd_disk_backend_commit_duration_seconds_bucket{le="+Inf"}
etcd_disk_backend_commit_duration_seconds_sum
etcd_disk_backend_commit_duration_seconds_count
# name: "etcd_disk_wal_fsync_duration_seconds"
# description: "The latency distributions of fsync called by wal."
# type: "histogram"
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.001"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.002"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.004"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.008"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.016"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.032"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.064"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.128"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.256"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.512"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="1.024"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="2.048"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="4.096"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="8.192"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="+Inf"}
etcd_disk_wal_fsync_duration_seconds_sum
etcd_disk_wal_fsync_duration_seconds_count
# name: "etcd_grpc_proxy_cache_hits_total"
# description: "Total number of cache hits"
# type: "gauge"
etcd_grpc_proxy_cache_hits_total
# name: "etcd_grpc_proxy_cache_misses_total"
# description: "Total number of cache misses"
# type: "gauge"
etcd_grpc_proxy_cache_misses_total
# name: "etcd_grpc_proxy_events_coalescing_total"
# description: "Total number of events coalescing"
# type: "counter"
etcd_grpc_proxy_events_coalescing_total
# name: "etcd_grpc_proxy_watchers_coalescing_total"
# description: "Total number of current watchers coalescing"
# type: "gauge"
etcd_grpc_proxy_watchers_coalescing_total
# name: "etcd_network_client_grpc_received_bytes_total"
# description: "The total number of bytes received from grpc clients."
# type: "counter"
etcd_network_client_grpc_received_bytes_total
# name: "etcd_network_client_grpc_sent_bytes_total"
# description: "The total number of bytes sent to grpc clients."
# type: "counter"
etcd_network_client_grpc_sent_bytes_total
# name: "etcd_network_peer_received_bytes_total"
# description: "The total number of bytes received from peers."
# type: "counter"
etcd_network_peer_received_bytes_total{From="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_round_trip_time_seconds"
# description: "Round-Trip-Time histogram between peers."
# type: "histogram"
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="+Inf"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0001"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0002"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0004"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0008"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0016"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0032"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0064"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0128"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0256"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0512"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.1024"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.2048"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.4096"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.8192"}
etcd_network_peer_round_trip_time_seconds_count{To="REMOTE_PEER_NODE_ID"}
etcd_network_peer_round_trip_time_seconds_sum{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_sent_bytes_total"
# description: "The total number of bytes sent to peers."
# type: "counter"
etcd_network_peer_sent_bytes_total{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_server_has_leader"
# description: "Whether or not a leader exists. 1 is existence, 0 is not."
# type: "gauge"
etcd_server_has_leader
# name: "etcd_server_leader_changes_seen_total"
# description: "The number of leader changes seen."
# type: "counter"
etcd_server_leader_changes_seen_total
# name: "etcd_server_proposals_applied_total"
# description: "The total number of consensus proposals applied."
# type: "gauge"
etcd_server_proposals_applied_total
# name: "etcd_server_proposals_committed_total"
# description: "The total number of consensus proposals committed."
# type: "gauge"
etcd_server_proposals_committed_total
# name: "etcd_server_proposals_failed_total"
# description: "The total number of failed proposals seen."
# type: "counter"
etcd_server_proposals_failed_total
# name: "etcd_server_proposals_pending"
# description: "The current number of pending proposals to commit."
# type: "gauge"
etcd_server_proposals_pending
# name: "go_gc_duration_seconds"
# description: "A summary of the GC invocation durations."
# type: "summary"
go_gc_duration_seconds{quantile="0"}
go_gc_duration_seconds{quantile="0.25"}
go_gc_duration_seconds{quantile="0.5"}
go_gc_duration_seconds{quantile="0.75"}
go_gc_duration_seconds{quantile="1"}
go_gc_duration_seconds_sum
go_gc_duration_seconds_count
# name: "go_goroutines"
# description: "Number of goroutines that currently exist."
# type: "gauge"
go_goroutines
# name: "go_memstats_alloc_bytes"
# description: "Number of bytes allocated and still in use."
# type: "gauge"
go_memstats_alloc_bytes
# name: "go_memstats_alloc_bytes_total"
# description: "Total number of bytes allocated, even if freed."
# type: "counter"
go_memstats_alloc_bytes_total
# name: "go_memstats_buck_hash_sys_bytes"
# description: "Number of bytes used by the profiling bucket hash table."
# type: "gauge"
go_memstats_buck_hash_sys_bytes
# name: "go_memstats_frees_total"
# description: "Total number of frees."
# type: "counter"
go_memstats_frees_total
# name: "go_memstats_gc_sys_bytes"
# description: "Number of bytes used for garbage collection system metadata."
# type: "gauge"
go_memstats_gc_sys_bytes
# name: "go_memstats_heap_alloc_bytes"
# description: "Number of heap bytes allocated and still in use."
# type: "gauge"
go_memstats_heap_alloc_bytes
# name: "go_memstats_heap_idle_bytes"
# description: "Number of heap bytes waiting to be used."
# type: "gauge"
go_memstats_heap_idle_bytes
# name: "go_memstats_heap_inuse_bytes"
# description: "Number of heap bytes that are in use."
# type: "gauge"
go_memstats_heap_inuse_bytes
# name: "go_memstats_heap_objects"
# description: "Number of allocated objects."
# type: "gauge"
go_memstats_heap_objects
# name: "go_memstats_heap_released_bytes_total"
# description: "Total number of heap bytes released to OS."
# type: "counter"
go_memstats_heap_released_bytes_total
# name: "go_memstats_heap_sys_bytes"
# description: "Number of heap bytes obtained from system."
# type: "gauge"
go_memstats_heap_sys_bytes
# name: "go_memstats_last_gc_time_seconds"
# description: "Number of seconds since 1970 of last garbage collection."
# type: "gauge"
go_memstats_last_gc_time_seconds
# name: "go_memstats_lookups_total"
# description: "Total number of pointer lookups."
# type: "counter"
go_memstats_lookups_total
# name: "go_memstats_mallocs_total"
# description: "Total number of mallocs."
# type: "counter"
go_memstats_mallocs_total
# name: "go_memstats_mcache_inuse_bytes"
# description: "Number of bytes in use by mcache structures."
# type: "gauge"
go_memstats_mcache_inuse_bytes
# name: "go_memstats_mcache_sys_bytes"
# description: "Number of bytes used for mcache structures obtained from system."
# type: "gauge"
go_memstats_mcache_sys_bytes
# name: "go_memstats_mspan_inuse_bytes"
# description: "Number of bytes in use by mspan structures."
# type: "gauge"
go_memstats_mspan_inuse_bytes
# name: "go_memstats_mspan_sys_bytes"
# description: "Number of bytes used for mspan structures obtained from system."
# type: "gauge"
go_memstats_mspan_sys_bytes
# name: "go_memstats_next_gc_bytes"
# description: "Number of heap bytes when next garbage collection will take place."
# type: "gauge"
go_memstats_next_gc_bytes
# name: "go_memstats_other_sys_bytes"
# description: "Number of bytes used for other system allocations."
# type: "gauge"
go_memstats_other_sys_bytes
# name: "go_memstats_stack_inuse_bytes"
# description: "Number of bytes in use by the stack allocator."
# type: "gauge"
go_memstats_stack_inuse_bytes
# name: "go_memstats_stack_sys_bytes"
# description: "Number of bytes obtained from system for stack allocator."
# type: "gauge"
go_memstats_stack_sys_bytes
# name: "go_memstats_sys_bytes"
# description: "Number of bytes obtained by system. Sum of all system allocations."
# type: "gauge"
go_memstats_sys_bytes
# name: "grpc_server_handled_total"
# description: "Total number of RPCs completed on the server, regardless of success or failure."
# type: "counter"
# gRPC codes:
# - "OK"
# - "Unavailable"
grpc_server_handled_total{grpc_code="CODE",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_received_total"
# description: "Total number of RPC stream messages received on the server."
# type: "counter"
grpc_server_msg_received_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_sent_total"
# description: "Total number of gRPC stream messages sent by the server."
# type: "counter"
grpc_server_msg_sent_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_started_total"
# description: "Total number of RPCs started on the server."
# type: "counter"
grpc_server_started_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "http_request_duration_microseconds"
# description: "The HTTP request latencies in microseconds."
# type: "summary"
http_request_duration_microseconds{handler="prometheus",quantile="0.5"}
http_request_duration_microseconds{handler="prometheus",quantile="0.9"}
http_request_duration_microseconds{handler="prometheus",quantile="0.99"}
http_request_duration_microseconds_sum{handler="prometheus"}
http_request_duration_microseconds_count{handler="prometheus"}
# name: "http_request_size_bytes"
# description: "The HTTP request sizes in bytes."
# type: "summary"
http_request_size_bytes{handler="prometheus",quantile="0.5"}
http_request_size_bytes{handler="prometheus",quantile="0.9"}
http_request_size_bytes{handler="prometheus",quantile="0.99"}
http_request_size_bytes_sum{handler="prometheus"}
http_request_size_bytes_count{handler="prometheus"}
# name: "http_response_size_bytes"
# description: "The HTTP response sizes in bytes."
# type: "summary"
http_response_size_bytes{handler="prometheus",quantile="0.5"}
http_response_size_bytes{handler="prometheus",quantile="0.9"}
http_response_size_bytes{handler="prometheus",quantile="0.99"}
http_response_size_bytes_sum{handler="prometheus"}
http_response_size_bytes_count{handler="prometheus"}

View File

@ -0,0 +1,545 @@
# server version: unknown
# name: "etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of db compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2048"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4096"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_compaction_total_duration_milliseconds"
# description: "Bucketed histogram of db compaction total duration."
# type: "histogram"
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="100"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="1600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="3200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="6400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="12800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="25600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="51200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="102400"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="204800"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="409600"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="819200"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_sum
etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_count
# name: "etcd_debugging_mvcc_db_total_size_in_bytes"
# description: "Total size of the underlying database in bytes."
# type: "gauge"
etcd_debugging_mvcc_db_total_size_in_bytes
# name: "etcd_debugging_mvcc_delete_total"
# description: "Total number of deletes seen by this member."
# type: "counter"
etcd_debugging_mvcc_delete_total
# name: "etcd_debugging_mvcc_events_total"
# description: "Total number of events sent by this member."
# type: "counter"
etcd_debugging_mvcc_events_total
# name: "etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds"
# description: "Bucketed histogram of index compaction pause duration."
# type: "histogram"
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="0.5"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="2"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="4"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="8"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="16"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="32"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="64"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="128"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="256"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="512"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1024"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="+Inf"}
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_sum
etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_count
# name: "etcd_debugging_mvcc_keys_total"
# description: "Total number of keys."
# type: "gauge"
etcd_debugging_mvcc_keys_total
# name: "etcd_debugging_mvcc_pending_events_total"
# description: "Total number of pending events to be sent."
# type: "gauge"
etcd_debugging_mvcc_pending_events_total
# name: "etcd_debugging_mvcc_put_total"
# description: "Total number of puts seen by this member."
# type: "counter"
etcd_debugging_mvcc_put_total
# name: "etcd_debugging_mvcc_range_total"
# description: "Total number of ranges seen by this member."
# type: "counter"
etcd_debugging_mvcc_range_total
# name: "etcd_debugging_mvcc_slow_watcher_total"
# description: "Total number of unsynced slow watchers."
# type: "gauge"
etcd_debugging_mvcc_slow_watcher_total
# name: "etcd_debugging_mvcc_txn_total"
# description: "Total number of txns seen by this member."
# type: "counter"
etcd_debugging_mvcc_txn_total
# name: "etcd_debugging_mvcc_watch_stream_total"
# description: "Total number of watch streams."
# type: "gauge"
etcd_debugging_mvcc_watch_stream_total
# name: "etcd_debugging_mvcc_watcher_total"
# description: "Total number of watchers."
# type: "gauge"
etcd_debugging_mvcc_watcher_total
# name: "etcd_debugging_server_lease_expired_total"
# description: "The total number of expired leases."
# type: "counter"
etcd_debugging_server_lease_expired_total
# name: "etcd_debugging_snap_save_marshalling_duration_seconds"
# description: "The marshalling cost distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_marshalling_duration_seconds_sum
etcd_debugging_snap_save_marshalling_duration_seconds_count
# name: "etcd_debugging_snap_save_total_duration_seconds"
# description: "The total latency distributions of save called by snapshot."
# type: "histogram"
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.001"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.002"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.004"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.008"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.016"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.032"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.064"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.128"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.256"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.512"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="1.024"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="2.048"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="4.096"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="8.192"}
etcd_debugging_snap_save_total_duration_seconds_bucket{le="+Inf"}
etcd_debugging_snap_save_total_duration_seconds_sum
etcd_debugging_snap_save_total_duration_seconds_count
# name: "etcd_debugging_store_expires_total"
# description: "Total number of expired keys."
# type: "counter"
etcd_debugging_store_expires_total
# name: "etcd_debugging_store_reads_total"
# description: "Total number of reads action by (get/getRecursive), local to this member."
# type: "counter"
etcd_debugging_store_reads_total{action="getRecursive"}
# name: "etcd_debugging_store_watch_requests_total"
# description: "Total number of incoming watch requests (new or reestablished)."
# type: "counter"
etcd_debugging_store_watch_requests_total
# name: "etcd_debugging_store_watchers"
# description: "Count of currently active watchers."
# type: "gauge"
etcd_debugging_store_watchers
# name: "etcd_debugging_store_writes_total"
# description: "Total number of writes (e.g. set/compareAndDelete) seen by this member."
# type: "counter"
etcd_debugging_store_writes_total{action="create"}
etcd_debugging_store_writes_total{action="set"}
# name: "etcd_disk_backend_commit_duration_seconds"
# description: "The latency distributions of commit called by backend."
# type: "histogram"
etcd_disk_backend_commit_duration_seconds_bucket{le="0.001"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.002"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.004"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.008"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.016"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.032"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.064"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.128"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.256"}
etcd_disk_backend_commit_duration_seconds_bucket{le="0.512"}
etcd_disk_backend_commit_duration_seconds_bucket{le="1.024"}
etcd_disk_backend_commit_duration_seconds_bucket{le="2.048"}
etcd_disk_backend_commit_duration_seconds_bucket{le="4.096"}
etcd_disk_backend_commit_duration_seconds_bucket{le="8.192"}
etcd_disk_backend_commit_duration_seconds_bucket{le="+Inf"}
etcd_disk_backend_commit_duration_seconds_sum
etcd_disk_backend_commit_duration_seconds_count
# name: "etcd_disk_backend_snapshot_duration_seconds"
# description: "The latency distribution of backend snapshots."
# type: "histogram"
etcd_disk_backend_snapshot_duration_seconds_bucket{le="0.01"}
etcd_disk_backend_snapshot_duration_seconds_bucket{le="0.02"}
etcd_disk_backend_snapshot_duration_seconds_bucket{le="0.04"}
etcd_disk_backend_snapshot_duration_seconds_bucket{le="0.08"}
etcd_disk_backend_snapshot_duration_seconds_bucket{le="0.16"}
etcd_disk_backend_snapshot_duration_seconds_bucket{le="0.32"}
etcd_disk_backend_snapshot_duration_seconds_bucket{le="0.64"}
etcd_disk_backend_snapshot_duration_seconds_bucket{le="1.28"}
etcd_disk_backend_snapshot_duration_seconds_bucket{le="2.56"}
etcd_disk_backend_snapshot_duration_seconds_bucket{le="5.12"}
etcd_disk_backend_snapshot_duration_seconds_bucket{le="10.24"}
etcd_disk_backend_snapshot_duration_seconds_bucket{le="20.48"}
etcd_disk_backend_snapshot_duration_seconds_bucket{le="40.96"}
etcd_disk_backend_snapshot_duration_seconds_bucket{le="81.92"}
etcd_disk_backend_snapshot_duration_seconds_bucket{le="163.84"}
etcd_disk_backend_snapshot_duration_seconds_bucket{le="327.68"}
etcd_disk_backend_snapshot_duration_seconds_bucket{le="655.36"}
etcd_disk_backend_snapshot_duration_seconds_bucket{le="+Inf"}
etcd_disk_backend_snapshot_duration_seconds_sum
etcd_disk_backend_snapshot_duration_seconds_count
# name: "etcd_disk_wal_fsync_duration_seconds"
# description: "The latency distributions of fsync called by wal."
# type: "histogram"
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.001"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.002"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.004"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.008"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.016"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.032"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.064"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.128"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.256"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="0.512"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="1.024"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="2.048"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="4.096"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="8.192"}
etcd_disk_wal_fsync_duration_seconds_bucket{le="+Inf"}
etcd_disk_wal_fsync_duration_seconds_sum
etcd_disk_wal_fsync_duration_seconds_count
# name: "etcd_grpc_proxy_cache_hits_total"
# description: "Total number of cache hits"
# type: "gauge"
etcd_grpc_proxy_cache_hits_total
# name: "etcd_grpc_proxy_cache_keys_total"
# description: "Total number of keys/ranges cached"
# type: "gauge"
etcd_grpc_proxy_cache_keys_total
# name: "etcd_grpc_proxy_cache_misses_total"
# description: "Total number of cache misses"
# type: "gauge"
etcd_grpc_proxy_cache_misses_total
# name: "etcd_grpc_proxy_events_coalescing_total"
# description: "Total number of events coalescing"
# type: "counter"
etcd_grpc_proxy_events_coalescing_total
# name: "etcd_grpc_proxy_watchers_coalescing_total"
# description: "Total number of current watchers coalescing"
# type: "gauge"
etcd_grpc_proxy_watchers_coalescing_total
# name: "etcd_network_client_grpc_received_bytes_total"
# description: "The total number of bytes received from grpc clients."
# type: "counter"
etcd_network_client_grpc_received_bytes_total
# name: "etcd_network_client_grpc_sent_bytes_total"
# description: "The total number of bytes sent to grpc clients."
# type: "counter"
etcd_network_client_grpc_sent_bytes_total
# name: "etcd_network_peer_received_bytes_total"
# description: "The total number of bytes received from peers."
# type: "counter"
etcd_network_peer_received_bytes_total{From="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_round_trip_time_seconds"
# description: "Round-Trip-Time histogram between peers."
# type: "histogram"
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="+Inf"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0001"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0002"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0004"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0008"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0016"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0032"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0064"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0128"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0256"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.0512"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.1024"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.2048"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.4096"}
etcd_network_peer_round_trip_time_seconds_bucket{To="REMOTE_PEER_NODE_ID",le="0.8192"}
etcd_network_peer_round_trip_time_seconds_count{To="REMOTE_PEER_NODE_ID"}
etcd_network_peer_round_trip_time_seconds_sum{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_network_peer_sent_bytes_total"
# description: "The total number of bytes sent to peers."
# type: "counter"
etcd_network_peer_sent_bytes_total{To="REMOTE_PEER_NODE_ID"}
# name: "etcd_server_has_leader"
# description: "Whether or not a leader exists. 1 is existence, 0 is not."
# type: "gauge"
etcd_server_has_leader
# name: "etcd_server_leader_changes_seen_total"
# description: "The number of leader changes seen."
# type: "counter"
etcd_server_leader_changes_seen_total
# name: "etcd_server_proposals_applied_total"
# description: "The total number of consensus proposals applied."
# type: "gauge"
etcd_server_proposals_applied_total
# name: "etcd_server_proposals_committed_total"
# description: "The total number of consensus proposals committed."
# type: "gauge"
etcd_server_proposals_committed_total
# name: "etcd_server_proposals_failed_total"
# description: "The total number of failed proposals seen."
# type: "counter"
etcd_server_proposals_failed_total
# name: "etcd_server_proposals_pending"
# description: "The current number of pending proposals to commit."
# type: "gauge"
etcd_server_proposals_pending
# name: "go_gc_duration_seconds"
# description: "A summary of the GC invocation durations."
# type: "summary"
go_gc_duration_seconds{quantile="0"}
go_gc_duration_seconds{quantile="0.25"}
go_gc_duration_seconds{quantile="0.5"}
go_gc_duration_seconds{quantile="0.75"}
go_gc_duration_seconds{quantile="1"}
go_gc_duration_seconds_sum
go_gc_duration_seconds_count
# name: "go_goroutines"
# description: "Number of goroutines that currently exist."
# type: "gauge"
go_goroutines
# name: "go_memstats_alloc_bytes"
# description: "Number of bytes allocated and still in use."
# type: "gauge"
go_memstats_alloc_bytes
# name: "go_memstats_alloc_bytes_total"
# description: "Total number of bytes allocated, even if freed."
# type: "counter"
go_memstats_alloc_bytes_total
# name: "go_memstats_buck_hash_sys_bytes"
# description: "Number of bytes used by the profiling bucket hash table."
# type: "gauge"
go_memstats_buck_hash_sys_bytes
# name: "go_memstats_frees_total"
# description: "Total number of frees."
# type: "counter"
go_memstats_frees_total
# name: "go_memstats_gc_sys_bytes"
# description: "Number of bytes used for garbage collection system metadata."
# type: "gauge"
go_memstats_gc_sys_bytes
# name: "go_memstats_heap_alloc_bytes"
# description: "Number of heap bytes allocated and still in use."
# type: "gauge"
go_memstats_heap_alloc_bytes
# name: "go_memstats_heap_idle_bytes"
# description: "Number of heap bytes waiting to be used."
# type: "gauge"
go_memstats_heap_idle_bytes
# name: "go_memstats_heap_inuse_bytes"
# description: "Number of heap bytes that are in use."
# type: "gauge"
go_memstats_heap_inuse_bytes
# name: "go_memstats_heap_objects"
# description: "Number of allocated objects."
# type: "gauge"
go_memstats_heap_objects
# name: "go_memstats_heap_released_bytes_total"
# description: "Total number of heap bytes released to OS."
# type: "counter"
go_memstats_heap_released_bytes_total
# name: "go_memstats_heap_sys_bytes"
# description: "Number of heap bytes obtained from system."
# type: "gauge"
go_memstats_heap_sys_bytes
# name: "go_memstats_last_gc_time_seconds"
# description: "Number of seconds since 1970 of last garbage collection."
# type: "gauge"
go_memstats_last_gc_time_seconds
# name: "go_memstats_lookups_total"
# description: "Total number of pointer lookups."
# type: "counter"
go_memstats_lookups_total
# name: "go_memstats_mallocs_total"
# description: "Total number of mallocs."
# type: "counter"
go_memstats_mallocs_total
# name: "go_memstats_mcache_inuse_bytes"
# description: "Number of bytes in use by mcache structures."
# type: "gauge"
go_memstats_mcache_inuse_bytes
# name: "go_memstats_mcache_sys_bytes"
# description: "Number of bytes used for mcache structures obtained from system."
# type: "gauge"
go_memstats_mcache_sys_bytes
# name: "go_memstats_mspan_inuse_bytes"
# description: "Number of bytes in use by mspan structures."
# type: "gauge"
go_memstats_mspan_inuse_bytes
# name: "go_memstats_mspan_sys_bytes"
# description: "Number of bytes used for mspan structures obtained from system."
# type: "gauge"
go_memstats_mspan_sys_bytes
# name: "go_memstats_next_gc_bytes"
# description: "Number of heap bytes when next garbage collection will take place."
# type: "gauge"
go_memstats_next_gc_bytes
# name: "go_memstats_other_sys_bytes"
# description: "Number of bytes used for other system allocations."
# type: "gauge"
go_memstats_other_sys_bytes
# name: "go_memstats_stack_inuse_bytes"
# description: "Number of bytes in use by the stack allocator."
# type: "gauge"
go_memstats_stack_inuse_bytes
# name: "go_memstats_stack_sys_bytes"
# description: "Number of bytes obtained from system for stack allocator."
# type: "gauge"
go_memstats_stack_sys_bytes
# name: "go_memstats_sys_bytes"
# description: "Number of bytes obtained by system. Sum of all system allocations."
# type: "gauge"
go_memstats_sys_bytes
# name: "grpc_server_handled_total"
# description: "Total number of RPCs completed on the server, regardless of success or failure."
# type: "counter"
# gRPC codes:
# - "OK"
# - "Unavailable"
grpc_server_handled_total{grpc_code="CODE",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_handled_total{grpc_code="CODE",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_received_total"
# description: "Total number of RPC stream messages received on the server."
# type: "counter"
grpc_server_msg_received_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_received_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_msg_sent_total"
# description: "Total number of gRPC stream messages sent by the server."
# type: "counter"
grpc_server_msg_sent_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_msg_sent_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "grpc_server_started_total"
# description: "Total number of RPCs started on the server."
# type: "counter"
grpc_server_started_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"}
grpc_server_started_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"}
# name: "http_request_duration_microseconds"
# description: "The HTTP request latencies in microseconds."
# type: "summary"
http_request_duration_microseconds{handler="prometheus",quantile="0.5"}
http_request_duration_microseconds{handler="prometheus",quantile="0.9"}
http_request_duration_microseconds{handler="prometheus",quantile="0.99"}
http_request_duration_microseconds_sum{handler="prometheus"}
http_request_duration_microseconds_count{handler="prometheus"}
# name: "http_request_size_bytes"
# description: "The HTTP request sizes in bytes."
# type: "summary"
http_request_size_bytes{handler="prometheus",quantile="0.5"}
http_request_size_bytes{handler="prometheus",quantile="0.9"}
http_request_size_bytes{handler="prometheus",quantile="0.99"}
http_request_size_bytes_sum{handler="prometheus"}
http_request_size_bytes_count{handler="prometheus"}
# name: "http_response_size_bytes"
# description: "The HTTP response sizes in bytes."
# type: "summary"
http_response_size_bytes{handler="prometheus",quantile="0.5"}
http_response_size_bytes{handler="prometheus",quantile="0.9"}
http_response_size_bytes{handler="prometheus",quantile="0.99"}
http_response_size_bytes_sum{handler="prometheus"}
http_response_size_bytes_count{handler="prometheus"}

Some files were not shown because too many files have changed in this diff Show More