Compare commits

..

5 Commits

Author SHA1 Message Date
5493af0c0c Fix test initialization
All checks were successful
continuous-integration/drone/push Build is passing
2021-03-29 16:52:31 +02:00
56b973607c Use correct version of opentelemetry
All checks were successful
continuous-integration/drone/push Build is passing
2021-03-29 16:32:37 +02:00
cbdda8a561 Use correct version of opentelemetry
All checks were successful
continuous-integration/drone/push Build is passing
2021-03-29 16:29:41 +02:00
6ac399a41b Downgrade opentelemetry dependencies
All checks were successful
continuous-integration/drone/push Build is passing
2021-03-29 15:19:11 +02:00
35c13fa486 First step for telemetry
All checks were successful
continuous-integration/drone/push Build is passing
2021-03-29 14:58:36 +02:00
9 changed files with 281 additions and 199 deletions

View File

@ -1,10 +0,0 @@
version: 2
updates:
- package-ecosystem: cargo
directory: "/"
schedule:
interval: daily
time: "04:00"
open-pull-requests-limit: 10
assignees:
- vbrandl

53
.gitlab-ci.yml Normal file
View File

@ -0,0 +1,53 @@
image: docker:19.03
services:
- docker:19.03-dind
stages:
- build
- release
variables:
DOCKER_HOST: tcp://docker:2375
DOCKER_DRIVER: overlay2
# DOCKER_TLS_CERTDIR: "/certs"
DOCKER_TLS_CERTDIR: ""
CONTAINER_BUILDER_IMAGE: $CI_REGISTRY_IMAGE:builder-latest
CONTAINER_TEST_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
CONTAINER_RELEASE_IMAGE: $CI_REGISTRY_IMAGE:latest
before_script:
- export CONTAINER_TAG_IMAGE="$CI_REGISTRY_IMAGE:${CI_COMMIT_TAG:1}"
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
build:
stage: build
script:
- docker pull $CONTAINER_TEST_IMAGE || true
- docker pull $CONTAINER_RELEASE_IMAGE || true
- docker pull $CONTAINER_TAG_IMAGE || true
- docker pull $CONTAINER_BUILDER_IMAGE || true
- docker build --pull -t $CONTAINER_BUILDER_IMAGE --target builder .
- docker build --pull -t $CONTAINER_TEST_IMAGE .
- docker push $CONTAINER_BUILDER_IMAGE
- docker push $CONTAINER_TEST_IMAGE
release-image:
stage: release
script:
- docker pull $CONTAINER_TEST_IMAGE
- docker tag $CONTAINER_TEST_IMAGE $CONTAINER_RELEASE_IMAGE
- docker push $CONTAINER_RELEASE_IMAGE
only:
- master
release-tag:
stage: release
script:
- docker pull $CONTAINER_TEST_IMAGE
- docker tag $CONTAINER_TEST_IMAGE $CONTAINER_TAG_IMAGE
- docker push $CONTAINER_TAG_IMAGE
only:
- /^v\d+\.\d+\.\d+/
except:
- branch

347
Cargo.lock generated
View File

@ -17,7 +17,7 @@ dependencies = [
"futures-core",
"futures-sink",
"log",
"pin-project 0.4.27",
"pin-project 0.4.28",
"tokio",
"tokio-util",
]
@ -80,7 +80,7 @@ dependencies = [
"pin-project 1.0.5",
"rand 0.7.3",
"regex",
"serde 1.0.126",
"serde 1.0.125",
"serde_json",
"serde_urlencoded",
"sha-1",
@ -108,7 +108,7 @@ dependencies = [
"http",
"log",
"regex",
"serde 1.0.126",
"serde 1.0.125",
]
[[package]]
@ -153,7 +153,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0052435d581b5be835d11f4eb3bce417c8af18d87ddf8ace99f8e67e595882bb"
dependencies = [
"futures-util",
"pin-project 0.4.27",
"pin-project 0.4.28",
]
[[package]]
@ -213,7 +213,7 @@ dependencies = [
"futures-sink",
"futures-util",
"log",
"pin-project 0.4.27",
"pin-project 0.4.28",
"slab",
]
@ -247,7 +247,7 @@ dependencies = [
"mime",
"pin-project 1.0.5",
"regex",
"serde 1.0.126",
"serde 1.0.125",
"serde_json",
"serde_urlencoded",
"socket2",
@ -268,12 +268,17 @@ dependencies = [
]
[[package]]
name = "addr2line"
version = "0.14.1"
name = "actix-web-opentelemetry"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a55f82cfe485775d02112886f4169bde0c5894d75e79ead7eafe7e40a25e45f7"
checksum = "4ac71801f541f5225e71f522d56901b0be7fd6ee2181724a7e551b74249d0129"
dependencies = [
"gimli",
"actix-http",
"actix-web",
"futures",
"opentelemetry",
"opentelemetry-semantic-conventions",
"serde 1.0.125",
]
[[package]]
@ -348,25 +353,11 @@ dependencies = [
"mime",
"percent-encoding",
"rand 0.7.3",
"serde 1.0.126",
"serde 1.0.125",
"serde_json",
"serde_urlencoded",
]
[[package]]
name = "backtrace"
version = "0.3.56"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9d117600f438b1707d4e4ae15d3595657288f8235a0eb593e80ecc98ab34e1bc"
dependencies = [
"addr2line",
"cfg-if 1.0.0",
"libc",
"miniz_oxide",
"object",
"rustc-demangle",
]
[[package]]
name = "badge"
version = "0.3.0"
@ -402,18 +393,6 @@ version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
[[package]]
name = "bitvec"
version = "0.19.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8942c8d352ae1838c9dda0b0ca2ab657696ef2232a20147cf1b30ae1a9cb4321"
dependencies = [
"funty",
"radium",
"tap",
"wyz",
]
[[package]]
name = "block-buffer"
version = "0.9.0"
@ -523,9 +502,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b1b9d958c2b1368a663f05538fc1b5975adce1e19f435acceae987aceeeb369"
dependencies = [
"lazy_static",
"nom 5.1.2",
"nom",
"rust-ini",
"serde 1.0.126",
"serde 1.0.125",
"serde-hjson",
"serde_json",
"toml",
@ -586,6 +565,16 @@ dependencies = [
"cfg-if 1.0.0",
]
[[package]]
name = "dashmap"
version = "4.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e77a43b28d0668df09411cb0bc9a8c2adc40f9a048afe863e05fd43251e8e39c"
dependencies = [
"cfg-if 1.0.0",
"num_cpus",
]
[[package]]
name = "derive_more"
version = "0.99.11"
@ -724,17 +713,11 @@ version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
[[package]]
name = "funty"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7"
[[package]]
name = "futures"
version = "0.3.15"
version = "0.3.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0e7e43a803dae2fa37c1f6a8fe121e1f7bf9548b4dfc0522a42f34145dadfc27"
checksum = "7f55667319111d593ba876406af7c409c0ebb44dc4be6132a783ccf163ea14c1"
dependencies = [
"futures-channel",
"futures-core",
@ -747,9 +730,9 @@ dependencies = [
[[package]]
name = "futures-channel"
version = "0.3.15"
version = "0.3.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e682a68b29a882df0545c143dc3646daefe80ba479bcdede94d5a703de2871e2"
checksum = "8c2dd2df839b57db9ab69c2c9d8f3e8c81984781937fe2807dc6dcf3b2ad2939"
dependencies = [
"futures-core",
"futures-sink",
@ -757,15 +740,15 @@ dependencies = [
[[package]]
name = "futures-core"
version = "0.3.15"
version = "0.3.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0402f765d8a89a26043b889b26ce3c4679d268fa6bb22cd7c6aad98340e179d1"
checksum = "15496a72fabf0e62bdc3df11a59a3787429221dd0710ba8ef163d6f7a9112c94"
[[package]]
name = "futures-executor"
version = "0.3.15"
version = "0.3.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "badaa6a909fac9e7236d0620a2f57f7664640c56575b71a7552fbd68deafab79"
checksum = "891a4b7b96d84d5940084b2a37632dd65deeae662c114ceaa2c879629c9c0ad1"
dependencies = [
"futures-core",
"futures-task",
@ -774,17 +757,16 @@ dependencies = [
[[package]]
name = "futures-io"
version = "0.3.15"
version = "0.3.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "acc499defb3b348f8d8f3f66415835a9131856ff7714bf10dadfc4ec4bdb29a1"
checksum = "d71c2c65c57704c32f5241c1223167c2c3294fd34ac020c807ddbe6db287ba59"
[[package]]
name = "futures-macro"
version = "0.3.15"
version = "0.3.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a4c40298486cdf52cc00cd6d6987892ba502c7656a16a4192a9992b1ccedd121"
checksum = "ea405816a5139fb39af82c2beb921d52143f556038378d6db21183a5c37fbfb7"
dependencies = [
"autocfg",
"proc-macro-hack",
"proc-macro2",
"quote",
@ -793,23 +775,22 @@ dependencies = [
[[package]]
name = "futures-sink"
version = "0.3.15"
version = "0.3.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a57bead0ceff0d6dde8f465ecd96c9338121bb7717d3e7b108059531870c4282"
checksum = "85754d98985841b7d4f5e8e6fbfa4a4ac847916893ec511a2917ccd8525b8bb3"
[[package]]
name = "futures-task"
version = "0.3.15"
version = "0.3.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a16bef9fc1a4dddb5bee51c989e3fbba26569cbb0e31f5b303c184e3dd33dae"
checksum = "fa189ef211c15ee602667a6fcfe1c1fd9e07d42250d2156382820fba33c9df80"
[[package]]
name = "futures-util"
version = "0.3.15"
version = "0.3.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "feb5c238d27e2bf94ffdfd27b2c29e3df4a68c4193bb6427384259e2bf191967"
checksum = "1812c7ab8aedf8d6f2701a43e1243acdbcc2b36ab26e2ad421eb99ac963d96d1"
dependencies = [
"autocfg",
"futures-channel",
"futures-core",
"futures-io",
@ -887,17 +868,11 @@ dependencies = [
"syn",
]
[[package]]
name = "gimli"
version = "0.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f6503fe142514ca4799d4c26297c4248239fe8838d827db6bd6065c6ed29a6ce"
[[package]]
name = "git2"
version = "0.13.18"
version = "0.13.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b483c6c2145421099df1b4efd50e0f6205479a072199460eff852fa15e5603c7"
checksum = "1d250f5f82326884bd39c2853577e70a121775db76818ffa452ed1e80de12986"
dependencies = [
"bitflags",
"libc",
@ -954,10 +929,11 @@ dependencies = [
[[package]]
name = "hoc"
version = "0.17.2"
version = "0.17.1"
dependencies = [
"actix-rt",
"actix-web",
"actix-web-opentelemetry",
"badge",
"bytes 1.0.1",
"config",
@ -967,9 +943,11 @@ dependencies = [
"lazy_static",
"number_prefix",
"openssl-probe",
"opentelemetry",
"opentelemetry-jaeger",
"reqwest",
"ructe",
"serde 1.0.126",
"serde 1.0.125",
"serde_derive",
"serde_json",
"tempfile",
@ -979,6 +957,7 @@ dependencies = [
"tracing-bunyan-formatter",
"tracing-futures",
"tracing-log",
"tracing-opentelemetry",
"tracing-subscriber",
"vergen",
]
@ -1094,6 +1073,12 @@ dependencies = [
"cfg-if 1.0.0",
]
[[package]]
name = "integer-encoding"
version = "1.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "48dc51180a9b377fd75814d0cc02199c20f8e99433d6762f650d39cdbbd3b56f"
[[package]]
name = "iovec"
version = "0.1.4"
@ -1123,9 +1108,9 @@ checksum = "47be2f14c678be2fdcab04ab1171db51b2762ce6f0a8ee87c8dd4a04ed216135"
[[package]]
name = "itertools"
version = "0.10.0"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37d572918e350e82412fe766d24b15e6682fb2ed2bbe018280caa810397cb319"
checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b"
dependencies = [
"either",
]
@ -1197,9 +1182,9 @@ checksum = "b7282d924be3275cec7f6756ff4121987bc6481325397dde6ba3e7802b1a8b1c"
[[package]]
name = "libgit2-sys"
version = "0.12.19+1.1.0"
version = "0.12.18+1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f322155d574c8b9ebe991a04f6908bb49e68a79463338d24a43d6274cb6443e6"
checksum = "3da6a42da88fc37ee1ecda212ffa254c25713532980005d5f7c0b0fbe7e6e885"
dependencies = [
"cc",
"libc",
@ -1409,19 +1394,6 @@ dependencies = [
"version_check",
]
[[package]]
name = "nom"
version = "6.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e7413f999671bd4745a7b624bd370a569fb6bc574b23c83a3c5ed2e453f3d5e2"
dependencies = [
"bitvec",
"funty",
"lexical-core",
"memchr",
"version_check",
]
[[package]]
name = "num-integer"
version = "0.1.44"
@ -1466,12 +1438,6 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
[[package]]
name = "object"
version = "0.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a9a7ab5d64814df0fe4a4b5ead45ed6c5f181ee3ff04ba344313a6c80446c5d4"
[[package]]
name = "once_cell"
version = "1.7.0"
@ -1500,9 +1466,9 @@ dependencies = [
[[package]]
name = "openssl-probe"
version = "0.1.4"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a"
checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
[[package]]
name = "openssl-sys"
@ -1517,6 +1483,55 @@ dependencies = [
"vcpkg",
]
[[package]]
name = "opentelemetry"
version = "0.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "514d24875c140ed269eecc2d1b56d7b71b573716922a763c317fb1b1b4b58f15"
dependencies = [
"async-trait",
"dashmap",
"fnv",
"futures",
"js-sys",
"lazy_static",
"percent-encoding",
"pin-project 1.0.5",
"rand 0.8.3",
"thiserror",
]
[[package]]
name = "opentelemetry-jaeger"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a5677b3a361784aff6e2b1b30dbdb5f85f4ec57ff2ced41d9a481ad70a9d0b57"
dependencies = [
"async-trait",
"lazy_static",
"opentelemetry",
"thiserror",
"thrift",
]
[[package]]
name = "opentelemetry-semantic-conventions"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ecb679b997c41108a498e3ce8b933fe2f643a9a722ad8ca33f95edab84df106"
dependencies = [
"opentelemetry",
]
[[package]]
name = "ordered-float"
version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3305af35278dd29f46fcdd139e0b1fbfae2153f0e5928b39b035542dd31e37b7"
dependencies = [
"num-traits 0.2.14",
]
[[package]]
name = "owned_ttf_parser"
version = "0.6.0"
@ -1559,11 +1574,11 @@ checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
[[package]]
name = "pin-project"
version = "0.4.27"
version = "0.4.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2ffbc8e94b38ea3d2d8ba92aea2983b503cd75d0888d75b86bb37970b5698e15"
checksum = "918192b5c59119d51e0cd221f4d49dde9112824ba717369e903c97d076083d0f"
dependencies = [
"pin-project-internal 0.4.27",
"pin-project-internal 0.4.28",
]
[[package]]
@ -1577,9 +1592,9 @@ dependencies = [
[[package]]
name = "pin-project-internal"
version = "0.4.27"
version = "0.4.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "65ad2ae56b6abe3a1ee25f15ee605bacadb9a764edaba9c2bf4103800d4a1895"
checksum = "3be26700300be6d9d23264c73211d8190e755b6b5ca7a1b28230025511b52a5e"
dependencies = [
"proc-macro2",
"quote",
@ -1687,12 +1702,6 @@ dependencies = [
"proc-macro2",
]
[[package]]
name = "radium"
version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "941ba9d78d8e2f7ce474c015eea4d9c6d25b6a3327f9832ee29a4de27f91bbb8"
[[package]]
name = "rand"
version = "0.7.3"
@ -1844,7 +1853,7 @@ dependencies = [
"native-tls",
"percent-encoding",
"pin-project-lite 0.2.4",
"serde 1.0.126",
"serde 1.0.125",
"serde_urlencoded",
"tokio",
"tokio-tls",
@ -1867,15 +1876,15 @@ dependencies = [
[[package]]
name = "ructe"
version = "0.13.2"
version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5678e9cc1545f229509acb67cf34793802646f32c77e00bc470b518cfddea579"
checksum = "a3507c22423c8be907293f0aa684b08ac62efb20e0768639fdfbce833481fd30"
dependencies = [
"base64 0.13.0",
"base64 0.12.3",
"bytecount",
"itertools",
"md5",
"nom 6.1.2",
"nom",
]
[[package]]
@ -1884,12 +1893,6 @@ version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3e52c148ef37f8c375d49d5a73aa70713125b7f19095948a923f80afdeb22ec2"
[[package]]
name = "rustc-demangle"
version = "0.1.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6e3bad0ee36814ca07d7968269dd4b7ec89ec2da10c4bb613928d3077083c232"
[[package]]
name = "rustc_version"
version = "0.2.3"
@ -1983,9 +1986,9 @@ checksum = "9dad3f759919b92c3068c696c15c3d17238234498bbdcc80f2c469606f948ac8"
[[package]]
name = "serde"
version = "1.0.126"
version = "1.0.125"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec7505abeacaec74ae4778d9d9328fe5a5d04253220a85c4ee022239fc996d03"
checksum = "558dc50e1a5a5fa7112ca2ce4effcb321b0300c0d4ccf0776a9f60cd89031171"
dependencies = [
"serde_derive",
]
@ -2004,9 +2007,9 @@ dependencies = [
[[package]]
name = "serde_derive"
version = "1.0.126"
version = "1.0.125"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "963a7dbc9895aeac7ac90e74f34a5d5261828f79df35cbed41e10189d3804d43"
checksum = "b093b7a2bb58203b5da3056c05b4ec1fed827dcfdb37347a8841695263b3d06d"
dependencies = [
"proc-macro2",
"quote",
@ -2021,7 +2024,7 @@ checksum = "799e97dc9fdae36a5c8b8f2cae9ce2ee9fdce2058c57a93e6099d919fd982f79"
dependencies = [
"itoa",
"ryu",
"serde 1.0.126",
"serde 1.0.125",
]
[[package]]
@ -2033,7 +2036,7 @@ dependencies = [
"form_urlencoded",
"itoa",
"ryu",
"serde 1.0.126",
"serde 1.0.125",
]
[[package]]
@ -2133,7 +2136,7 @@ checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef"
dependencies = [
"proc-macro2",
"quote",
"serde 1.0.126",
"serde 1.0.125",
"serde_derive",
"syn",
]
@ -2147,7 +2150,7 @@ dependencies = [
"base-x",
"proc-macro2",
"quote",
"serde 1.0.126",
"serde 1.0.125",
"serde_derive",
"serde_json",
"sha1",
@ -2171,12 +2174,6 @@ dependencies = [
"unicode-xid",
]
[[package]]
name = "tap"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
[[package]]
name = "tempfile"
version = "3.2.0"
@ -2229,6 +2226,19 @@ dependencies = [
"num_cpus",
]
[[package]]
name = "thrift"
version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0c6d965454947cc7266d22716ebfd07b18d84ebaf35eec558586bbb2a8cb6b5b"
dependencies = [
"byteorder",
"integer-encoding",
"log",
"ordered-float",
"threadpool",
]
[[package]]
name = "time"
version = "0.1.43"
@ -2343,7 +2353,7 @@ version = "0.5.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa"
dependencies = [
"serde 1.0.126",
"serde 1.0.125",
]
[[package]]
@ -2354,9 +2364,9 @@ checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6"
[[package]]
name = "tracing"
version = "0.1.26"
version = "0.1.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09adeb8c97449311ccd28a427f96fb563e7fd31aabf994189879d9da2394b89d"
checksum = "01ebdc2bb4498ab1ab5f5b73c5803825e60199229ccba0698170e3be0e7f959f"
dependencies = [
"cfg-if 1.0.0",
"log",
@ -2380,9 +2390,9 @@ dependencies = [
[[package]]
name = "tracing-attributes"
version = "0.1.15"
version = "0.1.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c42e6fa53307c8a17e4ccd4dc81cf5ec38db9209f59b222210375b54ee40d1e2"
checksum = "a8a9bd1db7706f2373a190b0d067146caa39350c486f3d455b0e33b431f94c07"
dependencies = [
"proc-macro2",
"quote",
@ -2391,14 +2401,14 @@ dependencies = [
[[package]]
name = "tracing-bunyan-formatter"
version = "0.2.4"
version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dce1eae70720bd6bb3944f7cf501761aeae658bd1f9293aa373c71a195064910"
checksum = "06718867c20ea03700d41a9413610cccf5d772caea792f34cc73cdd43f0e14a6"
dependencies = [
"chrono",
"gethostname",
"log",
"serde 1.0.126",
"serde 1.0.125",
"serde_json",
"tracing",
"tracing-core",
@ -2408,9 +2418,9 @@ dependencies = [
[[package]]
name = "tracing-core"
version = "0.1.18"
version = "0.1.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a9ff14f98b1a4b289c6248a023c1c2fa1491062964e9fed67ab29c4e4da4a052"
checksum = "f50de3927f93d202783f4513cda820ab47ef17f624b03c096e86ef00c67e6b5f"
dependencies = [
"lazy_static",
]
@ -2436,28 +2446,41 @@ dependencies = [
"tracing-core",
]
[[package]]
name = "tracing-opentelemetry"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cccdf13c28f1654fe806838f28c5b9cb23ca4c0eae71450daa489f50e523ceb1"
dependencies = [
"opentelemetry",
"tracing",
"tracing-core",
"tracing-log",
"tracing-subscriber",
]
[[package]]
name = "tracing-serde"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb65ea441fbb84f9f6748fd496cf7f63ec9af5bca94dd86456978d055e8eb28b"
dependencies = [
"serde 1.0.126",
"serde 1.0.125",
"tracing-core",
]
[[package]]
name = "tracing-subscriber"
version = "0.2.18"
version = "0.2.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa5553bf0883ba7c9cbe493b085c29926bd41b66afc31ff72cf17ff4fb60dcd5"
checksum = "705096c6f83bf68ea5d357a6aa01829ddbdac531b357b45abeca842938085baa"
dependencies = [
"ansi_term",
"chrono",
"lazy_static",
"matchers",
"regex",
"serde 1.0.126",
"serde 1.0.125",
"serde_json",
"sharded-slab",
"smallvec",
@ -2470,12 +2493,12 @@ dependencies = [
[[package]]
name = "trust-dns-proto"
version = "0.19.6"
version = "0.19.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "53861fcb288a166aae4c508ae558ed18b53838db728d4d310aad08270a7d4c2b"
checksum = "1cad71a0c0d68ab9941d2fb6e82f8fb2e86d9945b94e1661dd0aaea2b88215a9"
dependencies = [
"async-trait",
"backtrace",
"cfg-if 1.0.0",
"enum-as-inner",
"futures",
"idna",
@ -2490,11 +2513,10 @@ dependencies = [
[[package]]
name = "trust-dns-resolver"
version = "0.19.6"
version = "0.19.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6759e8efc40465547b0dfce9500d733c65f969a4cbbfbe3ccf68daaa46ef179e"
checksum = "710f593b371175db53a26d0b38ed2978fafb9e9e8d3868b1acd753ea18df0ceb"
dependencies = [
"backtrace",
"cfg-if 0.1.10",
"futures",
"ipconfig",
@ -2594,12 +2616,11 @@ checksum = "b00bca6106a5e23f3eee943593759b7fcddb00554332e856d990c893966879fb"
[[package]]
name = "vergen"
version = "5.1.2"
version = "5.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0277ffac28b64e449a7a8c369ddd8591647c5a2d1fd513eebd6a153ff4c40ea4"
checksum = "dfbc87f9a7a9d61b15d51d1d3547284f67b6b4f1494ce3fc5814c101f35a5183"
dependencies = [
"anyhow",
"cfg-if 1.0.0",
"chrono",
"enum-iterator",
"getset",
@ -2643,7 +2664,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "55c0f7123de74f0dab9b7d00fd614e7b19349cd1e2f5252bbe9b1754b59433be"
dependencies = [
"cfg-if 1.0.0",
"serde 1.0.126",
"serde 1.0.125",
"serde_json",
"wasm-bindgen-macro",
]
@ -2782,12 +2803,6 @@ dependencies = [
"winapi-build",
]
[[package]]
name = "wyz"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214"
[[package]]
name = "yaml-rust"
version = "0.4.5"

View File

@ -1,6 +1,6 @@
[package]
name = "hoc"
version = "0.17.2"
version = "0.17.1"
authors = ["Valentin Brandl <vbrandl@riseup.net>"]
edition = "2018"
build = "build.rs"
@ -15,31 +15,37 @@ name = "hoc"
[dependencies]
actix-rt = "1.1.1"
actix-web = "3.3.2"
actix-web-opentelemetry = "0.10.0"
badge = "0.3.0"
bytes = "1.0.1"
config = { version = "0.11.0", features = ["toml"] }
dotenv = "0.15.0"
futures = "0.3.15"
git2 = "0.13.18"
futures = "0.3.13"
git2 = "0.13.17"
lazy_static = "1.4.0"
number_prefix = "0.4.0"
openssl-probe = "0.1.4"
openssl-probe = "0.1.2"
# TODO: upgrade
opentelemetry = { version = "0.12.0", default-features = false, features = ["trace"] }
# TODO: upgrade
opentelemetry-jaeger = "0.11.0"
reqwest = "0.10.10"
serde = "1.0.126"
serde = "1.0.125"
serde_derive = "1.0.123"
serde_json = "1.0.64"
tracing = "0.1.26"
tracing = "0.1.25"
tracing-actix-web = "0.2.1"
tracing-bunyan-formatter = "0.2.4"
tracing-bunyan-formatter = "0.1.7"
tracing-futures = "0.2.5"
tracing-log = "0.1.2"
tracing-subscriber = { version = "0.2.18", features = ["registry", "env-filter"] }
tracing-opentelemetry = "0.11.0"
tracing-subscriber = { version = "0.2.17", features = ["registry", "env-filter"] }
[build-dependencies]
ructe = "0.13.2"
vergen = { version = "5.1.2", default-features = false, features = ["git"] }
ructe = "0.13.0"
vergen = { version = "5.1.0", default-features = false, features = ["git"] }
[dev-dependencies]
ructe = "0.13.2"
ructe = "0.13.0"
tempfile = "3.2.0"
tokio = "0.2.25"

View File

@ -101,9 +101,9 @@ impl<'a> CacheState<'a> {
entries.insert(
branch.into(),
CacheEntry {
commits,
head,
count,
commits,
},
);
Cache { entries }

View File

@ -32,6 +32,7 @@ use actix_web::{
middleware::{self, normalize::TrailingSlash},
web, App, HttpResponse, HttpServer, Responder,
};
use actix_web_opentelemetry::RequestTracing;
use badge::{Badge, BadgeOptions};
use git2::{BranchType, Repository};
use number_prefix::NumberPrefix;
@ -480,6 +481,7 @@ async fn start_server(listener: TcpListener, settings: Settings) -> std::io::Res
App::new()
.app_data(state.clone())
.app_data(repo_count.clone())
.wrap(RequestTracing::new())
.wrap(tracing_actix_web::TracingLogger)
.wrap(middleware::NormalizePath::new(TrailingSlash::Trim))
.service(index)

View File

@ -1,24 +1,26 @@
use hoc::{config::Settings, telemetry};
use std::net::TcpListener;
fn init() {
fn init() -> opentelemetry_jaeger::Uninstall {
dotenv::dotenv().ok();
openssl_probe::init_ssl_cert_env_vars();
telemetry::init_subscriber(telemetry::get_subscriber("hoc", "info"))
let (subscriber, uninstall) = telemetry::get_subscriber("hoc", "info");
telemetry::init_subscriber(subscriber);
uninstall
}
#[actix_rt::main]
async fn main() -> std::io::Result<()> {
init();
let _uninstall = init();
// TODO: error handling
let settings = Settings::load().expect("Cannot load config");
let address = format!("{}:{}", settings.host, settings.port);
// TODO: error handling
let listener = TcpListener::bind(address)?;
let listener = TcpListener::bind(address).expect("cannot bind addres");
hoc::run(listener, settings)
.await
.expect("Server error")

View File

@ -1,18 +1,32 @@
use opentelemetry::global;
use opentelemetry_jaeger::Uninstall;
use tracing::{subscriber::set_global_default, Subscriber};
use tracing_bunyan_formatter::{BunyanFormattingLayer, JsonStorageLayer};
use tracing_log::LogTracer;
use tracing_subscriber::{layer::SubscriberExt, EnvFilter, Registry};
pub fn get_subscriber(name: &str, env_filter: &str) -> impl Subscriber + Send + Sync {
// TODO: don't pass `Uninstall` around...
pub fn get_subscriber(name: &str, env_filter: &str) -> (impl Subscriber + Send + Sync, Uninstall) {
let env_filter =
EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new(env_filter));
let formatting_layer = BunyanFormattingLayer::new(name.to_string(), std::io::stdout);
Registry::default()
.with(env_filter)
.with(JsonStorageLayer)
.with(formatting_layer)
global::set_text_map_propagator(opentelemetry_jaeger::Propagator::new());
let (tracer, uninstall) = opentelemetry_jaeger::new_pipeline()
.with_service_name(name)
.install()
.expect("cannot install jaeger pipeline");
let telemetry = tracing_opentelemetry::layer().with_tracer(tracer);
(
Registry::default()
.with(telemetry)
.with(env_filter)
.with(JsonStorageLayer)
.with(formatting_layer),
uninstall,
)
}
pub fn init_subscriber(subscriber: impl Subscriber + Send + Sync) {

View File

@ -7,7 +7,7 @@ use tempfile::{tempdir, TempDir};
lazy_static::lazy_static! {
static ref TRACING: () = {
let filter = if std::env::var("TEST_LOG").is_ok() { "debug" } else { "" };
let subscriber = telemetry::get_subscriber("test", filter);
let subscriber = telemetry::get_subscriber("test", filter).0;
telemetry::init_subscriber(subscriber);
};
}