-
Notifications
You must be signed in to change notification settings - Fork 0
/
appletree_client.py
52 lines (40 loc) · 1.41 KB
/
appletree_client.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import logging
import appletree_pb2
import appletree_pb2_grpc
import grpc
from opentelemetry import trace
from opentelemetry.exporter.jaeger.thrift import JaegerExporter
from opentelemetry.instrumentation.grpc import GrpcInstrumentorClient
from opentelemetry.sdk.resources import SERVICE_NAME, Resource
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor
trace.set_tracer_provider(
TracerProvider(
resource=Resource.create({SERVICE_NAME: "appletree"})
)
)
jaeger_exporter = JaegerExporter(
agent_host_name="localhost",
agent_port=6831,
)
trace.get_tracer_provider().add_span_processor(
BatchSpanProcessor(jaeger_exporter)
)
instrumentor = GrpcInstrumentorClient().instrument()
tracer = trace.get_tracer(__name__)
def input_time():
time_min = input('How long do you want to shake the apple tree? Please enter time in minutes: ')
try:
time_min = int(time_min)
return appletree_pb2.Time(time_min=time_min)
except ValueError:
print("Please enter a number.")
def run(time):
with grpc.insecure_channel('localhost:50051') as channel:
stub = appletree_pb2_grpc.AppleTreeStub(channel)
num_apples = stub.ShakeAppleTree(time)
print(f'{num_apples.num_apples} apples fell from the tree. Please collect!')
if __name__ == '__main__':
logging.basicConfig()
time = input_time()
run(time)