Skip to content

Commit

Permalink
go/resourceusage: add a client for the Resource Usage API
Browse files Browse the repository at this point in the history
  • Loading branch information
jayconrod committed Jan 17, 2025
1 parent 80dbf1a commit 15cd3ab
Show file tree
Hide file tree
Showing 11 changed files with 5,441 additions and 3,561 deletions.
3 changes: 1 addition & 2 deletions .bazelversion
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
7.4.1

8.0.0
2 changes: 2 additions & 0 deletions BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,6 @@ load("@gazelle//:def.bzl", "gazelle")

gazelle(name = "gazelle")

# gazelle:build_file_name BUILD,BUILD.bazel
# gazelle:exclude buck2
# gazelle:exclude java
50 changes: 29 additions & 21 deletions MODULE.bazel
Original file line number Diff line number Diff line change
@@ -1,11 +1,18 @@
"""EngFlow example project"""

module(name = "engflow-example", version = "0.0.0")
module(
name = "engflow-example",
version = "0.0.0",
)

http_file = use_repo_rule(
"@bazel_tools//tools/build_defs/repo:http.bzl", "http_file"
"@bazel_tools//tools/build_defs/repo:http.bzl",
"http_file",
)

http_archive = use_repo_rule(
"@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive"
"@bazel_tools//tools/build_defs/repo:http.bzl",
"http_archive",
)

# Some file dependencies
Expand Down Expand Up @@ -75,28 +82,26 @@ bazel_dep(
version = "0.0.0-20240326-1c8d509c5",
repo_name = "com_google_googleapis",
)

bazel_dep(name = "engflowapis", version = "2024.11.04-11.10.20")
bazel_dep(name = "rules_python", version = "1.0.0")

PYTHON_VERSION = "3.12"

python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
is_default = True,
python_version = PYTHON_VERSION,
)

pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")

pip.parse(
hub_name = "pip",
python_version = PYTHON_VERSION,
requirements_lock = "//python:requirements_lock.txt",
)

use_repo(pip, "pip")

bazel_dep(name = "rules_proto", version = "6.0.2")

bazel_dep(name = "rules_dotnet", version = "0.15.1")

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

# https://github.com/bazelbuild/rules_go/blob/master/docs/go/core/bzlmod.md
bazel_dep(name = "rules_go", version = "0.48.1")
bazel_dep(name = "gazelle", version = "0.37.0")
bazel_dep(name = "rules_go", version = "0.52.0")
bazel_dep(name = "gazelle", version = "0.41.0")

GO_VERSION = "1.22.5"
GO_VERSION = "1.23.4"

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

go_deps = use_extension("@gazelle//:extensions.bzl", "go_deps")
go_deps.from_file(go_mod = "//:go.mod")

use_repo(go_deps, "com_github_google_go_cmp")
use_repo(
go_deps,
"com_github_google_go_cmp",
"org_golang_google_grpc",
"org_golang_google_genproto",
"org_golang_google_genproto_googleapis_api",
"org_golang_google_genproto_googleapis_rpc",
)

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

Expand All @@ -143,33 +154,28 @@ maven.install(
# When updating versions, run `REPIN=1 bazel run @maven//:pin`
fail_if_repin_required = True,
lock_file = "//:maven_install.json",

strict_visibility = True,
repositories = [
"https://repo.maven.apache.org/maven2/",
],
strict_visibility = True,
)
use_repo(maven, "maven")

bazel_dep(name = "rules_kotlin", version = "1.9.6")
bazel_dep(name = "rules_perl", version = "0.2.0")

bazel_dep(
name = "rules_swift",
version = "1.18.0",
repo_name = "build_bazel_rules_swift"
repo_name = "build_bazel_rules_swift",
)

bazel_dep(name = "aspect_rules_ts", version = "2.4.2")

rules_ts_ext = use_extension(
"@aspect_rules_ts//ts:extensions.bzl",
"ext",
dev_dependency = True,
)

rules_ts_ext.deps()

use_repo(rules_ts_ext, "npm_typescript")

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

http_archive(
name = "io_bazel_rules_scala",
patch_args = ["-p1"],
patches = ["//scala:rules_scala-6.6.0.patch"],
sha256 = "e734eef95cf26c0171566bdc24d83bd82bdaf8ca7873bec6ce9b0d524bdaf05d",
strip_prefix = "rules_scala-6.6.0",
url = "https://github.com/bazelbuild/rules_scala/releases/download/v6.6.0/rules_scala-v6.6.0.tar.gz",
patches = ["//scala:rules_scala-6.6.0.patch"],
patch_args = ["-p1"],
)

# This constant matches the default Scala version from rules_scala for now.
SCALA_VERSION = "2.13.12"

SCALA_VERSIONS = [SCALA_VERSION]

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

scala_deps = use_extension("//scala/extensions:deps.bzl", "scala_deps")

[
(
[use_repo(scala_deps, repo + suffix) for repo in repos],
Expand Down
8,476 changes: 4,941 additions & 3,535 deletions MODULE.bazel.lock

Large diffs are not rendered by default.

17 changes: 15 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,5 +1,18 @@
module github.com/EngFlow/example

go 1.21.2
go 1.23.4

require github.com/google/go-cmp v0.6.0
require (
github.com/google/go-cmp v0.6.0
google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f
google.golang.org/genproto/googleapis/api v0.0.0-20250115164207-1a7da9e5054f
google.golang.org/grpc v1.69.4
)

require (
github.com/golang/protobuf v1.5.4 // indirect
golang.org/x/net v0.33.0 // indirect
golang.org/x/sys v0.28.0 // indirect
golang.org/x/text v0.21.0 // indirect
google.golang.org/protobuf v1.36.3 // indirect
)
54 changes: 54 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
@@ -1,2 +1,56 @@
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
go.opentelemetry.io/otel v1.31.0 h1:NsJcKPIW0D0H3NgzPDHmo0WW6SptzPdqg/L1zsIm2hY=
go.opentelemetry.io/otel v1.31.0/go.mod h1:O0C14Yl9FgkjqcCZAsE053C13OaddMYr/hz6clDkEJE=
go.opentelemetry.io/otel/metric v1.31.0 h1:FSErL0ATQAmYHUIzSezZibnyVlft1ybhy4ozRPcF2fE=
go.opentelemetry.io/otel/metric v1.31.0/go.mod h1:C3dEloVbLuYoX41KpmAhOqNriGbA+qqH6PQ5E5mUfnY=
go.opentelemetry.io/otel/sdk v1.31.0 h1:xLY3abVHYZ5HSfOg3l2E5LUj2Cwva5Y7yGxnSW9H5Gk=
go.opentelemetry.io/otel/sdk v1.31.0/go.mod h1:TfRbMdhvxIIr/B2N2LQW2S5v9m3gOQ/08KsbbO5BPT0=
go.opentelemetry.io/otel/sdk/metric v1.31.0 h1:i9hxxLJF/9kkvfHppyLL55aW7iIJz4JjxTeYusH7zMc=
go.opentelemetry.io/otel/sdk/metric v1.31.0/go.mod h1:CRInTMVvNhUKgSAMbKyTMxqOBC0zgyxzW55lZzX43Y8=
go.opentelemetry.io/otel/trace v1.31.0 h1:ffjsj1aRouKewfr85U2aGagJ46+MvodynlQ1HYdmJys=
go.opentelemetry.io/otel/trace v1.31.0/go.mod h1:TXZkRk7SM2ZQLtR6eoAWQFIHPvzQ06FJAsO1tJg480A=
golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I=
golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4=
golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/genproto v0.0.0-20250115164207-1a7da9e5054f h1:387Y+JbxF52bmesc8kq1NyYIp33dnxCw6eiA7JMsTmw=
google.golang.org/genproto v0.0.0-20250115164207-1a7da9e5054f/go.mod h1:0joYwWwLQh18AOj8zMYeZLjzuqcYTU3/nC5JdCvC3JI=
google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 h1:W18sezcAYs+3tDZX4F80yctqa12jcP1PUS2gQu1zTPU=
google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97/go.mod h1:iargEX0SFPm3xcfMI0d1domjg0ZF4Aa0p2awqyxhvF0=
google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 h1:7whR9kGa5LUwFtpLm2ArCEejtnxlGeLbAyjFY8sGNFw=
google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157/go.mod h1:99sLkeliLXfdj2J75X3Ho+rrVCaJze0uwN7zDDkjPVU=
google.golang.org/genproto/googleapis/api v0.0.0-20250115164207-1a7da9e5054f h1:gap6+3Gk41EItBuyi4XX/bp4oqJ3UwuIMl25yGinuAA=
google.golang.org/genproto/googleapis/api v0.0.0-20250115164207-1a7da9e5054f/go.mod h1:Ic02D47M+zbarjYYUlK57y316f2MoN0gjAwI3f2S95o=
google.golang.org/genproto/googleapis/rpc v0.0.0-20250106144421-5f5ef82da422 h1:3UsHvIr4Wc2aW4brOaSCmcxh9ksica6fHEr8P1XhkYw=
google.golang.org/genproto/googleapis/rpc v0.0.0-20250106144421-5f5ef82da422/go.mod h1:3ENsm/5D1mzDyhpzeRi1NR784I0BcofWBoSc5QqqMK4=
google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f h1:OxYkA3wjPsZyBylwymxSHa7ViiW1Sml4ToBrncvFehI=
google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f/go.mod h1:+2Yz8+CLJbIfL9z73EW45avw8Lmge3xVElCP9zEKi50=
google.golang.org/grpc v1.55.0 h1:3Oj82/tFSCeUrRTg/5E/7d/W5A1tj6Ky1ABAuZuv5ag=
google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8=
google.golang.org/grpc v1.60.0 h1:6FQAR0kM31P6MRdeluor2w2gPaS4SVNrD/DNTxrQ15k=
google.golang.org/grpc v1.60.0/go.mod h1:OlCHIeLYqSSsLi6i49B5QGdzaMZK9+M7LXN2FKz4eGM=
google.golang.org/grpc v1.65.0 h1:bs/cUb4lp1G5iImFFd3u5ixQzweKizoZJAwBNLR42lc=
google.golang.org/grpc v1.65.0/go.mod h1:WgYC2ypjlB0EiQi6wdKixMqukr6lBc0Vo+oOgjrM5ZQ=
google.golang.org/grpc v1.69.4 h1:MF5TftSMkd8GLw/m0KM6V8CMOCY6NZ1NQDPGFgbTt4A=
google.golang.org/grpc v1.69.4/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.36.3 h1:82DV7MYdb8anAVi3qge1wSnMDrnKK7ebr+I0hHRN1BU=
google.golang.org/protobuf v1.36.3/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
38 changes: 38 additions & 0 deletions go/proto/BUILD
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
load("@rules_go//proto:def.bzl", "go_proto_library")

package(default_visibility = ["//go:__subpackages__"])

go_proto_library(
name = "notification_queue_go_proto",
compilers = [
"@rules_go//proto:go_grpc_v2",
"@rules_go//proto:go_proto",
],
importpath = "github.com/EngFlow/engflowapis-go/engflow/notification/v1",
protos = ["@engflowapis//engflow/notification/v1"],
deps = [
":api_go_proto",
"@org_golang_google_genproto_googleapis_rpc//status",
],
)

go_proto_library(
name = "resourceusage_go_proto",
importpath = "github.com/EngFlow/engflowapis-go/engflow/resourceusage/v1",
protos = ["@engflowapis//engflow/resourceusage/v1"],
deps = [":type_go_proto"],
)

go_proto_library(
name = "api_go_proto",
importpath = "github.com/EngFlow/engflowapis-go/engflow/api",
protos = ["@engflowapis//engflow/api"],
deps = [":type_go_proto"],
)

go_proto_library(
name = "type_go_proto",
importpath = "github.com/EngFlow/engflowapis-go/engflow/type",
protos = ["@engflowapis//engflow/type"],
deps = ["@org_golang_google_genproto_googleapis_api//annotations"],
)
22 changes: 22 additions & 0 deletions go/resourceusage/BUILD
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
load("@rules_go//go:def.bzl", "go_binary", "go_library")

go_library(
name = "resourceusage_lib",
srcs = ["resourceusage.go"],
importpath = "github.com/EngFlow/example/go/resourceusage",
visibility = ["//visibility:private"],
deps = [
"//go/proto:notification_queue_go_proto",
"//go/proto:resourceusage_go_proto",
"@org_golang_google_grpc//:grpc",
"@org_golang_google_grpc//codes",
"@org_golang_google_grpc//credentials",
"@org_golang_google_grpc//status",
],
)

go_binary(
name = "resourceusage",
embed = [":resourceusage_lib"],
visibility = ["//visibility:public"],
)
4 changes: 4 additions & 0 deletions go/resourceusage/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
resourceusage streams Resource Usage API events from an EngFlow server and
prints them to stdout as JSON.

Run with -h or -help for instructions.
Loading

0 comments on commit 15cd3ab

Please sign in to comment.