加入我们,于10月8日至10日在纽约市学习关于GraphQL联邦和API平台工程的最新技巧、趋势和新闻。加入我们,参加2024年在纽约市的GraphQL峰会
文档
免费开始

健康检查

确定 Apollo Server 的健康状态


Apollo Server 4 已不再 支持内置健康检查GraphQL级别的健康检查 来确保您的服务器成功服务流量

负载均衡器通常使用健康检查来确定服务器是否可用并准备好服务流量。

GraphQL级别的健康检查

要确定您的 是否健康的最简单方法就是运行一个 GraphQL .

每个 GraphQL 服务器 都支持一个简单的 ,该查询请求最顶层 Query 类型的 __typename。这意味着每个 GraphQL 服务器 都可以响应一个 GET 请求,例如 URL:

https://your.server/graphql?query=%7B__typename%7D

注意,此健康检查将运行实际的 GraphQL 操作。如果您的服务器需要特殊头或cookie来运行任何 查询,您需要在请求中提供这些。

在与您的健康检查一起发送 apollo-require-preflight: true 头部,可以确保 's CSRF 防止 功能不会阻止它。

如果您想为您的 HTTP 服务器创建一个与 GraphQL 执行引擎的健康状态无关的健康检查(例如 无关 的,例如 Apollo Server 3 的健康检查功能),您可以在您的网络框架中添加一个始终成功的 GET 处理程序。

以下是一个带 expressMiddleware 的 HTTP 服务器健康检查的示例:

// imports, etc.
const app = express();
const server = new ApolloServer({
typeDefs,
resolvers,
});
await server.start();
app.use('/graphql', cors<cors.CorsRequest>(), express.json(), expressMiddleware(server));
await new Promise<void>((resolve) => app.listen({ port: 4000 }, resolve));
// Our GraphQL server is listening for GraphQL operations
// on `https://127.0.0.1:4000/graphql`
console.log(`🚀 Server ready at https://127.0.0.1:4000/graphql`);
// Requests to `https://127.0.0.1:4000/health` now return "Okay!"
app.get('/health', (req, res) => {
res.status(200).send('Okay!');
});
// imports, etc.
const app = express();
const server = new ApolloServer({
typeDefs,
resolvers,
});
await server.start();
app.use('/graphql', cors(), express.json(), expressMiddleware(server));
await new Promise((resolve) => app.listen({ port: 4000 }, resolve));
// Our GraphQL server is listening for GraphQL operations
// on `https://127.0.0.1:4000/graphql`
console.log(`🚀 Server ready at https://127.0.0.1:4000/graphql`);
// Requests to `https://127.0.0.1:4000/health` now return "Okay!"
app.get('/health', (req, res) => {
res.status(200).send('Okay!');
});

如果您正在使用 startStandaloneServer,在创建 HTTP 服务器健康检查之前,您必须首先切换到使用 expressMiddleware 函数使用 expressMiddleware 函数

上一页
指标和日志
下一页
ApolloServer
评分这篇文章评分在 GitHub 上编辑编辑论坛Discord

©2024Apollo Graph Inc.,商号 Apollo GraphQL。

隐私政策

公司