Skip to content

Releases: awslabs/metrique

metrique-v0.1.20

05 Mar 21:32
e373a2f

Choose a tag to compare

Added

  • add LocalFormat for human-readable local development metrics (#213)

Other

  • Add example for global up/down counter (#207)

metrique-v0.1.19

18 Feb 00:36
c6803f3

Choose a tag to compare

Added

  • Add runtime-wide time source override for tokio (#206)

  • Histogram fields can now be aggregated across structs using #[aggregate(strategy = Histogram<T>)]. This enables merging latency distributions from multiple sources (e.g. fan-out shards) into a single combined distribution. (#204)

metrique-v0.1.18

14 Feb 23:14
9e88894

Choose a tag to compare

Other

  • Add Debug derive to SetEntryDimensions (#202)

metrique-v0.1.17

07 Feb 18:37
0673b08

Choose a tag to compare

Fixed

  • Fix issues with #[derive(Debug)] on metrics entries (#200)

metrique-v0.1.16

01 Feb 22:10
bd6e843

Choose a tag to compare

Added

  • impl Debug for Slot, SlotGuard, and AppendAndCloseOnDrop (#194)

  • Add set_test_sink_on_current_tokio_runtime to simplify testing with Tokio (#193)

Other

metrique-v0.1.15

16 Jan 16:48
a095ab2

Choose a tag to compare

Fixes

  • Fix docs.rs build, add docs.rs build check script and CI job (#188)

metrique-v0.1.14

15 Jan 19:33
30ac60e

Choose a tag to compare

Added

  • Add support for #[aggregate] and aggregation (#158). This is a major new feature—you can find lots of docs and examples in the metrique-aggregation package. #[aggregate] allows you to take your existing unit-of-work metrics and aggregate them, potentially across multiple different sets of dimensions.
#[aggregate]
#[metrics]
struct BackendCall {
    #[aggregate(strategy = Sum)]
    requests_made: usize,

    #[aggregate(strategy = Histogram<Duration>)]
    #[metrics(unit = Millisecond)]
    latency: Duration,

    #[aggregate(strategy = Sum)]
    errors: u64,
}

Other

  • Enable rustdoc-scrape-examples for docs.rs (#181)
  • remove vestigial test sink .as_u64() / add_f64() calls (#171)

metrique-v0.1.13

10 Jan 03:45
6ebbaba

Choose a tag to compare

Added

  • Add support for lifetimes with #[metrics] (#169)

  • Add support for entry enums (#156)

Entry enum example:

#[metrics(tag(name = "Operation"), subfield)]
enum OperationMetrics {
    Read(#[metrics(flatten)] ReadMetrics),
    Delete {
        key_count: usize,
    },
}

#[metrics(rename_all = "PascalCase")]
struct MyMetrics {
  operation: MyOperationMetrics,
  success: bool, // this could be an enum too, if you wanted detailed success/failure metrics!
  request_id: String,
}

#[metrics(subfield)]
struct ReadMetrics {
  files_read: usize
}

// you would normally compose this gradually, and append on drop
let a_metric = RequestMetrics {
  success: true,
  request_id: "my_request".to_string(),
  operation: OperationMetrics::Delete { key_count: 5 }
};
// Values: { "RequestId": "my_request", "Operation": "Delete" }
// Metrics: { "Success": 1, "KeyCount": 5 }

metrique-v0.1.12

06 Jan 19:44
4bdae12

Choose a tag to compare

Added

  • [breaking] Add MetricMap wrapper for better error messages in test_util (#157). The change is technically a breaking change since it alters the type of a public API, however, it is
    very unlikely to break actual code.

Fixed

  • Add scaling factor to ExponentialAggregationStrategy. This improves storage resolution for durations <1ms and numeric values <1. (#148)

Other

  • [macros] Reorganization, CloseValue diagnostic improvement (#162)
  • (docs) clarify that you can also bring your own format with the Format trait (#98)

metrique-v0.1.11

19 Dec 22:15
d8e7865

Choose a tag to compare

Breaking Changes

  • forbid . in non-exact prefixes (#138)
  • forbid root-level prefixes that do not end with a delimiter (#138)