Skip to content

Commit 57d593c

Browse files
committed
go/resourceusage: add a client for the Resource Usage API
1 parent 4564c69 commit 57d593c

File tree

11 files changed

+5262
-3791
lines changed

11 files changed

+5262
-3791
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

+28-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
@@ -67,28 +74,26 @@ bazel_dep(
6774
version = "0.0.0-20240326-1c8d509c5",
6875
repo_name = "com_google_googleapis",
6976
)
70-
77+
bazel_dep(name = "engflowapis", version = "2024.11.04-11.10.20")
7178
bazel_dep(name = "rules_python", version = "1.0.0")
7279

7380
PYTHON_VERSION = "3.12"
81+
7482
python = use_extension("@rules_python//python/extensions:python.bzl", "python")
7583
python.toolchain(
7684
is_default = True,
7785
python_version = PYTHON_VERSION,
7886
)
7987

8088
pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
81-
8289
pip.parse(
8390
hub_name = "pip",
8491
python_version = PYTHON_VERSION,
8592
requirements_lock = "//python:requirements_lock.txt",
8693
)
87-
8894
use_repo(pip, "pip")
8995

9096
bazel_dep(name = "rules_proto", version = "6.0.2")
91-
9297
bazel_dep(name = "rules_dotnet", version = "0.15.1")
9398

9499
dotnet = use_extension("@rules_dotnet//dotnet:extensions.bzl", "dotnet")
@@ -98,18 +103,23 @@ use_repo(dotnet, "dotnet_toolchains")
98103
register_toolchains("@dotnet_toolchains//:all")
99104

100105
# https://github.com/bazelbuild/rules_go/blob/master/docs/go/core/bzlmod.md
101-
bazel_dep(name = "rules_go", version = "0.48.1")
102-
bazel_dep(name = "gazelle", version = "0.37.0")
106+
bazel_dep(name = "rules_go", version = "0.52.0")
107+
bazel_dep(name = "gazelle", version = "0.41.0")
103108

104-
GO_VERSION = "1.22.5"
109+
GO_VERSION = "1.23.4"
105110

106111
go_sdk = use_extension("@rules_go//go:extensions.bzl", "go_sdk")
107112
go_sdk.download(version = GO_VERSION)
108113

109114
go_deps = use_extension("@gazelle//:extensions.bzl", "go_deps")
110115
go_deps.from_file(go_mod = "//:go.mod")
111-
112-
use_repo(go_deps, "com_github_google_go_cmp")
116+
use_repo(
117+
go_deps,
118+
"com_github_google_go_cmp",
119+
"org_golang_google_genproto_googleapis_api",
120+
"org_golang_google_genproto_googleapis_rpc",
121+
"org_golang_google_grpc",
122+
)
113123

114124
bazel_dep(name = "rules_java", version = "7.9.1")
115125

@@ -135,33 +145,28 @@ maven.install(
135145
# When updating versions, run `REPIN=1 bazel run @maven//:pin`
136146
fail_if_repin_required = True,
137147
lock_file = "//:maven_install.json",
138-
139-
strict_visibility = True,
140148
repositories = [
141149
"https://repo.maven.apache.org/maven2/",
142150
],
151+
strict_visibility = True,
143152
)
144153
use_repo(maven, "maven")
145154

146155
bazel_dep(name = "rules_kotlin", version = "1.9.6")
147156
bazel_dep(name = "rules_perl", version = "0.2.0")
148-
149157
bazel_dep(
150158
name = "rules_swift",
151159
version = "1.18.0",
152-
repo_name = "build_bazel_rules_swift"
160+
repo_name = "build_bazel_rules_swift",
153161
)
154-
155162
bazel_dep(name = "aspect_rules_ts", version = "2.4.2")
156163

157164
rules_ts_ext = use_extension(
158165
"@aspect_rules_ts//ts:extensions.bzl",
159166
"ext",
160167
dev_dependency = True,
161168
)
162-
163169
rules_ts_ext.deps()
164-
165170
use_repo(rules_ts_ext, "npm_typescript")
166171

167172
# rules_scala is not yet bzlmod compatible:
@@ -259,15 +264,16 @@ use_repo(rules_ts_ext, "npm_typescript")
259264

260265
http_archive(
261266
name = "io_bazel_rules_scala",
267+
patch_args = ["-p1"],
268+
patches = ["//scala:rules_scala-6.6.0.patch"],
262269
sha256 = "e734eef95cf26c0171566bdc24d83bd82bdaf8ca7873bec6ce9b0d524bdaf05d",
263270
strip_prefix = "rules_scala-6.6.0",
264271
url = "https://github.com/bazelbuild/rules_scala/releases/download/v6.6.0/rules_scala-v6.6.0.tar.gz",
265-
patches = ["//scala:rules_scala-6.6.0.patch"],
266-
patch_args = ["-p1"],
267272
)
268273

269274
# This constant matches the default Scala version from rules_scala for now.
270275
SCALA_VERSION = "2.13.12"
276+
271277
SCALA_VERSIONS = [SCALA_VERSION]
272278

273279
scala_config = use_extension("//scala/extensions:config.bzl", "scala_config")
@@ -306,6 +312,7 @@ toolchains = [
306312
]
307313

308314
scala_deps = use_extension("//scala/extensions:deps.bzl", "scala_deps")
315+
309316
[
310317
(
311318
[use_repo(scala_deps, repo + suffix) for repo in repos],

MODULE.bazel.lock

+4,763-3,765
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)