@@ -131,9 +131,8 @@ message WorkerHeartbeat {
131131 // Storage drivers in use by this SDK.
132132 repeated StorageDriverInfo drivers = 24 ;
133133
134- // Runtime environments in use by this SDK. Often will only be one of these, but it's allowed to
135- // be repeated for scenarios like "Python inside a Lambda".
136- repeated RuntimeInfo runtimes = 25 ;
134+ // Information about the environment this SDK is running in.
135+ EnvironmentInfo environment = 25 ;
137136}
138137
139138// Detailed worker information.
@@ -198,23 +197,93 @@ message StorageDriverInfo {
198197 string type = 1 ;
199198}
200199
201- message RuntimeInfo {
202- enum RuntimeType {
203- RUNTIME_TYPE_UNSPECIFIED = 0 ;
204- RUNTIME_TYPE_JVM = 1 ;
205- RUNTIME_TYPE_PYTHON = 2 ;
206- RUNTIME_TYPE_NODE = 3 ;
207- RUNTIME_TYPE_BUN = 4 ;
208- RUNTIME_TYPE_RUBY = 5 ;
209- RUNTIME_TYPE_GO = 6 ;
210- RUNTIME_TYPE_DOCKER = 7 ;
211- RUNTIME_TYPE_LAMBDA = 8 ;
212- RUNTIME_TYPE_GCR = 9 ;
200+ message EnvironmentInfo {
201+ message Runtime {
202+ enum RuntimeType {
203+ RUNTIME_TYPE_UNSPECIFIED = 0 ;
204+ RUNTIME_TYPE_JVM = 1 ;
205+ RUNTIME_TYPE_PYTHON = 2 ;
206+ RUNTIME_TYPE_NODE = 3 ;
207+ RUNTIME_TYPE_BUN = 4 ;
208+ RUNTIME_TYPE_RUBY = 5 ;
209+ RUNTIME_TYPE_GO = 6 ;
210+ }
211+ // The type of the runtime.
212+ RuntimeType type = 1 ;
213+ // The version of the runtime, if obtainable.
214+ string version = 2 ;
215+ }
216+
217+ message HostingEnvironment {
218+ enum HostingEnvironmentType {
219+ HOSTING_ENVIRONMENT_TYPE_UNSPECIFIED = 0 ;
220+ HOSTING_ENVIRONMENT_TYPE_DOCKER = 1 ;
221+ HOSTING_ENVIRONMENT_TYPE_AWS_LAMBDA = 2 ;
222+ HOSTING_ENVIRONMENT_TYPE_GOOGLE_CLOUD_RUN = 3 ;
223+ }
224+ // The type of hosting environment.
225+ HostingEnvironmentType type = 1 ;
226+ // The version of the hosting environment, if obtainable.
227+ string version = 2 ;
228+ }
229+
230+ enum Architecture {
231+ ARCHITECTURE_UNSPECIFIED = 0 ;
232+ ARCHITECTURE_AMD64 = 1 ;
233+ ARCHITECTURE_ARM64 = 2 ;
234+ }
235+
236+ message Platform {
237+ oneof variant {
238+ LinuxPlatform linux = 1 ;
239+ MacOSPlatform macos = 2 ;
240+ WindowsPlatform windows = 3 ;
241+ }
213242 }
214- // The type of the runtime.
215- RuntimeType type = 1 ;
216- // The version of the runtime.
217- string version = 2 ;
243+
244+ message LinuxPlatform {
245+ enum Libc {
246+ LIBC_UNSPECIFIED = 0 ;
247+ LIBC_GLIBC = 1 ;
248+ LIBC_MUSL = 2 ;
249+ }
250+ // The Linux kernel or distribution version, if obtainable.
251+ string version = 1 ;
252+ // The architecture of the worker process.
253+ Architecture architecture = 2 ;
254+ // The libc used by the worker process.
255+ Libc libc = 3 ;
256+ }
257+
258+ message MacOSPlatform {
259+ // The macOS version, if obtainable.
260+ string version = 1 ;
261+ // The architecture of the worker process.
262+ Architecture architecture = 2 ;
263+ }
264+
265+ message WindowsPlatform {
266+ enum Crt {
267+ CRT_UNSPECIFIED = 0 ;
268+ CRT_UCRT = 1 ;
269+ CRT_MSVCRT = 2 ;
270+ CRT_MINGW = 3 ;
271+ CRT_CYGWIN = 4 ;
272+ }
273+ // The Windows version, if obtainable.
274+ string version = 1 ;
275+ // The architecture of the worker process.
276+ Architecture architecture = 2 ;
277+ // The C runtime used by the worker process, if obtainable.
278+ Crt crt = 3 ;
279+ }
280+
281+ // The runtime(s) the SDK is operating in.
282+ repeated Runtime runtimes = 1 ;
283+ // The hosting environment(s) the SDK is operating in.
284+ repeated HostingEnvironment hosting_environments = 2 ;
285+ // The platform the SDK is operating on.
286+ Platform platform = 3 ;
218287}
219288
220289// A command sent from the server to a worker.
0 commit comments