internal/usagemetrics/usagemetrics.go (234 lines of code) (raw):

/* Copyright 2022 Google LLC Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ // Package usagemetrics provides logging utility for the operational status of Google Cloud Agent for SAP. package usagemetrics import um "github.com/GoogleCloudPlatform/workloadagentplatform/sharedlibraries/usagemetrics" // The following status values are supported. const ( StatusRunning um.Status = "RUNNING" StatusStarted um.Status = "STARTED" StatusStopped um.Status = "STOPPED" StatusConfigured um.Status = "CONFIGURED" StatusMisconfigured um.Status = "MISCONFIGURED" StatusError um.Status = "ERROR" StatusInstalled um.Status = "INSTALLED" StatusUpdated um.Status = "UPDATED" StatusUninstalled um.Status = "UNINSTALLED" StatusAction um.Status = "ACTION" ) // Agent wide error code mappings - Only append the error codes at the end of the list. // Existing codes should not be modified. New codes should tested in the unit tests. // Make sure to update the id mapping in this sheet: go/sap-core-eng-tool-mapping. const ( UnknownError = 0 // Unknown error CloudPropertiesNotSet = 1 // Cloud properties are not set, cannot start services. GCEServiceCreateFailure = 2 // Failed to create GCE service MetricClientCreateFailure = 3 // Failed to create Cloud Monitoring metric client QueryClientCreateFailure = 4 // Failed to create Cloud Monitoring query client BareMetalCloudPropertiesNotSet = 5 // Bare metal instance detected without cloud properties set. LocalHTTPListenerCreateFailure = 6 // Could not start HTTP server on localhost:18181 ConfigFileReadFailure = 7 // Could not read from configuration file MalformedConfigFile = 8 // Invalid content in the configuration file WLMMetricCollectionFailure = 9 // Workload metrics collection failure ProcessMetricsMetricClientCreateFailure = 10 // Process metrics metric client creation failed NoSAPInstancesFound = 11 // NO SAP instances found HANAMonitoringCollectionFailure = 12 // HANA Monitoring collection failure HANAMonitoringConfigReadFailure = 13 // HANA Monitoring Config File Read Failure MalformedHANAMonitoringConfigFile = 14 // Malformed HANA Monitoring Config File MalformedDefaultHANAMonitoringQueriesFile = 15 // Malformed Default HANA Monitoring Queries File AgentMetricsServiceCreateFailure = 16 // Failed to create agent metrics service HeartbeatMonitorCreateFailure = 17 // Failed to create heartbeat monitor HeartbeatMonitorRegistrationFailure = 18 // Failed to register service with the heartbeat monitor SnapshotDBNotReadyFailure = 19 // SnapshotDBNotReadyFailure DiskSnapshotCreateFailure = 20 // DiskSnapshotCreateFailure DiskSnapshotFailedDBNotComplete = 21 // DiskSnapshotFailedDBNotComplete DiskSnapshotDoneDBNotComplete = 22 // DiskSnapshotDoneDBNotComplete CollectionDefinitionLoadFailure = 23 // Failed to load collection definition CollectionDefinitionValidateFailure = 24 // Failed to validate collection definition WLMServiceCreateFailure = 25 // Failed to create WLM service BackintIncorrectArguments = 26 // Incorrect CLI arguments for Backint BackintMalformedConfigFile = 27 // Malformed Backint configuration file BackintConfigReadFailure = 28 // Backint configuration file read error BackintBackupFailure = 29 // Backint error during Backup function BackintRestoreFailure = 30 // Backint error during Restore function BackintInquireFailure = 31 // Backint error during Inquire function BackintDeleteFailure = 32 // Backint error during Delete function SOSReportCollectionUsageError = 33 // SOS Report collection usage error - invalid params SOSReportCollectionExitFailure = 34 // SOS Report collection exit failure BackintDiagnoseFailure = 35 // Backint error during Diagnose function ReadMetricsQueryFailure = 36 // ReadMetrics error during querying Cloud Monitoring ReadMetricsWriteFileFailure = 37 // ReadMetrics error during writing results to local filesystem ReadMetricsBucketUploadFailure = 38 // ReadMetrics error during uploading results to GCS bucket InstallBackintFailure = 39 // InstallBackint error during installation/migration ReliabilityQueryFailure = 40 // Reliability error during querying Cloud Monitoring ReliabilityWriteFileFailure = 41 // Reliability error during writing results to local filesystem ReliabilityBucketUploadFailure = 42 // Reliability error during uploading results to GCS bucket DiscoverSapInstanceFailure = 43 // Panic during Discover SAP Instances routine DiscoverSapSystemFailure = 44 // Panic during discover SAP Systems routine UsageMetricsDailyLogError = 45 // Panic during report daily usage routine CollectMetricsRoutineFailure = 46 // Panic during collect metrics routine SlowMetricsCollectionFailure = 47 // Panic during SlowMetricsCollection routine CollectFastMetrcsRoutineFailure = 48 // Panic during CollectFastMetrcs routine HeartbeatRoutineFailure = 49 // panic during Heartbeat routine WLMCollectionRoutineFailure = 50 // Panic during WLM metrics Collection routine HostMetricsHTTPServerRoutineFailure = 51 // Panic during HostMetricsHTTPServer routine HostMetricsCollectionRoutineFailure = 52 // Panic during HostMetricsCollection routine WLMCollectionSystemRoutineFailure = 53 // Panic during WLMCollectionSystem routine WLMCollectionHANARoutineFailure = 54 // Panic during WLMCollectionHANA routine WLMCollectionNetweaverRoutineFailure = 55 // Panic during WLMCollectionNetweaver routine WLMCollectionPacemakerRoutineFailure = 56 // Panic during WLMCollectionPacemaker routine WLMCollectionCustomRoutineFailure = 57 // Panic during WLMCollectionCustom routine AgentMetricsCollectAndSubmitFailure = 58 // AgentMetricsCollectAndSubmitFailure RemoteCollectSSHFailure = 59 // RemoteCollectSSHFailure RemoteCollectGcloudFailure = 60 // RemoteCollectGcloudFailure ConfigureBackintFailure = 61 // ConfigureBackint error during configuration/migration CollectionDefinitionUpdateRoutineFailure = 62 // CollectionDefinitionUpdateRoutineFailure HANAMonitoringCreateWorkerPoolFailure = 63 // HANAMonitoringCreateWorkerPoolFailure CollectReliabilityMetricsRoutineFailure = 64 // CollectReliabilityMetricsRoutineFailure ConfigureInstanceFailure = 65 // ConfigureInstance Failure EncryptedDiskSnapshotFailure = 66 // EncryptedDiskSnapshotFailure EncryptedSnapshotRestoreFailure = 67 // EncryptedSnapshotRestoreFailure GuestActionsFailure = 68 // GuestActionsFailure PerformanceDiagnosticsFailure = 69 // PerformanceDiagnosticsFailure PerformanceDiagnosticsConfigureInstanceFailure = 70 // PerformanceDiagnosticsConfigureInstanceFailure PerformanceDiagnosticsBackupFailure = 71 // PerformanceDiagnosticsBackupFailure PerformanceDiagnosticsFIOFailure = 72 // PerformanceDiagnosticsFIOFailure BalanceIRQFailure = 73 // BalanceIRQFailure HDBUserstoreKeyFailure = 74 // HDBUserstoreKeyQueryFailure ServiceDisableFailure = 75 // ServiceDisableFailure ServiceEnableFailure = 76 // ServiceEnableFailure GCBDRBackupFailure = 77 // GCBDRBackupFailure GCBDRDiscoveryFailure = 78 // GCBDRDiscoveryFailure HANAInsightsOTEFailure = 79 // HANAInsightsOTEFailure MultipartUploadFailure = 80 // MultipartUploadFailure GCBDRActionsFailure = 81 // GCBDRActionsFailure StatusCollectionFailure = 82 // StatusCollectionFailure ) // Agent wide action mappings - Only append the action codes at the end of the list. // Existing codes should not be modified. New codes should be tested in the unit tests. // Make sure to update the id mapping in this sheet: go/sap-core-eng-tool-mapping. const ( UnknownAction = 0 // Unknown CollectWLMMetrics = 1 // Collecting WLM metrics CollectHostMetrics = 2 // Collecting SAP host metrics CollectProcessMetrics = 3 // Collecting process metrics CollectHANAMonitoringMetrics = 4 // Collect HANA Monitoring Metrics HANADiskSnapshot = 5 // Run HANA Disk Snapshot OTE SSLModeOnHANAMonitoring = 6 // SSL Mode On HANA Monitoring BackintRunning = 7 // Backint running BackintBackupStarted = 8 // Backint Backup started BackintRestoreStarted = 9 // Backint Restore started BackintInquireStarted = 10 // Backint Inquire started BackintDeleteStarted = 11 // Backint Delete started BackintBackupFinished = 12 // Backint Backup finished BackintRestoreFinished = 13 // Backint Restore finished BackintInquireFinished = 14 // Backint Inquire finished BackintDeleteFinished = 15 // Backint Delete finished BackintDiagnoseStarted = 16 // Backint Diagnose started BackintDiagnoseFinished = 17 // Backint Diagnose finished HANADiskRestore = 18 // Run HANA Disk Restore OTE ReadMetricsStarted = 19 // ReadMetrics started ReadMetricsFinished = 20 // ReadMetrics finished InstallBackintStarted = 21 // InstallBackint started InstallBackintFinished = 22 // InstallBackint finished RemoteWLMMetricsCollection = 23 // Remote WLM Metrics Collection ReliabilityStarted = 24 // Reliability Started ReliabilityFinished = 25 // Reliability Finished ConfigureBackintStarted = 26 // ConfigureBackintStarted ConfigureBackintFinished = 27 // ConfigureBackintFinished CollectReliabilityMetrics = 28 // CollectReliabilityMetrics ConfigureInstanceStarted = 29 // ConfigureInstanceStarted ConfigureInstanceFinished = 30 // ConfigureInstanceFinished EncryptedDiskSnapshot = 31 // EncryptedDiskSnapshot EncryptedSnapshotRestore = 32 // EncryptedSnapshotRestore GuestActionsStarted = 33 // GuestActionsStarted PerformanceDiagnostics = 34 // PerformanceDiagnostics PerformanceDiagnosticsConfigureInstance = 35 // PerformanceDiagnosticsConfigureInstance PerformanceDiagnosticsBackup = 36 // PerformanceDiagnosticsBackup PerformanceDiagnosticsFIO = 37 // PerformanceDiagnosticsFIO ConfigureInstanceCheckFinished = 38 // ConfigureInstanceCheckFinished ConfigureInstanceApplyFinished = 39 // ConfigureInstanceApplyFinished ReliabilityHANAAvailable = 40 // ReliabilityHANAAvailable ReliabilityHANANotAvailable = 41 // ReliabilityHANANotAvailable ReliabilityHANAHAAvailable = 42 // ReliabilityHANAHAAvailable ReliabilityHANAHANotAvailable = 43 // ReliabilityHANAHANotAvailable ReliabilitySAPNWAvailable = 44 // ReliabilityHANANWAvailable ReliabilitySAPNWNotAvailable = 45 // ReliabilitySAPNWNotAvailable BalanceIRQStarted = 46 // BalanceIRQStarted BalanceIRQFinished = 47 // BalanceIRQFinished BalanceIRQInstallStarted = 48 // BalanceIRQInstallStarted BalanceIRQInstallFinished = 49 // BalanceIRQInstallFinished HDBUserstoreKeyConfigured = 50 // HDBUserstoreKeyConfigured HANADiskSnapshotUserstoreKey = 51 // HANADiskSnapshotUserstoreKey HANAInsightsOTEUserstoreKey = 52 // HANAInsightsOTEUserstoreKey BackintRecoveryParameterEnabled = 53 // BackintRecoveryParameterEnabled ServiceDisableStarted = 54 // ServiceDisableStarted ServiceDisableFinished = 55 // ServiceDisableFinished ServiceEnableStarted = 56 // ServiceEnableStarted ServiceEnableFinished = 57 // ServiceEnableFinished UAPShellCommand = 58 // UAPShellCommand UAPBackintCommand = 59 // UAPBackintCommand UAPConfigureCommand = 60 // UAPConfigureCommand UAPConfigureInstanceCommand = 61 // UAPConfigureInstanceCommand UAPGCBDRBackupCommand = 62 // UAPGCBDRBackupCommand UAPGCBDRDiscoveryCommand = 63 // UAPGCBDRDiscoveryCommand UAPHANADiskBackupCommand = 64 // UAPHANADiskBackupCommand UAPPerformanceDiagnosticsCommand = 65 // UAPPerformanceDiagnosticsCommand UAPSupportBundleCommand = 66 // UAPSupportBundleCommand UAPVersionCommand = 67 // UAPVersionCommand GCBDRBackupStarted = 68 // GCBDRBackupRunning GCBDRBackupFinished = 69 // GCBDRBackupFinished HANADiskGroupBackupStarted = 70 // HANADiskGroupBackupStarted HANADiskGroupBackupSucceeded = 71 // HANADiskGroupBackupSucceeded HANADiskBackupSucceeded = 72 // HANADiskBackupSucceeded HANADiskGroupRestoreStarted = 73 // HANADiskGroupRestoreStarted HANADiskGroupRestoreSucceeded = 74 // HANADiskGroupRestoreSucceeded HANADiskRestoreSucceeded = 75 // HANADiskRestoreSucceeded ConfigPollerStarted = 76 // ConfigPollerStarted GCBDRDiscoveryStarted = 77 // GCBDRDiscoveryStarted GCBDRDiscoveryFinished = 78 // GCBDRDiscoveryFinished HANAInsightsOTEStarted = 79 // HANAInsightsOTEStarted HANAInsightsOTEFinished = 80 // HANAInsightsOTEFinished MultipartUploadStarted = 81 // MultipartUploadStarted MultipartUploadFinished = 82 // MultipartUploadFinished GCBDRActionsStarted = 83 // GCBDRActionsStarted CollectStatus = 84 // Collecting Status ) // projectNumbers contains known project numbers for test instances. var projectExclusionList = []string{ "922508251869", "155261204042", "114837167255", "161716815775", "607888266690", "863817768072", "39979408140", "510599941441", "1038306394601", "714149369409", "450711760461", "600915385160", "208472317671", "824757391322", "977154783768", "148036532291", "425380551487", "811811474621", "975534532604", "475132212764", "201338458013", "269972924358", "605897091243", "1008799658123", "916154365516", "843031526114", "562567328974", "894989386931", "108988699619", "221666662846", "625805418481", "211003240391", "1031874220405", "709743230039", "597454869213", "190577778578", "1098359830385", "245746275688", "776752604875", "743463339463", "771731819498", "124631552650", "966841751088", "624630633137", "624630633137", "895652539525", }