diff --git a/docs/docs.json b/docs/docs.json index a51395010..5988e4552 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -122,7 +122,8 @@ { "group": "Resources", "pages": [ - "sdk/resources/supported-evm-chains" + "sdk/resources/supported-evm-chains", + "sdk/resources/network-status" ] } ] diff --git a/docs/sdk/introduction.mdx b/docs/sdk/introduction.mdx index e8be29937..6aff260c3 100644 --- a/docs/sdk/introduction.mdx +++ b/docs/sdk/introduction.mdx @@ -36,4 +36,8 @@ The Lit JS SDK provides a comprehensive toolkit for integrating Lit Protocol's d - **[PKP Permissions](/sdk/sdk-reference/lit-client/functions/createLitClient/pkp-permissions)**: - Manage PKP permissions - **[PKP Viem Account](/sdk/sdk-reference/lit-client/functions/createLitClient/pkp-viem-account)**: - Manage PKP Viem account -- **[PKP View Helpers](/sdk/sdk-reference/lit-client/functions/createLitClient/pkp-view-helpers)**: - View PKP permissions \ No newline at end of file +- **[PKP View Helpers](/sdk/sdk-reference/lit-client/functions/createLitClient/pkp-view-helpers)**: - View PKP permissions + +### 5. Network Status & Monitoring + +- **[Network Status](/sdk/resources/network-status)**: - Monitor real-time uptime and performance of Lit Protocol networks \ No newline at end of file diff --git a/docs/sdk/resources/network-status.mdx b/docs/sdk/resources/network-status.mdx new file mode 100644 index 000000000..1d3e264cf --- /dev/null +++ b/docs/sdk/resources/network-status.mdx @@ -0,0 +1,109 @@ +--- +title: Network Status & Health Monitoring +--- + +# Network Status + +Monitor the real-time health and uptime of Lit Protocol's core network endpoints across different environments. + +## Status Pages + +### Development Network + +**[Naga Dev Network Status](https://uptime.getlit.dev/naga-dev)** + +Live monitoring dashboard for the development network, tracking real-time metrics for all core SDK operations. + +### Test Network + +**[Naga Test Network Status](https://uptime.getlit.dev/naga-test)** + +Live monitoring dashboard for the test network, providing visibility into network health and performance. + +## Monitored Operations + +These dashboards track the uptime and performance of core SDK methods: + +| Operation | Description | +| ------------------ | ---------------------------------------------------- | +| **decrypt** | Decryption operations for encrypted data | +| **executeJs** | JavaScript execution in Lit Actions | +| **handshake** | Node handshake and connection establishment | +| **pkpSign** | PKP signing operations for transactions and messages | +| **signSessionKey** | Session key signing for authentication | + +## Programmatic Access + + +**Experimental Feature**: The Lit Status SDK is currently in active development and should be considered experimental. APIs and features may change without notice. + + +You can access network metrics programmatically using the [Lit Status SDK](https://uptime-docs.vercel.app/docs/sdk) for read-only monitoring and analytics. + +### Prerequisites + +To access the Status API, you'll need a read-only API key. Request access by filling out the [Lit Protocol Contact Form](https://docs.google.com/forms/d/e/1FAIpQLScBVsg-NhdMIC1H1mozh2zaVX0V4WtmEPSPrtmqVtnj_3qqNw/viewform). + +### Installation + +```bash +npm install @lit-protocol/lit-status-sdk +``` + +### Example Usage + +```typescript +import { createLitStatusClient } from '@lit-protocol/lit-status-sdk'; + +(async () => { + const client = createLitStatusClient({ + url: process.env.API_URL, + apiKey: process.env.READ_KEY, + }); + + // Get available filter options + const filterOptions = await client.getFilterOptions(); + console.log('Available networks:', filterOptions.networks); + console.log('Available functions:', filterOptions.functions); + + // Register and retrieve function references + const functions = await client.getOrRegisterFunctions({ + network: 'naga-dev', + product: 'js-sdk/naga', + functions: ['executeJs', 'pkpSign', 'decrypt'], + }); + + // Get recent metrics for a specific function + const executeJsMetrics = await client.getFunctionMetrics( + functions['executeJs'].id, + { + startDate: new Date(Date.now() - 24 * 60 * 60 * 1000), // Last 24 hours + endDate: new Date(), + } + ); + + console.log('ExecuteJs Metrics:', { + uptime: `${executeJsMetrics.uptime}%`, + successRate: `${executeJsMetrics.successRate}%`, + avgResponseTime: `${executeJsMetrics.averageResponseTime}ms`, + totalExecutions: executeJsMetrics.totalExecutions, + }); + + // Get time-series data for charting + const timeSeries = await client.getFunctionMetricsTimeSeries( + functions['executeJs'].id, + { + startDate: new Date(Date.now() - 24 * 60 * 60 * 1000), + endDate: new Date(), + }, + 'hour' + ); + + timeSeries.buckets.forEach((bucket) => { + console.log( + `${bucket.timestamp}: ${bucket.successRate}% success, ` + + `${bucket.averageResponseTime}ms avg` + ); + }); +})(); +```