@@ -352,6 +352,7 @@ message StreamJobsResponse {
352352 InfoRequest info = 100 ; // Request for system information
353353 SeppukuRequest shutdown = 101 ; // Request to shut down the client
354354 LoggingRequest logging = 102 ; // Request related to logging
355+ DiagnosticsRequest diagnostics = 103 ; // Request for diagnostics
355356 }
356357
357358 /**
@@ -465,6 +466,12 @@ message StreamJobsResponse {
465466 }
466467 }
467468 }
469+
470+ /**
471+ * Request message for diagnostics request.
472+ * Empty response indicates successful diagnostics.
473+ */
474+ message DiagnosticsRequest {}
468475}
469476
470477/**
@@ -490,6 +497,7 @@ message SubmitJobResultsRequest {
490497 InfoResult info_result = 22 ; // System information result
491498 SeppukuResult shutdown_result = 23 ; // Result of shutdown request
492499 LoggingResult logging_result = 24 ; // Result of logging request
500+ DiagnosticsResult diagnostics_result = 25 ; // Result of diagnostics request
493501 }
494502
495503 /**
@@ -571,7 +579,187 @@ message SubmitJobResultsRequest {
571579 }
572580
573581 /**
574- * Result message for shutdown request.
582+ * Result message for diagnostics request.
583+ * Contains comprehensive system information about the running application.
584+ */
585+ message DiagnosticsResult {
586+ google.protobuf.Timestamp timestamp = 1 ; // Timestamp when diagnostics were collected
587+ string hostname = 2 ; // System hostname
588+ OperatingSystem operating_system = 3 ; // Operating system information
589+ JavaRuntime java_runtime = 4 ; // Java runtime information
590+ Hardware hardware = 5 ; // Hardware information
591+ Memory memory = 6 ; // Memory usage information
592+ repeated Storage storage = 7 ; // Storage devices and partitions
593+ Container container = 8 ; // Container information (if running in container)
594+ EnvironmentVariables environment_variables = 9 ; // Environment variables
595+ SystemProperties system_properties = 10 ; // System properties
596+ message OperatingSystem {
597+ string name = 1 ; // OS name (e.g., "Linux", "Windows")
598+ string version = 2 ; // OS version
599+ string architecture = 3 ; // System architecture (e.g., "aarch64", "x86_64")
600+ string manufacturer = 4 ; // OS manufacturer
601+ int32 available_processors = 5 ; // Number of available processors
602+ int64 system_uptime = 6 ; // System uptime in seconds
603+ double system_load_average = 7 ; // System load average
604+ int64 total_physical_memory = 8 ; // Total physical memory in bytes
605+ int64 available_physical_memory = 9 ; // Available physical memory in bytes
606+ int64 total_swap_space = 10 ; // Total swap space in bytes (-1 if not available)
607+ int64 available_swap_space = 11 ; // Available swap space in bytes (-1 if not available)
608+ }
609+ message JavaRuntime {
610+ string version = 1 ; // Java version
611+ string vendor = 2 ; // Java vendor
612+ string runtime_name = 3 ; // Runtime name
613+ string vm_name = 4 ; // VM name
614+ string vm_version = 5 ; // VM version
615+ string vm_vendor = 6 ; // VM vendor
616+ string specification_name = 7 ; // Specification name
617+ string specification_version = 8 ; // Specification version
618+ string class_path = 9 ; // Java class path
619+ string library_path = 10 ; // Java library path
620+ repeated string input_arguments = 11 ; // JVM input arguments
621+ int64 uptime = 12 ; // JVM uptime in milliseconds
622+ int64 start_time = 13 ; // JVM start time in milliseconds since epoch
623+ string management_spec_version = 14 ; // Management specification version
624+ }
625+ message Hardware {
626+ string model = 1 ; // Hardware model
627+ string manufacturer = 2 ; // Hardware manufacturer
628+ string serial_number = 3 ; // Hardware serial number
629+ string uuid = 4 ; // Hardware UUID
630+ Processor processor = 5 ; // Processor information
631+ }
632+ message Processor {
633+ string name = 1 ; // Processor name
634+ string identifier = 2 ; // Processor identifier
635+ string architecture = 3 ; // Processor architecture
636+ int32 physical_processor_count = 4 ; // Number of physical processors
637+ int32 logical_processor_count = 5 ; // Number of logical processors
638+ int64 max_frequency = 6 ; // Maximum frequency in Hz (-1 if unknown)
639+ bool cpu_64bit = 7 ; // Whether the CPU is 64-bit
640+ }
641+ message Memory {
642+ int64 heap_memory_used = 1 ; // Used heap memory in bytes
643+ int64 heap_memory_max = 2 ; // Maximum heap memory in bytes
644+ int64 heap_memory_committed = 3 ; // Committed heap memory in bytes
645+ int64 non_heap_memory_used = 4 ; // Used non-heap memory in bytes
646+ int64 non_heap_memory_max = 5 ; // Maximum non-heap memory in bytes (-1 if unlimited)
647+ int64 non_heap_memory_committed = 6 ; // Committed non-heap memory in bytes
648+ repeated MemoryPool memory_pools = 7 ; // Memory pool information
649+ }
650+ message MemoryPool {
651+ string name = 1 ; // Memory pool name
652+ string type = 2 ; // Memory pool type (e.g., "Heap memory", "Non-heap memory")
653+ int64 used = 3 ; // Used memory in bytes
654+ int64 max = 4 ; // Maximum memory in bytes (-1 if unlimited)
655+ int64 committed = 5 ; // Committed memory in bytes
656+ }
657+ message Storage {
658+ string name = 1 ; // Storage device name
659+ string type = 2 ; // Storage device type (e.g., "disk")
660+ string model = 3 ; // Storage device model
661+ string serial_number = 4 ; // Storage device serial number
662+ int64 size = 5 ; // Storage device size in bytes
663+ }
664+ message Container {
665+ bool is_container = 1 ; // Whether running in a container
666+ string container_type = 2 ; // Container type (e.g., "docker")
667+ string container_id = 3 ; // Container ID
668+ string container_name = 4 ; // Container name
669+ string image_name = 5 ; // Container image name
670+ map <string , string > resource_limits = 6 ; // Resource limits imposed by the container
671+ }
672+ message EnvironmentVariables {
673+ string language = 1 ; // LANGUAGE
674+ string path = 2 ; // PATH
675+ string hostname = 3 ; // HOSTNAME
676+ string lc_all = 4 ; // LC_ALL
677+ string java_home = 5 ; // JAVA_HOME
678+ string java_version = 6 ; // JAVA_VERSION
679+ string lang = 7 ; // LANG
680+ string home = 8 ; // HOME
681+ }
682+ message SystemProperties {
683+ // Java Specification
684+ string java_specification_version = 1 ; // java.specification.version
685+ string java_specification_vendor = 2 ; // java.specification.vendor
686+ string java_specification_name = 3 ; // java.specification.name
687+ string java_specification_maintenance_version = 4 ; // java.specification.maintenance.version
688+
689+ // Java Version Info
690+ string java_version = 5 ; // java.version
691+ string java_version_date = 6 ; // java.version.date
692+ string java_vendor = 7 ; // java.vendor
693+ string java_vendor_version = 8 ; // java.vendor.version
694+ string java_vendor_url = 9 ; // java.vendor.url
695+ string java_vendor_url_bug = 10 ; // java.vendor.url.bug
696+
697+ // Java Runtime
698+ string java_runtime_name = 11 ; // java.runtime.name
699+ string java_runtime_version = 12 ; // java.runtime.version
700+ string java_home = 13 ; // java.home
701+ string java_class_path = 14 ; // java.class.path
702+ string java_library_path = 15 ; // java.library.path
703+ string java_class_version = 16 ; // java.class.version
704+
705+ // Java VM
706+ string java_vm_name = 17 ; // java.vm.name
707+ string java_vm_version = 18 ; // java.vm.version
708+ string java_vm_vendor = 19 ; // java.vm.vendor
709+ string java_vm_info = 20 ; // java.vm.info
710+ string java_vm_specification_version = 21 ; // java.vm.specification.version
711+ string java_vm_specification_vendor = 22 ; // java.vm.specification.vendor
712+ string java_vm_specification_name = 23 ; // java.vm.specification.name
713+ string java_vm_compressed_oops_mode = 24 ; // java.vm.compressedOopsMode
714+
715+ // Operating System
716+ string os_name = 25 ; // os.name
717+ string os_version = 26 ; // os.version
718+ string os_arch = 27 ; // os.arch
719+
720+ // User Info
721+ string user_name = 28 ; // user.name
722+ string user_home = 29 ; // user.home
723+ string user_dir = 30 ; // user.dir
724+ string user_timezone = 31 ; // user.timezone
725+ string user_country = 32 ; // user.country
726+ string user_language = 33 ; // user.language
727+
728+ // File System
729+ string file_separator = 34 ; // file.separator
730+ string path_separator = 35 ; // path.separator
731+ string line_separator = 36 ; // line.separator
732+ string file_encoding = 37 ; // file.encoding
733+ string native_encoding = 38 ; // native.encoding
734+
735+ // Sun/Oracle Specific
736+ string sun_jnu_encoding = 39 ; // sun.jnu.encoding
737+ string sun_arch_data_model = 40 ; // sun.arch.data.model
738+ string sun_java_launcher = 41 ; // sun.java.launcher
739+ string sun_boot_library_path = 42 ; // sun.boot.library.path
740+ string sun_java_command = 43 ; // sun.java.command
741+ string sun_cpu_endian = 44 ; // sun.cpu.endian
742+ string sun_management_compiler = 45 ; // sun.management.compiler
743+ string sun_io_unicode_encoding = 46 ; // sun.io.unicode.encoding
744+
745+ // JDK/Debug
746+ string jdk_debug = 47 ; // jdk.debug
747+ string java_io_tmpdir = 48 ; // java.io.tmpdir
748+
749+ // Application Specific
750+ string env = 49 ; // env (custom property)
751+ string micronaut_classloader_logging = 50 ; // micronaut.classloader.logging
752+
753+ // Third Party Libraries
754+ string io_netty_allocator_max_order = 51 ; // io.netty.allocator.maxOrder
755+ string io_netty_process_id = 52 ; // io.netty.processId
756+ string io_netty_machine_id = 53 ; // io.netty.machineId
757+ string com_zaxxer_hikari_pool_number = 54 ; // com.zaxxer.hikari.pool_number
758+ }
759+ }
760+
761+ /**
762+ * Result message for shutting down the client.
575763 * Empty response indicates successful shutdown initiation.
576764 */
577765 message SeppukuResult {}
0 commit comments