coredns/plugin
Ruslan Drozhdzh 45ef657d36 Increase performance of Dnstap plugin (#1280)
- added dnstapEncoder object which incapsulates marshalling of dnstap
   messages to protobuf and writing data to connection

 - dnstapEncoder writes data directly to connection object. It doesn't
   use the framestream's "write" method, because it writes data to
   intermediate buffer (bufio.Writer) which leads to unnecessary
   data copying and drops the performance

 - dnstapEncoder reuses a preallocated buffer for marshalling dnstap
   messages. Many messages are added to the same buffer. They are
   separated with a "frame length" 4-byte values, so the buffer content
   is writen to connection object in the format compatible with
   framestream library

 - added test which guarantees that dnstapEncoder output is the same
   as framestream Encoder output

 - the performance increase is about 50% in (dio *dnstapIO) serve() method
   of dnstap plugin. The overall coredns performance increase is about 10%
   in the following configuration:

   .:1053 {
       erratic {
           drop 0
           truncate 0
           delay 0
       }
       dnstap tcp://127.0.0.1:6000 full
       errors stdout
   }

   tested with dnsperf tool
2017-12-06 10:36:04 +00:00
..
auto doc update (#1140) 2017-10-10 09:39:35 +02:00
autopath docs: less CoreDNS in docs (#1154) 2017-10-20 09:47:43 +01:00
bind plugins: expand examples (#1077) 2017-09-15 09:56:05 +01:00
cache fuzz: put fuzzing stuff in own build tag (#1215) 2017-11-10 13:59:42 +00:00
chaos docs: less CoreDNS in docs (#1154) 2017-10-20 09:47:43 +01:00
debug docs: less CoreDNS in docs (#1154) 2017-10-20 09:47:43 +01:00
dnssec plugin/dnssec: Drop inserting DS records on delegation (#1266) 2017-12-01 11:14:39 +00:00
dnstap Increase performance of Dnstap plugin (#1280) 2017-12-06 10:36:04 +00:00
erratic plugin/health: implement dyn health checks (#1214) 2017-11-13 09:52:40 +00:00
errors pkg: add dnstest (#1098) 2017-09-21 15:15:47 +01:00
etcd Update etcd/README.md for multiple endpoints, and add additional test cases (#1277) 2017-12-05 18:02:37 +00:00
federation this too 2017-11-13 16:15:10 +00:00
file fuzz: put fuzzing stuff in own build tag (#1215) 2017-11-10 13:59:42 +00:00
health plugin/health: implement dyn health checks (#1214) 2017-11-13 09:52:40 +00:00
hosts add goroutine to check hosts file for updates (#1180) 2017-10-31 07:40:47 +00:00
kubernetes fix external service type check (#1246) 2017-11-22 11:17:27 +00:00
loadbalance doc update (#1140) 2017-10-10 09:39:35 +02:00
log plugin/log: remove need to specify stdout (#1221) 2017-11-13 09:23:27 +00:00
metrics metrics: use exponentional buckets (#1261) 2017-12-01 11:15:05 +00:00
nsid Update docs with missing ~ (#1276) 2017-12-04 16:49:04 +00:00
pkg plugin/proxy: when HC fails increase fails (#1270) 2017-12-01 15:57:34 +00:00
pprof doc update (#1140) 2017-10-10 09:39:35 +02:00
proxy plugin/proxy: add note about HC and google_https (#1269) 2017-12-01 13:21:18 +00:00
reverse docs: less CoreDNS in docs (#1154) 2017-10-20 09:47:43 +01:00
rewrite plugin/rewrite: don't set or use ecs.DraftOption (#1262) 2017-11-28 14:03:20 +00:00
root docs: less CoreDNS in docs (#1154) 2017-10-20 09:47:43 +01:00
secondary Remove the word middleware (#1067) 2017-09-14 09:36:06 +01:00
test golint cleanup (#1085) 2017-09-15 23:34:02 +01:00
tls Remove the word middleware (#1067) 2017-09-14 09:36:06 +01:00
trace plugin: README.md updates (#1084) 2017-09-15 22:27:55 +01:00
whoami docs: less CoreDNS in docs (#1154) 2017-10-20 09:47:43 +01:00
backend.go plugin/{kubernetes/etcd}: dynamic SOA (#1188) 2017-11-01 10:11:34 +00:00
backend_lookup.go plugin/{kubernetes/etcd}: dynamic SOA (#1188) 2017-11-01 10:11:34 +00:00
normalize.go CIDR query routing (#1159) 2017-10-24 10:16:03 +01:00
normalize_test.go CIDR query routing (#1159) 2017-10-24 10:16:03 +01:00
plugin.go Fix time bucketing of response time (#1274) 2017-12-05 18:51:55 +00:00
plugin_test.go Remove the word middleware (#1067) 2017-09-14 09:36:06 +01:00