Commit Graph

124 Commits

Author SHA1 Message Date
Honza Dvorsky 58e2968a7f
Enable strict concurrency (#155) 2024-11-29 23:28:08 +01:00
Franz Busch 4ec5a219dc
Aligning semantic version label check name (#154) 2024-11-28 12:01:57 +00:00
George Barnett c1976209b5
remove contributors script (#152)
remove contributors script
2024-11-15 09:51:00 +00:00
Rick Newton-Rogers cffefdc627 remove contributors script 2024-11-14 14:11:23 +00:00
Rick Newton-Rogers d720898dbf
Migrate to GitHub Actions (#151) 2024-11-06 22:32:20 +09:00
LamTrinh.Dev 569db3a632
Correct the link of sswg-security at SECURITY.md (#150) 2024-09-17 21:43:37 +09:00
Gustavo Cairo e0165b53d4
Fix Sendability warnings (#137)
* Fix Sendability warnings

* Apply suggestions from code review

* Fix another warning and @unknown default issue

---------

Co-authored-by: Konrad `ktoso` Malawski <konrad.malawski@project13.pl>
2024-06-21 17:18:13 +01:00
Franz Busch d067b0e0f7
Add missing `Sendable` annotations (#148)
# Motivation
We were missing a few `Sendable` annotations on our public types.

# Modification
This PR adds `Sendable` to the missing types.
2024-06-21 05:40:32 +09:00
Peter Adams 79e5fb4fe4
Raise minimum swift version to 5.8 (#147)
Motivation:

It's consistant with support policy (see https://github.com/apple/swift-metrics/pull/141).
It matches what's being tested.
It will make future changes adopting new features easier.

Modifications:

Bump swift tools version to 5.8
Remove linux tests and test discovery flag which are not required.

Result:

Will not longer build using swift before 5.8 - older compilers will find older
versions of this library when resolving versions.
2024-06-12 10:53:26 +01:00
Konrad `ktoso` Malawski ce594e71e9
fix availability of record(:Duration) API (#146) 2024-05-15 18:08:10 +09:00
hamzahrmalik 0124d9ad5c
Change Timer.record(duration: Duration) signature to avoid source breakage (#144) 2024-05-15 14:36:25 +09:00
Si Beaumont eb18581491
Support compiling against Musl (#142)
Co-authored-by: Konrad `ktoso` Malawski <konrad.malawski@project13.pl>
2024-05-14 13:16:51 +09:00
Si Beaumont 33d3f71e00
Update API breakage CI script (#143)
* Update API breakage CI script

* restate sendable conformance to avoid warning/as-error

---------

Co-authored-by: Konrad `ktoso` Malawski <konrad_malawski@apple.com>
2024-05-14 13:09:54 +09:00
Franz Busch 7e53749103
Align supported Swift versions with rest of the ecosystem (#141)
# Motivation

Most of the server ecosystem follows the supported Swift versions from `swift-nio`. This means supporting the latest 3 Swift releases.

# Modification

This PR drops support for all Swift versions before 5.8.

# Result

This makes maintaining this repository easier and allows us to clean up some no longer needed stuff.
2024-05-09 11:19:06 +09:00
Yim Lee 9c0646af4d
Add CI for Swift 5.10 (#138) 2024-01-23 08:24:32 -08:00
Natik Gadzhi 13ea1fe7fc
Introducing Timer.record(_ duration:), closes #114 (#133)
Motivation:

`Duration` is available starting Swift 5.7, and we
should probably support it in our convinience API.

Modifications:
- Timer.record(_ duration: Duration) implementation
- A unit test case
- Generated Linux tests
2023-06-28 14:56:55 -07:00
tomer doron 971ba26378
add increment and decrement public API to Meter (#132)
motivation: expose increment and decrement public APIs

changes:
* add increment and decrement public API to Meter
* improve the implementation of AccumulatingMeter and TestMeter
* add tests for new APIs
* refactor/modernize other tests
2023-06-21 14:15:23 -07:00
tomer doron bf7ea93e17
update code of conduct (#131)
motivation: align CoC across the swift project

changes: change CoC to link to the swift.org version
2023-06-06 10:00:48 -07:00
hamzahrmalik 3402510406
Make 'values' on TestCounter, TestRecorder and TestMeter public (#129)
Co-authored-by: Hamzah Malik <hamzah_malik@apple.com>
2023-05-26 14:49:59 +02:00
hamzahrmalik 8bcdb6e82b
MetricsTestKit: expose all metrics publicly. This allows users to run checks on counters when they might not know the exact label (#127)
Co-authored-by: Hamzah Malik <hamzah_malik@apple.com>
2023-05-26 14:02:46 +02:00
hamzahrmalik 9d5ff3d48f
Use the MetricsTestKit in the MetricsTests rather than using a copy of the TestMetrics utilities (#128)
Co-authored-by: Hamzah Malik <hamzah_malik@apple.com>
2023-05-26 13:25:08 +02:00
tomer doron 32eef8ae84
add "meter" - a new type of metric and metric handler (#123)
motivation: seperate gauge from recorder in a backwards compatible way

changes:
* add new meter and meter handler pair
* add increment and decrement to meter handler
* add default implementation based on recorder for backwards compatibility
* add and adjust tests
2023-05-24 13:55:56 -07:00
Fabian Fett 862b99bc11
Add Package.resolved to .gitignore (#125)
Co-authored-by: Konrad `ktoso` Malawski <konrad.malawski@project13.pl>
2023-05-05 11:19:02 +09:00
Fabian Fett 78b6238009
Use UUID instead of NSUUID in MetricsTests (#126) 2023-05-05 11:01:45 +09:00
Yim Lee a79936ffc1
Update CI (#124)
- Swift 5.8 docker images are available
- Add docker-compose file for Swift 5.9
2023-04-04 20:30:21 -07:00
Gustavo Cairo e8bced74bc
Propagate displayUnit when using MultiplexMetricsHandler (#122) 2023-02-01 11:42:39 -08:00
Yim Lee cbfde655cf
Add CI for Swift 5.8 and update nightly to Ubuntu 22.04 (#121) 2023-01-24 13:34:45 -08:00
Yim Lee 9b39d811a8
Add .spi.yml for Swift Package Index DocC support (#119) 2022-12-02 12:29:28 -08:00
Konrad `ktoso` Malawski bcea8c19fe
+docc prepare for docc publishing (#118)
* +docc prepare for docc publishing

* fix test discovery on 5.5 and 5.6

* Delete Package@swift-5.6.swift

* Update Package.swift

* Apply suggestions from code review

Co-authored-by: Yim Lee <yim_lee@apple.com>

Co-authored-by: Yim Lee <yim_lee@apple.com>
2022-08-24 11:20:06 +09:00
Fabian Fett bd1b935c8e
Make `MetricsFactory` Sendable (#116) 2022-07-21 10:53:47 +09:00
Fabian Fett 53be78637e
Remove testable import from TestMetrics. (#113) 2022-07-20 17:25:45 +09:00
tomer doron d885a4f5e9
adopt sendable (#109)
motivation: adjust to swift 5.6

changes:
* define sendable shims for protocols and structs that may be used in async context
* refactor Gauge to include rather than inherit Recorder
* adjust tests
* add a test to make sure no warning are emitted
2022-07-01 16:38:50 -07:00
tomer doron fd0ee6956b
better abstration for MetricsSystem state (#112)
motivation: prepare for sendable checks (they dont work well with static state)

changes:
* abstract the MetricsSystem state into a "boxed" class that handles the locking
* adjust call sites
2022-06-29 11:08:12 -07:00
Fabian Fett 1c1408bf8f
Expose `MetricsTestKit` as a product (#111) 2022-05-25 07:15:41 +09:00
Konrad `ktoso` Malawski eadb828f87
Import TestMetrics from swift-metrics-extras (#106)
* Import TestMetrics from swift-metrics-extras

* support the year 2021

* rename module
2022-03-18 12:02:04 +09:00
tomer doron e00284be24
ci update (#108)
motivation: 5.6 is out

changes:
* use release version of 5.6
* add docker setup for 5.7 (using nightly for now)
2022-03-16 21:04:42 -07:00
Cory Benfield ea66bbc2b5
Add 5.6 nightly CI (#105)
The 5.6 nightly images are avaialable, let's use them.
2022-01-18 11:52:54 -08:00
Konrad `ktoso` Malawski d09e751437 Update how we recommend including the dependency
Since otherwise current users get hit with warnings.
2021-12-17 10:36:44 +09:00
tomer doron 6bc8aa8a06
add docker-compose setup for 5.5 (#104)
motivation: tests on 5.5

changes: add docker compose file for testing on 5.5
2021-12-16 16:38:36 -08:00
tomer doron 495aca6d51
update doc generation script (#103)
motivation: source-kitten has changed how its invoked

changes:
* invoke source-kitten with the correct flags
* make location of source-kitten source checkout more robust
* udpate docker to install jazzy on on focal
2021-12-16 15:17:27 -08:00
Konrad `ktoso` Malawski 992b87907d [SSWG] document release process 2021-08-23 13:10:27 +09:00
Rauhul Varma 3edd2f57af update comment 2021-08-16 11:49:56 +09:00
Rauhul Varma 2c58b010a2 remove assertions 2021-08-16 11:49:56 +09:00
Rauhul Varma 42372a8598 Introduce FloatingPointCounter
motivation: It is not currently possible to record floating point values via the swift-metrics API even if the metrics backend supports it.

modifications: Adds a `FloatingPointCounter` type to allow users to accumulate non-integral metrics backed by a `FloatingPointCounterHandler`. Introduces a default implementation for creating and destroying `FloatingPointCounterHandler`s for metric backends that do not natively support floating point counters. On such backends, `FloatingPointCounter` is backed by a `AccumulatingRoundingFloatingPointCounter` which accumulates floating point values internally and record increments to a wrapped `CounterHandler` after crossing integer boundaries.

result: Users can create `FloatingPointCounter`s to record floating point values and get enhanced behavior for backends that support floating point values.
2021-08-16 11:49:56 +09:00
tomer doron 99a068b962 Update README.md 2021-06-21 11:24:47 +09:00
tomer doron 8ea359b532 Update README.md 2021-06-21 11:24:47 +09:00
tomer doron 2a7fd99ea8 Update README.md 2021-06-21 11:24:47 +09:00
tomer doron 1bb953eb76 Create SECURITY.md 2021-06-21 11:24:47 +09:00
tomer doron e2c4a510b6
update 5.4 to release docker image (#94)
motivation: 5.4 is out!

changes: use release docker images instead of nightly
2021-05-06 18:24:14 -07:00
James Sherlock c6cdc69235
[readme] Add OpenTelemetry to compatible libraries (#93)
Add OpenTelemetry to compatible libraries
2021-04-06 10:35:50 -07:00