()
| 51 | } |
| 52 | |
| 53 | async function _checkMetricsEnabledAPI(): Promise<MetricsStatus> { |
| 54 | // Incident kill switch: skip the network call when nonessential traffic is disabled. |
| 55 | // Returning enabled:false sheds load at the consumer (bigqueryExporter skips |
| 56 | // export). Matches the non-subscriber early-return shape below. |
| 57 | if (isEssentialTrafficOnly()) { |
| 58 | return { enabled: false, hasError: false } |
| 59 | } |
| 60 | |
| 61 | try { |
| 62 | const data = await withOAuth401Retry(_fetchMetricsEnabled, { |
| 63 | also403Revoked: true, |
| 64 | }) |
| 65 | |
| 66 | logForDebugging( |
| 67 | `Metrics opt-out API response: enabled=${data.metrics_logging_enabled}`, |
| 68 | ) |
| 69 | |
| 70 | return { |
| 71 | enabled: data.metrics_logging_enabled, |
| 72 | hasError: false, |
| 73 | } |
| 74 | } catch (error) { |
| 75 | logForDebugging( |
| 76 | `Failed to check metrics opt-out status: ${errorMessage(error)}`, |
| 77 | ) |
| 78 | logError(error) |
| 79 | return { enabled: false, hasError: true } |
| 80 | } |
| 81 | } |
| 82 | |
| 83 | // Create memoized version with custom error handling |
| 84 | const memoizedCheckMetrics = memoizeWithTTLAsync( |
nothing calls this directly
no test coverage detected