Skip to content

Commit 15cd3ab

Browse files
committed
go/resourceusage: add a client for the Resource Usage API
1 parent 80dbf1a commit 15cd3ab

File tree

11 files changed

+5441
-3561
lines changed

11 files changed

+5441
-3561
lines changed

.bazelversion

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
7.4.1
2-
1+
8.0.0

BUILD

+2
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,6 @@ load("@gazelle//:def.bzl", "gazelle")
22

33
gazelle(name = "gazelle")
44

5+
# gazelle:build_file_name BUILD,BUILD.bazel
6+
# gazelle:exclude buck2
57
# gazelle:exclude java

MODULE.bazel

+29-21
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,18 @@
11
"""EngFlow example project"""
22

3-
module(name = "engflow-example", version = "0.0.0")
3+
module(
4+
name = "engflow-example",
5+
version = "0.0.0",
6+
)
7+
48
http_file = use_repo_rule(
5-
"@bazel_tools//tools/build_defs/repo:http.bzl", "http_file"
9+
"@bazel_tools//tools/build_defs/repo:http.bzl",
10+
"http_file",
611
)
12+
713
http_archive = use_repo_rule(
8-
"@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive"
14+
"@bazel_tools//tools/build_defs/repo:http.bzl",
15+
"http_archive",
916
)
1017

1118
# Some file dependencies
@@ -75,28 +82,26 @@ bazel_dep(
7582
version = "0.0.0-20240326-1c8d509c5",
7683
repo_name = "com_google_googleapis",
7784
)
78-
85+
bazel_dep(name = "engflowapis", version = "2024.11.04-11.10.20")
7986
bazel_dep(name = "rules_python", version = "1.0.0")
8087

8188
PYTHON_VERSION = "3.12"
89+
8290
python = use_extension("@rules_python//python/extensions:python.bzl", "python")
8391
python.toolchain(
8492
is_default = True,
8593
python_version = PYTHON_VERSION,
8694
)
8795

8896
pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
89-
9097
pip.parse(
9198
hub_name = "pip",
9299
python_version = PYTHON_VERSION,
93100
requirements_lock = "//python:requirements_lock.txt",
94101
)
95-
96102
use_repo(pip, "pip")
97103

98104
bazel_dep(name = "rules_proto", version = "6.0.2")
99-
100105
bazel_dep(name = "rules_dotnet", version = "0.15.1")
101106

102107
dotnet = use_extension("@rules_dotnet//dotnet:extensions.bzl", "dotnet")
@@ -106,18 +111,24 @@ use_repo(dotnet, "dotnet_toolchains")
106111
register_toolchains("@dotnet_toolchains//:all")
107112

108113
# https://github.com/bazelbuild/rules_go/blob/master/docs/go/core/bzlmod.md
109-
bazel_dep(name = "rules_go", version = "0.48.1")
110-
bazel_dep(name = "gazelle", version = "0.37.0")
114+
bazel_dep(name = "rules_go", version = "0.52.0")
115+
bazel_dep(name = "gazelle", version = "0.41.0")
111116

112-
GO_VERSION = "1.22.5"
117+
GO_VERSION = "1.23.4"
113118

114119
go_sdk = use_extension("@rules_go//go:extensions.bzl", "go_sdk")
115120
go_sdk.download(version = GO_VERSION)
116121

117122
go_deps = use_extension("@gazelle//:extensions.bzl", "go_deps")
118123
go_deps.from_file(go_mod = "//:go.mod")
119-
120-
use_repo(go_deps, "com_github_google_go_cmp")
124+
use_repo(
125+
go_deps,
126+
"com_github_google_go_cmp",
127+
"org_golang_google_grpc",
128+
"org_golang_google_genproto",
129+
"org_golang_google_genproto_googleapis_api",
130+
"org_golang_google_genproto_googleapis_rpc",
131+
)
121132

122133
bazel_dep(name = "rules_java", version = "7.9.1")
123134

@@ -143,33 +154,28 @@ maven.install(
143154
# When updating versions, run `REPIN=1 bazel run @maven//:pin`
144155
fail_if_repin_required = True,
145156
lock_file = "//:maven_install.json",
146-
147-
strict_visibility = True,
148157
repositories = [
149158
"https://repo.maven.apache.org/maven2/",
150159
],
160+
strict_visibility = True,
151161
)
152162
use_repo(maven, "maven")
153163

154164
bazel_dep(name = "rules_kotlin", version = "1.9.6")
155165
bazel_dep(name = "rules_perl", version = "0.2.0")
156-
157166
bazel_dep(
158167
name = "rules_swift",
159168
version = "1.18.0",
160-
repo_name = "build_bazel_rules_swift"
169+
repo_name = "build_bazel_rules_swift",
161170
)
162-
163171
bazel_dep(name = "aspect_rules_ts", version = "2.4.2")
164172

165173
rules_ts_ext = use_extension(
166174
"@aspect_rules_ts//ts:extensions.bzl",
167175
"ext",
168176
dev_dependency = True,
169177
)
170-
171178
rules_ts_ext.deps()
172-
173179
use_repo(rules_ts_ext, "npm_typescript")
174180

175181
# rules_scala is not yet bzlmod compatible:
@@ -267,15 +273,16 @@ use_repo(rules_ts_ext, "npm_typescript")
267273

268274
http_archive(
269275
name = "io_bazel_rules_scala",
276+
patch_args = ["-p1"],
277+
patches = ["//scala:rules_scala-6.6.0.patch"],
270278
sha256 = "e734eef95cf26c0171566bdc24d83bd82bdaf8ca7873bec6ce9b0d524bdaf05d",
271279
strip_prefix = "rules_scala-6.6.0",
272280
url = "https://github.com/bazelbuild/rules_scala/releases/download/v6.6.0/rules_scala-v6.6.0.tar.gz",
273-
patches = ["//scala:rules_scala-6.6.0.patch"],
274-
patch_args = ["-p1"],
275281
)
276282

277283
# This constant matches the default Scala version from rules_scala for now.
278284
SCALA_VERSION = "2.13.12"
285+
279286
SCALA_VERSIONS = [SCALA_VERSION]
280287

281288
scala_config = use_extension("//scala/extensions:config.bzl", "scala_config")
@@ -314,6 +321,7 @@ toolchains = [
314321
]
315322

316323
scala_deps = use_extension("//scala/extensions:deps.bzl", "scala_deps")
324+
317325
[
318326
(
319327
[use_repo(scala_deps, repo + suffix) for repo in repos],

MODULE.bazel.lock

+4,941-3,535
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

go.mod

+15-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,18 @@
11
module github.com/EngFlow/example
22

3-
go 1.21.2
3+
go 1.23.4
44

5-
require github.com/google/go-cmp v0.6.0
5+
require (
6+
github.com/google/go-cmp v0.6.0
7+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f
8+
google.golang.org/genproto/googleapis/api v0.0.0-20250115164207-1a7da9e5054f
9+
google.golang.org/grpc v1.69.4
10+
)
11+
12+
require (
13+
github.com/golang/protobuf v1.5.4 // indirect
14+
golang.org/x/net v0.33.0 // indirect
15+
golang.org/x/sys v0.28.0 // indirect
16+
golang.org/x/text v0.21.0 // indirect
17+
google.golang.org/protobuf v1.36.3 // indirect
18+
)

go.sum

+54
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,56 @@
1+
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
2+
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
3+
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
4+
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
5+
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
6+
github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
7+
github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
8+
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
9+
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
10+
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
111
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
212
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
13+
github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4=
14+
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
15+
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
16+
go.opentelemetry.io/otel v1.31.0 h1:NsJcKPIW0D0H3NgzPDHmo0WW6SptzPdqg/L1zsIm2hY=
17+
go.opentelemetry.io/otel v1.31.0/go.mod h1:O0C14Yl9FgkjqcCZAsE053C13OaddMYr/hz6clDkEJE=
18+
go.opentelemetry.io/otel/metric v1.31.0 h1:FSErL0ATQAmYHUIzSezZibnyVlft1ybhy4ozRPcF2fE=
19+
go.opentelemetry.io/otel/metric v1.31.0/go.mod h1:C3dEloVbLuYoX41KpmAhOqNriGbA+qqH6PQ5E5mUfnY=
20+
go.opentelemetry.io/otel/sdk v1.31.0 h1:xLY3abVHYZ5HSfOg3l2E5LUj2Cwva5Y7yGxnSW9H5Gk=
21+
go.opentelemetry.io/otel/sdk v1.31.0/go.mod h1:TfRbMdhvxIIr/B2N2LQW2S5v9m3gOQ/08KsbbO5BPT0=
22+
go.opentelemetry.io/otel/sdk/metric v1.31.0 h1:i9hxxLJF/9kkvfHppyLL55aW7iIJz4JjxTeYusH7zMc=
23+
go.opentelemetry.io/otel/sdk/metric v1.31.0/go.mod h1:CRInTMVvNhUKgSAMbKyTMxqOBC0zgyxzW55lZzX43Y8=
24+
go.opentelemetry.io/otel/trace v1.31.0 h1:ffjsj1aRouKewfr85U2aGagJ46+MvodynlQ1HYdmJys=
25+
go.opentelemetry.io/otel/trace v1.31.0/go.mod h1:TXZkRk7SM2ZQLtR6eoAWQFIHPvzQ06FJAsO1tJg480A=
26+
golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I=
27+
golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4=
28+
golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
29+
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
30+
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
31+
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
32+
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
33+
google.golang.org/genproto v0.0.0-20250115164207-1a7da9e5054f h1:387Y+JbxF52bmesc8kq1NyYIp33dnxCw6eiA7JMsTmw=
34+
google.golang.org/genproto v0.0.0-20250115164207-1a7da9e5054f/go.mod h1:0joYwWwLQh18AOj8zMYeZLjzuqcYTU3/nC5JdCvC3JI=
35+
google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 h1:W18sezcAYs+3tDZX4F80yctqa12jcP1PUS2gQu1zTPU=
36+
google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97/go.mod h1:iargEX0SFPm3xcfMI0d1domjg0ZF4Aa0p2awqyxhvF0=
37+
google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 h1:7whR9kGa5LUwFtpLm2ArCEejtnxlGeLbAyjFY8sGNFw=
38+
google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157/go.mod h1:99sLkeliLXfdj2J75X3Ho+rrVCaJze0uwN7zDDkjPVU=
39+
google.golang.org/genproto/googleapis/api v0.0.0-20250115164207-1a7da9e5054f h1:gap6+3Gk41EItBuyi4XX/bp4oqJ3UwuIMl25yGinuAA=
40+
google.golang.org/genproto/googleapis/api v0.0.0-20250115164207-1a7da9e5054f/go.mod h1:Ic02D47M+zbarjYYUlK57y316f2MoN0gjAwI3f2S95o=
41+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250106144421-5f5ef82da422 h1:3UsHvIr4Wc2aW4brOaSCmcxh9ksica6fHEr8P1XhkYw=
42+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250106144421-5f5ef82da422/go.mod h1:3ENsm/5D1mzDyhpzeRi1NR784I0BcofWBoSc5QqqMK4=
43+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f h1:OxYkA3wjPsZyBylwymxSHa7ViiW1Sml4ToBrncvFehI=
44+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f/go.mod h1:+2Yz8+CLJbIfL9z73EW45avw8Lmge3xVElCP9zEKi50=
45+
google.golang.org/grpc v1.55.0 h1:3Oj82/tFSCeUrRTg/5E/7d/W5A1tj6Ky1ABAuZuv5ag=
46+
google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8=
47+
google.golang.org/grpc v1.60.0 h1:6FQAR0kM31P6MRdeluor2w2gPaS4SVNrD/DNTxrQ15k=
48+
google.golang.org/grpc v1.60.0/go.mod h1:OlCHIeLYqSSsLi6i49B5QGdzaMZK9+M7LXN2FKz4eGM=
49+
google.golang.org/grpc v1.65.0 h1:bs/cUb4lp1G5iImFFd3u5ixQzweKizoZJAwBNLR42lc=
50+
google.golang.org/grpc v1.65.0/go.mod h1:WgYC2ypjlB0EiQi6wdKixMqukr6lBc0Vo+oOgjrM5ZQ=
51+
google.golang.org/grpc v1.69.4 h1:MF5TftSMkd8GLw/m0KM6V8CMOCY6NZ1NQDPGFgbTt4A=
52+
google.golang.org/grpc v1.69.4/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4=
53+
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
54+
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
55+
google.golang.org/protobuf v1.36.3 h1:82DV7MYdb8anAVi3qge1wSnMDrnKK7ebr+I0hHRN1BU=
56+
google.golang.org/protobuf v1.36.3/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=

go/proto/BUILD

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
load("@rules_go//proto:def.bzl", "go_proto_library")
2+
3+
package(default_visibility = ["//go:__subpackages__"])
4+
5+
go_proto_library(
6+
name = "notification_queue_go_proto",
7+
compilers = [
8+
"@rules_go//proto:go_grpc_v2",
9+
"@rules_go//proto:go_proto",
10+
],
11+
importpath = "github.com/EngFlow/engflowapis-go/engflow/notification/v1",
12+
protos = ["@engflowapis//engflow/notification/v1"],
13+
deps = [
14+
":api_go_proto",
15+
"@org_golang_google_genproto_googleapis_rpc//status",
16+
],
17+
)
18+
19+
go_proto_library(
20+
name = "resourceusage_go_proto",
21+
importpath = "github.com/EngFlow/engflowapis-go/engflow/resourceusage/v1",
22+
protos = ["@engflowapis//engflow/resourceusage/v1"],
23+
deps = [":type_go_proto"],
24+
)
25+
26+
go_proto_library(
27+
name = "api_go_proto",
28+
importpath = "github.com/EngFlow/engflowapis-go/engflow/api",
29+
protos = ["@engflowapis//engflow/api"],
30+
deps = [":type_go_proto"],
31+
)
32+
33+
go_proto_library(
34+
name = "type_go_proto",
35+
importpath = "github.com/EngFlow/engflowapis-go/engflow/type",
36+
protos = ["@engflowapis//engflow/type"],
37+
deps = ["@org_golang_google_genproto_googleapis_api//annotations"],
38+
)

go/resourceusage/BUILD

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
load("@rules_go//go:def.bzl", "go_binary", "go_library")
2+
3+
go_library(
4+
name = "resourceusage_lib",
5+
srcs = ["resourceusage.go"],
6+
importpath = "github.com/EngFlow/example/go/resourceusage",
7+
visibility = ["//visibility:private"],
8+
deps = [
9+
"//go/proto:notification_queue_go_proto",
10+
"//go/proto:resourceusage_go_proto",
11+
"@org_golang_google_grpc//:grpc",
12+
"@org_golang_google_grpc//codes",
13+
"@org_golang_google_grpc//credentials",
14+
"@org_golang_google_grpc//status",
15+
],
16+
)
17+
18+
go_binary(
19+
name = "resourceusage",
20+
embed = [":resourceusage_lib"],
21+
visibility = ["//visibility:public"],
22+
)

go/resourceusage/README.md

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
resourceusage streams Resource Usage API events from an EngFlow server and
2+
prints them to stdout as JSON.
3+
4+
Run with -h or -help for instructions.

0 commit comments

Comments
 (0)