aboutsummaryrefslogtreecommitdiff
path: root/plugin/kubernetes/object/pod.go
diff options
context:
space:
mode:
authorGravatar janluk <janluk@google.com> 2019-10-04 17:48:43 +0200
committerGravatar Miek Gieben <miek@miek.nl> 2019-10-04 16:48:43 +0100
commitd7cdb992b4f96603d444b7ab058594563c5fe043 (patch)
treef86cd9bc6acc2c69b30a0980b2a4ed2b481ca45f /plugin/kubernetes/object/pod.go
parent03ea2ae955823612da2e3b2ebf21da7ab8eea1bd (diff)
downloadcoredns-d7cdb992b4f96603d444b7ab058594563c5fe043.tar.gz
coredns-d7cdb992b4f96603d444b7ab058594563c5fe043.tar.zst
coredns-d7cdb992b4f96603d444b7ab058594563c5fe043.zip
Measure and expose DNS programming latency from Kubernetes plugin. (#3171)
For now metric is measure only for headless services. Informer has been slighlty refactored, so the code can measure latency without storing extra fields on Endpoint struct. Signed-off-by: Janek Ɓukaszewicz <janluk@google.com> Suggestions from code review Co-Authored-By: Chris O'Haver <cohaver@infoblox.com>
Diffstat (limited to 'plugin/kubernetes/object/pod.go')
-rw-r--r--plugin/kubernetes/object/pod.go14
1 files changed, 11 insertions, 3 deletions
diff --git a/plugin/kubernetes/object/pod.go b/plugin/kubernetes/object/pod.go
index 072d8d56d..9fc9b5726 100644
--- a/plugin/kubernetes/object/pod.go
+++ b/plugin/kubernetes/object/pod.go
@@ -16,8 +16,14 @@ type Pod struct {
*Empty
}
-// ToPod converts an api.Pod to a *Pod.
-func ToPod(obj interface{}) interface{} {
+// ToPod returns a function that converts an api.Pod to a *Pod.
+func ToPod(skipCleanup bool) ToFunc {
+ return func(obj interface{}) interface{} {
+ return toPod(skipCleanup, obj)
+ }
+}
+
+func toPod(skipCleanup bool, obj interface{}) interface{} {
pod, ok := obj.(*api.Pod)
if !ok {
return nil
@@ -35,7 +41,9 @@ func ToPod(obj interface{}) interface{} {
return nil
}
- *pod = api.Pod{}
+ if !skipCleanup {
+ *pod = api.Pod{}
+ }
return p
}