The Health service is designed to allow you to both validate and monitor that your Appwrite instance and all of its internal components are up and responsive.
https://cloud.appwrite.io/v1
GET /health
import io.appwrite.Client
import io.appwrite.services.Health
public void main() {
Client client = Client(context)
.setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint
.setProject("5df5acd0d48c2") // Your project ID
.setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key
Health health = new Health(client);
health.get(new Continuation<Response>() {
@NotNull
@Override
public CoroutineContext getContext() {
return EmptyCoroutineContext.INSTANCE;
}
@Override
public void resumeWith(@NotNull Object o) {
String json = "";
try {
if (o instanceof Result.Failure) {
Result.Failure failure = (Result.Failure) o;
throw failure.exception;
} else {
Response response = (Response) o;
}
} catch (Throwable th) {
Log.e("ERROR", th.toString());
}
}
});
}
GET /health/anti-virus
import io.appwrite.Client
import io.appwrite.services.Health
public void main() {
Client client = Client(context)
.setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint
.setProject("5df5acd0d48c2") // Your project ID
.setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key
Health health = new Health(client);
health.getAntivirus(new Continuation<Response>() {
@NotNull
@Override
public CoroutineContext getContext() {
return EmptyCoroutineContext.INSTANCE;
}
@Override
public void resumeWith(@NotNull Object o) {
String json = "";
try {
if (o instanceof Result.Failure) {
Result.Failure failure = (Result.Failure) o;
throw failure.exception;
} else {
Response response = (Response) o;
}
} catch (Throwable th) {
Log.e("ERROR", th.toString());
}
}
});
}
Get Cache
Check the Appwrite in-memory cache server is up and connection is successful.
Response
200
GET /health/cache
import io.appwrite.Client
import io.appwrite.services.Health
public void main() {
Client client = Client(context)
.setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint
.setProject("5df5acd0d48c2") // Your project ID
.setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key
Health health = new Health(client);
health.getCache(new Continuation<Response>() {
@NotNull
@Override
public CoroutineContext getContext() {
return EmptyCoroutineContext.INSTANCE;
}
@Override
public void resumeWith(@NotNull Object o) {
String json = "";
try {
if (o instanceof Result.Failure) {
Result.Failure failure = (Result.Failure) o;
throw failure.exception;
} else {
Response response = (Response) o;
}
} catch (Throwable th) {
Log.e("ERROR", th.toString());
}
}
});
}
GET /health/db
import io.appwrite.Client
import io.appwrite.services.Health
public void main() {
Client client = Client(context)
.setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint
.setProject("5df5acd0d48c2") // Your project ID
.setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key
Health health = new Health(client);
health.getDB(new Continuation<Response>() {
@NotNull
@Override
public CoroutineContext getContext() {
return EmptyCoroutineContext.INSTANCE;
}
@Override
public void resumeWith(@NotNull Object o) {
String json = "";
try {
if (o instanceof Result.Failure) {
Result.Failure failure = (Result.Failure) o;
throw failure.exception;
} else {
Response response = (Response) o;
}
} catch (Throwable th) {
Log.e("ERROR", th.toString());
}
}
});
}
Get Certificates Queue
Get the number of certificates that are waiting to be issued against Letsencrypt in the Appwrite internal queue server.
Response
200
GET /health/queue/certificates
import io.appwrite.Client
import io.appwrite.services.Health
public void main() {
Client client = Client(context)
.setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint
.setProject("5df5acd0d48c2") // Your project ID
.setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key
Health health = new Health(client);
health.getQueueCertificates(new Continuation<Response>() {
@NotNull
@Override
public CoroutineContext getContext() {
return EmptyCoroutineContext.INSTANCE;
}
@Override
public void resumeWith(@NotNull Object o) {
String json = "";
try {
if (o instanceof Result.Failure) {
Result.Failure failure = (Result.Failure) o;
throw failure.exception;
} else {
Response response = (Response) o;
}
} catch (Throwable th) {
Log.e("ERROR", th.toString());
}
}
});
}
GET /health/queue/functions
import io.appwrite.Client
import io.appwrite.services.Health
public void main() {
Client client = Client(context)
.setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint
.setProject("5df5acd0d48c2") // Your project ID
.setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key
Health health = new Health(client);
health.getQueueFunctions(new Continuation<Response>() {
@NotNull
@Override
public CoroutineContext getContext() {
return EmptyCoroutineContext.INSTANCE;
}
@Override
public void resumeWith(@NotNull Object o) {
String json = "";
try {
if (o instanceof Result.Failure) {
Result.Failure failure = (Result.Failure) o;
throw failure.exception;
} else {
Response response = (Response) o;
}
} catch (Throwable th) {
Log.e("ERROR", th.toString());
}
}
});
}
Get Logs Queue
Get the number of logs that are waiting to be processed in the Appwrite internal queue server.
Response
200
GET /health/queue/logs
import io.appwrite.Client
import io.appwrite.services.Health
public void main() {
Client client = Client(context)
.setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint
.setProject("5df5acd0d48c2") // Your project ID
.setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key
Health health = new Health(client);
health.getQueueLogs(new Continuation<Response>() {
@NotNull
@Override
public CoroutineContext getContext() {
return EmptyCoroutineContext.INSTANCE;
}
@Override
public void resumeWith(@NotNull Object o) {
String json = "";
try {
if (o instanceof Result.Failure) {
Result.Failure failure = (Result.Failure) o;
throw failure.exception;
} else {
Response response = (Response) o;
}
} catch (Throwable th) {
Log.e("ERROR", th.toString());
}
}
});
}
Get Webhooks Queue
Get the number of webhooks that are waiting to be processed in the Appwrite internal queue server.
Response
200
GET /health/queue/webhooks
import io.appwrite.Client
import io.appwrite.services.Health
public void main() {
Client client = Client(context)
.setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint
.setProject("5df5acd0d48c2") // Your project ID
.setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key
Health health = new Health(client);
health.getQueueWebhooks(new Continuation<Response>() {
@NotNull
@Override
public CoroutineContext getContext() {
return EmptyCoroutineContext.INSTANCE;
}
@Override
public void resumeWith(@NotNull Object o) {
String json = "";
try {
if (o instanceof Result.Failure) {
Result.Failure failure = (Result.Failure) o;
throw failure.exception;
} else {
Response response = (Response) o;
}
} catch (Throwable th) {
Log.e("ERROR", th.toString());
}
}
});
}
Get Local Storage
Check the Appwrite local storage device is up and connection is successful.
Response
200
GET /health/storage/local
import io.appwrite.Client
import io.appwrite.services.Health
public void main() {
Client client = Client(context)
.setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint
.setProject("5df5acd0d48c2") // Your project ID
.setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key
Health health = new Health(client);
health.getStorageLocal(new Continuation<Response>() {
@NotNull
@Override
public CoroutineContext getContext() {
return EmptyCoroutineContext.INSTANCE;
}
@Override
public void resumeWith(@NotNull Object o) {
String json = "";
try {
if (o instanceof Result.Failure) {
Result.Failure failure = (Result.Failure) o;
throw failure.exception;
} else {
Response response = (Response) o;
}
} catch (Throwable th) {
Log.e("ERROR", th.toString());
}
}
});
}
Get Time
Check the Appwrite server time is synced with Google remote NTP server. We use this technology to smoothly handle leap seconds with no disruptive events. The Network Time Protocol (NTP) is used by hundreds of millions of computers and devices to synchronize their clocks over the Internet. If your computer sets its own clock, it likely uses NTP.
Response
200
GET /health/time
import io.appwrite.Client
import io.appwrite.services.Health
public void main() {
Client client = Client(context)
.setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint
.setProject("5df5acd0d48c2") // Your project ID
.setKey("919c2d18fb5d4...a2ae413da83346ad2"); // Your secret API key
Health health = new Health(client);
health.getTime(new Continuation<Response>() {
@NotNull
@Override
public CoroutineContext getContext() {
return EmptyCoroutineContext.INSTANCE;
}
@Override
public void resumeWith(@NotNull Object o) {
String json = "";
try {
if (o instanceof Result.Failure) {
Result.Failure failure = (Result.Failure) o;
throw failure.exception;
} else {
Response response = (Response) o;
}
} catch (Throwable th) {
Log.e("ERROR", th.toString());
}
}
});
}