Add host temperature telemetry and history
This commit is contained in:
@@ -23,6 +23,8 @@ import { logResultMetadata } from './log-results.js';
|
||||
import { parseHostInventory } from './request-context.js';
|
||||
import { fleetSettings } from '../settings.js';
|
||||
import { recordInstanceResources, validateInstanceResources } from './calibration.js';
|
||||
import { validateTemperatures } from '../../host-temperatures.js';
|
||||
import { recordTemperatures } from './temperatures.js';
|
||||
import { refreshHostAvailability, scheduleAvailabilityRefresh } from './availability.js';
|
||||
import { hostAgentLaneLabel, hostAgentLaneState } from '../../hosts.js';
|
||||
import type {
|
||||
@@ -622,6 +624,8 @@ export function validateInventory(value: unknown): HostInventory {
|
||||
throw new Error('Host inventory must be an object.');
|
||||
const inventory = value as HostInventory;
|
||||
if (JSON.stringify(inventory).length > 256_000) throw new Error('Host inventory is too large.');
|
||||
if (inventory.temperatures !== undefined)
|
||||
inventory.temperatures = validateTemperatures(inventory.temperatures);
|
||||
for (const key of ['hostname', 'agentVersion', 'os', 'architecture', 'cpu', 'dockerVersion']) {
|
||||
if (
|
||||
inventory[key] !== undefined &&
|
||||
@@ -924,6 +928,7 @@ export function heartbeat(hostId: string, value: unknown): Host {
|
||||
|
||||
function recordResources(hostId: string, inventory: HostInventory, timestamp: string): void {
|
||||
recordInstanceResources(hostId, inventory, timestamp);
|
||||
recordTemperatures(hostId, inventory, timestamp);
|
||||
database()
|
||||
.prepare(
|
||||
`INSERT OR REPLACE INTO ec_host_resource_samples
|
||||
|
||||
Reference in New Issue
Block a user