Skip to content
This repository has been archived by the owner on Jan 19, 2023. It is now read-only.

expose prometheus metrics + cloudrun compatible #24

Merged
merged 35 commits into from
Dec 5, 2022
Merged
Show file tree
Hide file tree
Changes from 12 commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
96adbe9
metrics server and collection
roshaans Nov 17, 2022
9d58f22
/metrics enabled
roshaans Nov 17, 2022
e7d9c78
port changed from .env
roshaans Nov 17, 2022
83f88ca
block processing metrics
roshaans Nov 17, 2022
cdc57a9
changed port for cloud run compatability
roshaans Nov 18, 2022
d24b7ed
fix dependencies
roshaans Nov 18, 2022
f73f96a
start options sourced from .env bucket
roshaans Nov 18, 2022
364549c
made credentials as arguments to program
roshaans Nov 18, 2022
9526fbc
added /probe to see if indexer is active
roshaans Nov 19, 2022
dcd691d
enabled mainnet/testnet + changed config env vars
roshaans Nov 21, 2022
4b9b55a
json logging
roshaans Nov 23, 2022
506572f
fmt & clippy
roshaans Nov 23, 2022
429d6eb
updated metrics + suggestions
roshaans Nov 29, 2022
43d617b
updated crates order in .toml
roshaans Nov 29, 2022
676d348
replace hyper with actix, clean up code
roshaans Nov 29, 2022
c05f926
undo json logging changes
roshaans Nov 29, 2022
bd2bf67
Merge branch 'main' into roshaan/prometheus-metrics-exporter
roshaans Nov 29, 2022
056469e
port from env
roshaans Nov 29, 2022
114fe6d
change env var name
roshaans Nov 29, 2022
d72f229
/ route
roshaans Nov 29, 2022
ae17522
change route back to /probe + remove aws creds setup code
roshaans Nov 29, 2022
e74f6fe
remove non blocking tracing_appender
roshaans Nov 29, 2022
64a6d8b
remove /probe + unused dependencies
roshaans Nov 30, 2022
798f9d8
aws creds from env var
roshaans Nov 30, 2022
959f829
json logging support
roshaans Nov 30, 2022
b5545a5
use default aws provider
roshaans Dec 1, 2022
d324479
non-blocking logging
roshaans Dec 1, 2022
4407971
chore: refactor metric names + remove blocktime_diff metric
roshaans Dec 1, 2022
57b01c6
remove unused dependencies
roshaans Dec 1, 2022
8a2b026
chore: remove accidentally checked in file
roshaans Dec 1, 2022
1db7a7d
update rust builder
roshaans Dec 2, 2022
457b668
suggestions and refactoring
roshaans Dec 2, 2022
e393f09
comment for clarity + fix build err
roshaans Dec 2, 2022
5dde7f2
cargo.toml EOF
roshaans Dec 2, 2022
3228e6f
order cargo.toml alphabetically
roshaans Dec 5, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
179 changes: 172 additions & 7 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 9 additions & 3 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,18 @@ syn = "1.0.90"
tempfile = "3.3.0"
tokio = { version = "1", features = ["full"] }
tokio-stream = { version = "0.1" }
tracing = "0.1.35"
tracing-subscriber = { version = "0.3.11", features = ["fmt", "std", "env-filter"] }
tracing = { version = "0.1.36", features = ["std"] }
tracing-appender = "0.2.2"
prometheus = "0.13.1"
atty = "0.2"
quote = "1.0.17"

tracing-subscriber = { version = "0.3", features = ["env-filter"] }
near-jsonrpc-primitives = "0.14.0"
near-jsonrpc-client = "0.4.0-beta.0"
near-lake-framework = "0.5.0"
near-primitives = "0.14.0"
hyper = { version = "0.14", features = ["full"] }
aws-types= "0.13.0"
aws-sdk-s3="0.13.0"
chrono="0.4.23"
tracing-bunyan-formatter = "0.3.4"
roshaans marked this conversation as resolved.
Show resolved Hide resolved
38 changes: 34 additions & 4 deletions src/configs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,44 @@ pub(crate) struct Opts {
#[clap(long)]
pub debug: bool,
/// AWS S3 bucket name to get the stream from
#[clap(long)]
#[clap(long, env)]
pub s3_bucket_name: String,
/// AWS Access Key with the rights to read from AWS S3
#[clap(long, env)]
pub lake_aws_access_key: String,
#[clap(long, env)]
/// AWS Secret Access Key with the rights to read from AWS S3
pub lake_aws_secret_access_key: String,
/// AWS S3 bucket region
#[clap(long)]
#[clap(long, env)]
pub s3_region_name: String,
/// Block height to start the stream from
#[clap(long, short)]
#[clap(long, short, env)]
pub start_block_height: u64,
#[clap(long, short)]
#[clap(long, short, env)]
pub near_archival_rpc_url: String,
#[clap(long, env)]
pub chain_id: String,
}

impl Opts {
// Creates AWS Credentials for NEAR Lake
fn lake_credentials(&self) -> aws_types::credentials::SharedCredentialsProvider {
let provider = aws_types::Credentials::new(
self.lake_aws_access_key.clone(),
self.lake_aws_secret_access_key.clone(),
None,
None,
"events_indexer",
);
aws_types::credentials::SharedCredentialsProvider::new(provider)
}

/// Creates AWS Shared Config for NEAR Lake
pub fn lake_aws_sdk_config(&self) -> aws_types::sdk_config::SdkConfig {
aws_types::sdk_config::SdkConfig::builder()
.credentials_provider(self.lake_credentials())
.region(aws_types::region::Region::new(self.s3_region_name.clone()))
.build()
}
}