apollo-environment-detector
This library provides two functions for easily detecting a ComputeEnvironment based on a
given weighted threshold.
[dependencies]
apollo-environment-detector = "0.1"
Usage
use ;
// Attempt to detect multiple environments based on a weighting.
let compute_envs = detect;
println!;
// Attempt to detect a single environment based on a weighting.
let compute_env = detect_one;
println!;
Detectors
The following environments are able to be detected:
- Amazon Elastic Compute Cloud (EC2)
- Amazon Elastic Container Service (ECS)
- AWS Lambda
- Kubernetes on AWS
- Nomad on AWS
- Azure Containers Apps
- Azure Container Apps Job
- Azure Container Instance
- Kubernetes on Azure
- Azure VM
- Nomad on Azure
- Google Cloud Run (Gen1)
- Google Cloud Run (Gen2)
- Google Cloud Run (Job)
- Google Compute Engine
- Kubernetes on Google Cloud
- Nomad on Google Cloud
- Kubernetes
- Nomad
- QEMU
This library currently supports 2 detection methods: SMBIOS and Environment Variables.
SMBIOS
There are currently 3 data points read during detection on both Linux and Windows:
bios_vendorproduct_namesys_vendor
Threshold Weighting
A detection threshold is represented in the form of a u16, which has a max of 65535 (2^16-1) as defined in u16::MAX.
As we supported multiple detectors, the maximum returned total weighting is 2^15 in order to avoid thresholding and overflows when using multiple detectors. This is exposed as a constant MAX_TOTAL_WEIGHTING.