-
Notifications
You must be signed in to change notification settings - Fork 64
Infostellar StellarStation
Adrian Cole edited this page May 8, 2020
·
2 revisions
- Infostellar currently has a dozen or so engineers with a couple maintaining infrastructure, including tracing
- StellarStation is a quick and flexible ground solution for new space
- Satellite operators can interface with our API to be able to communicate with satellites without setting up their own ground stations
- Bi-directional stream between satellites and operators for payloads to and from satellite
- All servers run on Google Cloud Platform, written in Java. Several microservices running in Kubernetes.
- Ground station software runs locally at an antenna site, written in Go
- Use Brave for instrumentation in Java
- armeria-grpc
- MySQL
- Redis (default lettuce.io instrumentation)
- Pub/Sub
- Use opentracing-go in Go
- grpc-go
- B3 propagation
- Payload transport between ground station and cloud is Pub/Sub
- Propagate context into Pub/Sub message attributes
- Injest into Stackdriver Trace, no Zipkin server
- Translate Spans for injestion using zipkin-gcp
- Use custom reporter to avoid unnecessary copies between Brave / Zipkin data structures
- We offer a communication infrastructure to satellite operators - low latency end-to-end is a must
- Tracing provides detailed insight into component latencies for troubleshooting
- Need to ensure as much of the flow as possible is traced, can't skip Pub/Sub, etc.
At Infostellar, we use the zipkin service name to represent a Kubernetes deployment. It is sourced from a Java system property set in the deployment configuration. We use it only in tracing.
The following are span tags we frequently use in indexing or aggregation
Tag | Description | Usage |
---|---|---|
antenna-id | The antenna involved in a request | Understand latency for data from specific antennas |
satellite-id | The satellite involved in a request | Understand latency for data from specific satellites |
plan-id | The plan (communication time between satellite / antenna) involved in a request. Unlimited cardinality. | Debug latency for a particular plan if it had a problem |