tool.ts•1.1 kB
import { ExtendedTool, ToolHandlers } from '../../utils/types'
import { v1 } from '@datadog/datadog-api-client'
import { createToolSchema } from '../../utils/tool'
import { QueryMetricsZodSchema } from './schema'
type MetricsToolName = 'query_metrics'
type MetricsTool = ExtendedTool<MetricsToolName>
export const METRICS_TOOLS: MetricsTool[] = [
createToolSchema(
QueryMetricsZodSchema,
'query_metrics',
'Query timeseries points of metrics from Datadog',
),
] as const
type MetricsToolHandlers = ToolHandlers<MetricsToolName>
export const createMetricsToolHandlers = (
apiInstance: v1.MetricsApi,
): MetricsToolHandlers => {
return {
query_metrics: async (request) => {
const { from, to, query } = QueryMetricsZodSchema.parse(
request.params.arguments,
)
const response = await apiInstance.queryMetrics({
from,
to,
query,
})
return {
content: [
{
type: 'text',
text: `Queried metrics data: ${JSON.stringify({ response })}`,
},
],
}
},
}
}