Agent used by ficus to fetch cloud resources and consumption, and store them as timeseries
(work in progress)
Providers have to be enabled by activating the corresponding features from the Cargo.toml.
Several can be active at the same time.
To use the aws plugin, you need to have a AWS IAM user existing and configured into your ~/.aws/credentials file, like this example:
[default]
aws_access_key_id=YOUR-ACCESS-KEY
aws_secret_access_key=YOUR-SECRET-KEY
region=YOUR-REGIONFicus doesn't need any write permission on AWS, so we recommend giving only readonly access on the resources used by Ficus (EC2, Lambda, Cloudwatch)
- For lambda memory usage, you need to enable Cloudwatch Lambda Insights
This plugin only serves test and showcase purpose.
The ficus agent currently only supports influxdb.
Copy the .influx.example.toml config file into .influx.toml, and change with the proper values to connect to your influxdb instance.
You'll need docker and the rust toolchain.
- In the
localfolder, rundocker compose up -dto start influxdb container- You need a
.influx.tomlconfig file; the values in.influx.example.tomlmatch the local container default ones
- You need a
- In the root project folder, run
cargo run
flowchart TD
subgraph src
main
main --> analyzer
end
subgraph lib
vm_provider
end
subgraph providers
aws_vm_provider
mock_vm_provider
end
influxdb[(influxdb)]
aws((aws))
analyzer --> vm_provider
aws_vm_provider --> aws
analyzer --> influxdb
aws_vm_provider --> vm_provider
mock_vm_provider --> vm_provider
Providers are abstracted through the lib to ease multiple cloud providers implementation