summaryrefslogtreecommitdiffstats
path: root/clover/tracing/validate.py
diff options
context:
space:
mode:
Diffstat (limited to 'clover/tracing/validate.py')
-rw-r--r--clover/tracing/validate.py39
1 files changed, 29 insertions, 10 deletions
diff --git a/clover/tracing/validate.py b/clover/tracing/validate.py
index 9cbfdd0..0f6f0a8 100644
--- a/clover/tracing/validate.py
+++ b/clover/tracing/validate.py
@@ -6,12 +6,11 @@
# http://www.apache.org/licenses/LICENSE-2.0
from kubernetes import client, config
+import argparse
from clover.tracing.tracing import Tracing
+# from tracing import Tracing
-JAEGER_IP = "localhost"
-# JAEGER_IP = "1.1.1.1"
-JAEGER_PORT = "30888"
JAEGER_DEPLOYMENT = "jaeger-deployment"
ISTIO_NAMESPACE = "istio-system"
ISTIO_SERVICES = ["istio-ingress", "istio-mixer"]
@@ -36,10 +35,12 @@ def validateDeploy():
validate = True
return validate
-# Services in Jaeger will only be present when traffic passes through Istio
-# Requires a deployment in Istio service mesh with some traffic targeting nodes
-def validateServices():
- t = Tracing(JAEGER_IP, JAEGER_PORT)
+
+# Services in Jaeger will only be present when traffic targets istio-ingress
+# Even a failed HTTP GET request to istio-ingress will add istio-ingress and
+# istio-mixer services
+def validateServices(args):
+ t = Tracing(args['ip'], args['port'])
services = t.getServices()
validate = True
if services:
@@ -47,14 +48,20 @@ def validateServices():
if s in services:
print("Service in tracing: {} present".format(s))
else:
+ print("Service in tracing: {} not present".format(s))
validate = False
else:
validate = False
return validate
-def main():
- if validateDeploy() and validateServices():
+def main(args):
+ vdeploy = validateDeploy()
+ if args['s']:
+ vservice = validateServices(args)
+ else:
+ vservice = True
+ if vdeploy and vservice:
print"Jaeger tracing validation has passed"
return True
else:
@@ -63,4 +70,16 @@ def main():
if __name__ == '__main__':
- main()
+ parser = argparse.ArgumentParser()
+ parser.add_argument(
+ '-s', action='store_true',
+ help='Validate istio services, \
+ which requires at least one http request to istio-ingress')
+ parser.add_argument(
+ '-ip', default='localhost',
+ help='IP address to access Jaeger')
+ parser.add_argument(
+ '-port', default='16686',
+ help='Port to acccess Jaeger')
+ args = parser.parse_args()
+ main(vars(args))