Overview
The following section describes the key decisions and assumptions made to develop the application.
-
A room can be booked for one hour.
-
There are 20 rooms in total.
-
The rooms are pretty similar in terms of size.
-
In order to strike fairness in terms of reservation numbers, both companies will be a given a configured quota number that default to 100 reservations.
-
Both companies, to ease the reservations process, had put in charge user1 and user2 resp for COKE and PEPSI . However the system is open to put more users.
-
The available time slots to make a reservation are the following:
| Timeslot |
|---|
8:00 am - 09:00 am |
09:00 am - 10:00 am |
10:00 am - 11:00 am |
11:00 am - 12:00 pm |
12:00 pm - 13:00 pm |
13:00 pm - 14:00 pm |
14:00 pm - 15:00 pm |
15:00 pm - 16:00 pm |
16:00 pm - 17:00 pm |
17:00 pm - 18:00 pm |
HTTP verbs
Coladay application tries to adhere as closely as possible to standard HTTP and REST conventions in its use of HTTP verbs.
| Verb | Usage |
|---|---|
|
Used to retrieve a resource |
|
Used to create a new resource |
|
Used to update an existing resource, including partial updates |
|
Used to delete an existing resource |
HTTP status codes
RESTful notes tries to adhere as closely as possible to standard HTTP and REST conventions in its use of HTTP status codes.
| Status code | Usage |
|---|---|
|
The request completed successfully |
|
A new resource has been created successfully. The resource’s URI is available from the response’s
|
|
An update to an existing resource has been applied successfully |
|
The request was malformed. The response body will include an error providing further information |
|
The requested resource did not exist |
|
The requested resource was in conflict with an existing one. The response body will include an error providing further information. |
Hypermedia
Coladay uses hypermedia and resources include links to other resources in their
responses. Responses are in Hypertext
Application Language (HAL) format. Links can be found beneath the _links key. Users of
the API should not create URIs themselves, instead they should use the above-described
links to navigate from resource to resource.
Resources
Reservation
The Reservation resources is used to create, delete, update and list resources.
Creating a reservation
A POST request used to create a reservation.
Curl request
$ curl 'http://localhost:8080/reservations' -i -u 'user1:password1' -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/hal+json' \
-d '{"timeSlot":"NINE_AM_TO_TEN_AM","room":"/rooms/1"}'
HTTP request
POST /reservations HTTP/1.1
Content-Type: application/json
Accept: application/hal+json
Content-Length: 50
Authorization: Basic dXNlcjE6cGFzc3dvcmQx
Host: localhost:8080
{"timeSlot":"NINE_AM_TO_TEN_AM","room":"/rooms/1"}
HTTP response
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Location: http://localhost:8080/reservations/1
Content-Type: application/hal+json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 388
{
"timeSlot" : "NINE_AM_TO_TEN_AM",
"_links" : {
"self" : {
"href" : "http://localhost:8080/reservations/1"
},
"reservation" : {
"href" : "http://localhost:8080/reservations/1"
},
"room" : {
"href" : "http://localhost:8080/reservations/1/room"
},
"organizer" : {
"href" : "http://localhost:8080/reservations/1/organizer"
}
}
}
List reservations
A GET request used to list all reservations.
Curl request
$ curl 'http://localhost:8080/reservations' -i -u 'user1:password1' -X GET \
-H 'Accept: application/hal+json'
HTTP request
GET /reservations HTTP/1.1
Accept: application/hal+json
Authorization: Basic dXNlcjE6cGFzc3dvcmQx
Host: localhost:8080
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 881
{
"_embedded" : {
"reservations" : [ {
"timeSlot" : "EIGHT_AM_TO_NINE_AM",
"_links" : {
"self" : {
"href" : "http://localhost:8080/reservations/10000"
},
"reservation" : {
"href" : "http://localhost:8080/reservations/10000"
},
"organizer" : {
"href" : "http://localhost:8080/reservations/10000/organizer"
},
"room" : {
"href" : "http://localhost:8080/reservations/10000/room"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "http://localhost:8080/reservations"
},
"profile" : {
"href" : "http://localhost:8080/profile/reservations"
},
"search" : {
"href" : "http://localhost:8080/reservations/search"
}
},
"page" : {
"size" : 20,
"totalElements" : 1,
"totalPages" : 1,
"number" : 0
}
}
Cancel a reservation
A DELETE request used to cancel a reservation.
Curl request
$ curl 'http://localhost:8080/reservations/10000' -i -u 'user1:password1' -X DELETE \
-H 'Accept: application/hal+json'
HTTP request
DELETE /reservations/10000 HTTP/1.1
Accept: application/hal+json
Authorization: Basic dXNlcjE6cGFzc3dvcmQx
Host: localhost:8080
HTTP response
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Room
List rooms
A GET request used to list all rooms and their availabilities.
Curl request
$ curl 'http://localhost:8080/rooms?size=1' -i -u 'user1:password1' -X GET \
-H 'Accept: application/hal+json'
HTTP request
GET /rooms?size=1 HTTP/1.1
Accept: application/hal+json
Authorization: Basic dXNlcjE6cGFzc3dvcmQx
Host: localhost:8080
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 908
{
"_embedded" : {
"rooms" : [ {
"name" : "COKE_R01",
"owner" : "COKE",
"_links" : {
"self" : {
"href" : "http://localhost:8080/rooms/1"
},
"room" : {
"href" : "http://localhost:8080/rooms/1"
},
"reservations" : {
"href" : "http://localhost:8080/rooms/1/reservations"
}
}
} ]
},
"_links" : {
"first" : {
"href" : "http://localhost:8080/rooms?page=0&size=1"
},
"self" : {
"href" : "http://localhost:8080/rooms?size=1"
},
"next" : {
"href" : "http://localhost:8080/rooms?page=1&size=1"
},
"last" : {
"href" : "http://localhost:8080/rooms?page=19&size=1"
},
"profile" : {
"href" : "http://localhost:8080/profile/rooms"
}
},
"page" : {
"size" : 1,
"totalElements" : 20,
"totalPages" : 20,
"number" : 0
}
}
User
List users
A GET request used to list all users.
Curl request
$ curl 'http://localhost:8080/users' -i -u 'user1:password1' -X GET \
-H 'Accept: application/hal+json'
HTTP request
GET /users HTTP/1.1
Accept: application/hal+json
Authorization: Basic dXNlcjE6cGFzc3dvcmQx
Host: localhost:8080
HTTP response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/hal+json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 701
{
"_embedded" : {
"users" : [ {
"name" : "user1",
"company" : "COKE",
"_links" : {
"self" : {
"href" : "http://localhost:8080/users/1"
},
"user" : {
"href" : "http://localhost:8080/users/1"
}
}
}, {
"name" : "user2",
"company" : "PEPSI",
"_links" : {
"self" : {
"href" : "http://localhost:8080/users/2"
},
"user" : {
"href" : "http://localhost:8080/users/2"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "http://localhost:8080/users"
},
"profile" : {
"href" : "http://localhost:8080/profile/users"
}
}
}
Metrics
List all metrics endpoints
A GET request used to list all metrics endpoints.
Curl request
$ curl 'http://localhost:8080/actuator/' -i -X GET \
-H 'Accept: application/json'
HTTP request
GET /actuator/ HTTP/1.1
Accept: application/json
Host: localhost:8080
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 522
{"_links":{"self":{"href":"http://localhost:8080/actuator","templated":false},"health":{"href":"http://localhost:8080/actuator/health","templated":false},"health-path":{"href":"http://localhost:8080/actuator/health/{*path}","templated":true},"prometheus":{"href":"http://localhost:8080/actuator/prometheus","templated":false},"metrics-requiredMetricName":{"href":"http://localhost:8080/actuator/metrics/{requiredMetricName}","templated":true},"metrics":{"href":"http://localhost:8080/actuator/metrics","templated":false}}}
List all application metrics
A GET request used to list all application metrics.
Curl request
$ curl 'http://localhost:8080/actuator/metrics' -i -X GET \
-H 'Accept: application/json'
HTTP request
GET /actuator/metrics HTTP/1.1
Accept: application/json
Host: localhost:8080
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 1273
{"names":["application.ready.time","application.started.time","disk.free","disk.total","executor.active","executor.completed","executor.pool.core","executor.pool.max","executor.pool.size","executor.queue.remaining","executor.queued","hikaricp.connections","hikaricp.connections.acquire","hikaricp.connections.active","hikaricp.connections.creation","hikaricp.connections.idle","hikaricp.connections.max","hikaricp.connections.min","hikaricp.connections.pending","hikaricp.connections.timeout","hikaricp.connections.usage","jdbc.connections.active","jdbc.connections.idle","jdbc.connections.max","jdbc.connections.min","jvm.buffer.count","jvm.buffer.memory.used","jvm.buffer.total.capacity","jvm.classes.loaded","jvm.classes.unloaded","jvm.gc.live.data.size","jvm.gc.max.data.size","jvm.gc.memory.allocated","jvm.gc.memory.promoted","jvm.gc.overhead","jvm.gc.pause","jvm.memory.committed","jvm.memory.max","jvm.memory.usage.after.gc","jvm.memory.used","jvm.threads.daemon","jvm.threads.live","jvm.threads.peak","jvm.threads.states","logback.events","number_of_reservations","process.cpu.usage","process.files.max","process.files.open","process.start.time","process.uptime","spring.data.repository.invocations","system.cpu.count","system.cpu.usage","system.load.average.1m"]}
Read aggregated application health
A GET request used to read application health.
Curl request
$ curl 'http://localhost:8080/actuator/health' -i -X GET \
-H 'Accept: application/json'
HTTP request
GET /actuator/health HTTP/1.1
Accept: application/json
Host: localhost:8080
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 49
{"status":"UP","groups":["liveness","readiness"]}
Read readiness probe
A GET request used to check application readiness.
Curl request
$ curl 'http://localhost:8080/actuator/health/readiness' -i -X GET \
-H 'Accept: application/json'
HTTP request
GET /actuator/health/readiness HTTP/1.1
Accept: application/json
Host: localhost:8080
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 15
{"status":"UP"}
Read liveness probe
A GET request used to check application liveness.
Curl request
$ curl 'http://localhost:8080/actuator/health/liveness' -i -X GET \
-H 'Accept: application/json'
HTTP request
GET /actuator/health/liveness HTTP/1.1
Accept: application/json
Host: localhost:8080
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 15
{"status":"UP"}
List all application metrics in prometheus format
A GET request used to list all metrics endpoints in prometheus format. This endpoint is
generally called by Prometheus to scrap application metrics.
Curl request
$ curl 'http://localhost:8080/actuator/prometheus' -i -X GET \
-H 'Accept: text/plain'
HTTP request
GET /actuator/prometheus HTTP/1.1
Accept: text/plain
Host: localhost:8080
HTTP response
HTTP/1.1 200 OK
Content-Type: text/plain;version=0.0.4;charset=utf-8
Content-Length: 15982
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
# HELP jvm_buffer_memory_used_bytes An estimate of the memory that the Java virtual machine is using for this buffer pool
# TYPE jvm_buffer_memory_used_bytes gauge
jvm_buffer_memory_used_bytes{application="coladay",id="direct",} 15020.0
jvm_buffer_memory_used_bytes{application="coladay",id="mapped",} 0.0
# HELP disk_total_bytes Total space for path
# TYPE disk_total_bytes gauge
disk_total_bytes{application="coladay",path="/home/runner/work/cola-day/cola-day/.",} 8.9297309696E10
# HELP process_start_time_seconds Start time of the process since unix epoch.
# TYPE process_start_time_seconds gauge
process_start_time_seconds{application="coladay",} 1.66022667046E9
# HELP process_uptime_seconds The uptime of the Java virtual machine
# TYPE process_uptime_seconds gauge
process_uptime_seconds{application="coladay",} 28.577
# HELP system_load_average_1m The sum of the number of runnable entities queued to available processors and the number of runnable entities running on the available processors averaged over a period of time
# TYPE system_load_average_1m gauge
system_load_average_1m{application="coladay",} 1.97
# HELP jvm_memory_max_bytes The maximum amount of memory in bytes that can be used for memory management
# TYPE jvm_memory_max_bytes gauge
jvm_memory_max_bytes{application="coladay",area="heap",id="G1 Eden Space",} -1.0
jvm_memory_max_bytes{application="coladay",area="heap",id="G1 Old Gen",} 1.820327936E9
jvm_memory_max_bytes{application="coladay",area="nonheap",id="Metaspace",} -1.0
jvm_memory_max_bytes{application="coladay",area="heap",id="G1 Survivor Space",} -1.0
jvm_memory_max_bytes{application="coladay",area="nonheap",id="CodeHeap 'non-nmethods'",} 5828608.0
jvm_memory_max_bytes{application="coladay",area="nonheap",id="CodeHeap 'non-profiled nmethods'",} 1.22916864E8
jvm_memory_max_bytes{application="coladay",area="nonheap",id="Compressed Class Space",} 1.073741824E9
jvm_memory_max_bytes{application="coladay",area="nonheap",id="CodeHeap 'profiled nmethods'",} 1.22912768E8
# HELP jvm_gc_memory_promoted_bytes_total Count of positive increases in the size of the old generation memory pool before GC to after GC
# TYPE jvm_gc_memory_promoted_bytes_total counter
jvm_gc_memory_promoted_bytes_total{application="coladay",} 2807296.0
# HELP jvm_threads_states_threads The current number of threads having NEW state
# TYPE jvm_threads_states_threads gauge
jvm_threads_states_threads{application="coladay",state="blocked",} 0.0
jvm_threads_states_threads{application="coladay",state="waiting",} 1.0
jvm_threads_states_threads{application="coladay",state="timed-waiting",} 7.0
jvm_threads_states_threads{application="coladay",state="runnable",} 5.0
jvm_threads_states_threads{application="coladay",state="new",} 0.0
jvm_threads_states_threads{application="coladay",state="terminated",} 0.0
# HELP hikaricp_connections_idle Idle connections
# TYPE hikaricp_connections_idle gauge
hikaricp_connections_idle{application="coladay",pool="HikariPool-2",} 9.0
# HELP process_files_max_files The maximum file descriptor count
# TYPE process_files_max_files gauge
process_files_max_files{application="coladay",} 65536.0
# HELP executor_completed_tasks_total The approximate total number of tasks that have completed execution
# TYPE executor_completed_tasks_total counter
executor_completed_tasks_total{application="coladay",name="applicationTaskExecutor",} 0.0
# HELP jvm_gc_overhead_percent An approximation of the percent of CPU time used by GC activities over the last lookback period or since monitoring began, whichever is shorter, in the range [0..1]
# TYPE jvm_gc_overhead_percent gauge
jvm_gc_overhead_percent{application="coladay",} 0.047999302515874365
# HELP hikaricp_connections_creation_seconds_max Connection creation time
# TYPE hikaricp_connections_creation_seconds_max gauge
hikaricp_connections_creation_seconds_max{application="coladay",pool="HikariPool-2",} 0.0
# HELP hikaricp_connections_creation_seconds Connection creation time
# TYPE hikaricp_connections_creation_seconds summary
hikaricp_connections_creation_seconds_count{application="coladay",pool="HikariPool-2",} 0.0
hikaricp_connections_creation_seconds_sum{application="coladay",pool="HikariPool-2",} 0.0
# HELP executor_pool_max_threads The maximum allowed number of threads in the pool
# TYPE executor_pool_max_threads gauge
executor_pool_max_threads{application="coladay",name="applicationTaskExecutor",} 2.147483647E9
# HELP executor_active_threads The approximate number of threads that are actively executing tasks
# TYPE executor_active_threads gauge
executor_active_threads{application="coladay",name="applicationTaskExecutor",} 0.0
# HELP executor_pool_core_threads The core number of threads for the pool
# TYPE executor_pool_core_threads gauge
executor_pool_core_threads{application="coladay",name="applicationTaskExecutor",} 8.0
# HELP hikaricp_connections_timeout_total Connection timeout total count
# TYPE hikaricp_connections_timeout_total counter
hikaricp_connections_timeout_total{application="coladay",pool="HikariPool-2",} 0.0
# HELP system_cpu_usage The "recent cpu usage" of the system the application is running in
# TYPE system_cpu_usage gauge
system_cpu_usage{application="coladay",} 0.0
# HELP jvm_gc_live_data_size_bytes Size of long-lived heap memory pool after reclamation
# TYPE jvm_gc_live_data_size_bytes gauge
jvm_gc_live_data_size_bytes{application="coladay",} 0.0
# HELP logback_events_total Number of error level events that made it to the logs
# TYPE logback_events_total counter
logback_events_total{application="coladay",level="error",} 0.0
logback_events_total{application="coladay",level="debug",} 0.0
logback_events_total{application="coladay",level="trace",} 0.0
logback_events_total{application="coladay",level="warn",} 1.0
logback_events_total{application="coladay",level="info",} 5.0
# HELP hikaricp_connections_max Max connections
# TYPE hikaricp_connections_max gauge
hikaricp_connections_max{application="coladay",pool="HikariPool-2",} 10.0
# HELP jvm_memory_usage_after_gc_percent The percentage of long-lived heap pool used after the last GC event, in the range [0..1]
# TYPE jvm_memory_usage_after_gc_percent gauge
jvm_memory_usage_after_gc_percent{application="coladay",area="heap",pool="long-lived",} 0.026496289512528803
# HELP hikaricp_connections_usage_seconds Connection usage time
# TYPE hikaricp_connections_usage_seconds summary
hikaricp_connections_usage_seconds_count{application="coladay",pool="HikariPool-2",} 1.0
hikaricp_connections_usage_seconds_sum{application="coladay",pool="HikariPool-2",} 0.001
# HELP hikaricp_connections_usage_seconds_max Connection usage time
# TYPE hikaricp_connections_usage_seconds_max gauge
hikaricp_connections_usage_seconds_max{application="coladay",pool="HikariPool-2",} 0.001
# HELP jvm_gc_max_data_size_bytes Max size of long-lived heap memory pool
# TYPE jvm_gc_max_data_size_bytes gauge
jvm_gc_max_data_size_bytes{application="coladay",} 1.820327936E9
# HELP jvm_buffer_total_capacity_bytes An estimate of the total capacity of the buffers in this pool
# TYPE jvm_buffer_total_capacity_bytes gauge
jvm_buffer_total_capacity_bytes{application="coladay",id="direct",} 15020.0
jvm_buffer_total_capacity_bytes{application="coladay",id="mapped",} 0.0
# HELP jvm_memory_used_bytes The amount of used memory
# TYPE jvm_memory_used_bytes gauge
jvm_memory_used_bytes{application="coladay",area="heap",id="G1 Eden Space",} 1.43654912E8
jvm_memory_used_bytes{application="coladay",area="heap",id="G1 Old Gen",} 4.8231936E7
jvm_memory_used_bytes{application="coladay",area="nonheap",id="Metaspace",} 1.30239216E8
jvm_memory_used_bytes{application="coladay",area="heap",id="G1 Survivor Space",} 1.9922944E7
jvm_memory_used_bytes{application="coladay",area="nonheap",id="CodeHeap 'non-nmethods'",} 1311616.0
jvm_memory_used_bytes{application="coladay",area="nonheap",id="CodeHeap 'non-profiled nmethods'",} 5469056.0
jvm_memory_used_bytes{application="coladay",area="nonheap",id="Compressed Class Space",} 1.476436E7
jvm_memory_used_bytes{application="coladay",area="nonheap",id="CodeHeap 'profiled nmethods'",} 2.9768576E7
# HELP system_cpu_count The number of processors available to the Java virtual machine
# TYPE system_cpu_count gauge
system_cpu_count{application="coladay",} 2.0
# HELP hikaricp_connections_active Active connections
# TYPE hikaricp_connections_active gauge
hikaricp_connections_active{application="coladay",pool="HikariPool-2",} 1.0
# HELP jdbc_connections_min Minimum number of idle connections in the pool.
# TYPE jdbc_connections_min gauge
jdbc_connections_min{application="coladay",name="dataSource",} 10.0
# HELP jvm_gc_memory_allocated_bytes_total Incremented for an increase in the size of the (young) heap memory pool after one GC to before the next
# TYPE jvm_gc_memory_allocated_bytes_total counter
jvm_gc_memory_allocated_bytes_total{application="coladay",} 1.81403648E8
# HELP jvm_memory_committed_bytes The amount of memory in bytes that is committed for the Java virtual machine to use
# TYPE jvm_memory_committed_bytes gauge
jvm_memory_committed_bytes{application="coladay",area="heap",id="G1 Eden Space",} 1.9922944E8
jvm_memory_committed_bytes{application="coladay",area="heap",id="G1 Old Gen",} 1.28974848E8
jvm_memory_committed_bytes{application="coladay",area="nonheap",id="Metaspace",} 1.33763072E8
jvm_memory_committed_bytes{application="coladay",area="heap",id="G1 Survivor Space",} 1.9922944E7
jvm_memory_committed_bytes{application="coladay",area="nonheap",id="CodeHeap 'non-nmethods'",} 2555904.0
jvm_memory_committed_bytes{application="coladay",area="nonheap",id="CodeHeap 'non-profiled nmethods'",} 5505024.0
jvm_memory_committed_bytes{application="coladay",area="nonheap",id="Compressed Class Space",} 1.6121856E7
jvm_memory_committed_bytes{application="coladay",area="nonheap",id="CodeHeap 'profiled nmethods'",} 2.981888E7
# HELP application_started_time_seconds Time taken (ms) to start the application
# TYPE application_started_time_seconds gauge
application_started_time_seconds{application="coladay",main_application_class="com.sy.coladay.metrics.MetricsControllerIT",} 1.678
# HELP jvm_buffer_count_buffers An estimate of the number of buffers in the pool
# TYPE jvm_buffer_count_buffers gauge
jvm_buffer_count_buffers{application="coladay",id="direct",} 1.0
jvm_buffer_count_buffers{application="coladay",id="mapped",} 0.0
# HELP jvm_threads_peak_threads The peak live thread count since the Java virtual machine started or peak was reset
# TYPE jvm_threads_peak_threads gauge
jvm_threads_peak_threads{application="coladay",} 13.0
# HELP process_cpu_usage The "recent cpu usage" for the Java Virtual Machine process
# TYPE process_cpu_usage gauge
process_cpu_usage{application="coladay",} 0.0
# HELP hikaricp_connections_acquire_seconds Connection acquire time
# TYPE hikaricp_connections_acquire_seconds summary
hikaricp_connections_acquire_seconds_count{application="coladay",pool="HikariPool-2",} 2.0
hikaricp_connections_acquire_seconds_sum{application="coladay",pool="HikariPool-2",} 0.00108429
# HELP hikaricp_connections_acquire_seconds_max Connection acquire time
# TYPE hikaricp_connections_acquire_seconds_max gauge
hikaricp_connections_acquire_seconds_max{application="coladay",pool="HikariPool-2",} 0.00107379
# HELP jvm_threads_live_threads The current number of live threads including both daemon and non-daemon threads
# TYPE jvm_threads_live_threads gauge
jvm_threads_live_threads{application="coladay",} 13.0
# HELP number_of_reservations_total
# TYPE number_of_reservations_total counter
number_of_reservations_total{application="coladay",owner="pepsi",} 0.0
number_of_reservations_total{application="coladay",owner="coke",} 0.0
# HELP jvm_gc_pause_seconds Time spent in GC pause
# TYPE jvm_gc_pause_seconds summary
jvm_gc_pause_seconds_count{action="end of minor GC",application="coladay",cause="G1 Evacuation Pause",} 1.0
jvm_gc_pause_seconds_sum{action="end of minor GC",application="coladay",cause="G1 Evacuation Pause",} 0.046
# HELP jvm_gc_pause_seconds_max Time spent in GC pause
# TYPE jvm_gc_pause_seconds_max gauge
jvm_gc_pause_seconds_max{action="end of minor GC",application="coladay",cause="G1 Evacuation Pause",} 0.046
# HELP process_files_open_files The open file descriptor count
# TYPE process_files_open_files gauge
process_files_open_files{application="coladay",} 179.0
# HELP hikaricp_connections_min Min connections
# TYPE hikaricp_connections_min gauge
hikaricp_connections_min{application="coladay",pool="HikariPool-2",} 10.0
# HELP jdbc_connections_active Current number of active connections that have been allocated from the data source.
# TYPE jdbc_connections_active gauge
jdbc_connections_active{application="coladay",name="dataSource",} 1.0
# HELP executor_queue_remaining_tasks The number of additional elements that this queue can ideally accept without blocking
# TYPE executor_queue_remaining_tasks gauge
executor_queue_remaining_tasks{application="coladay",name="applicationTaskExecutor",} 2.147483647E9
# HELP jvm_classes_unloaded_classes_total The total number of classes unloaded since the Java virtual machine has started execution
# TYPE jvm_classes_unloaded_classes_total counter
jvm_classes_unloaded_classes_total{application="coladay",} 0.0
# HELP hikaricp_connections_pending Pending threads
# TYPE hikaricp_connections_pending gauge
hikaricp_connections_pending{application="coladay",pool="HikariPool-2",} 0.0
# HELP application_ready_time_seconds Time taken (ms) for the application to be ready to service requests
# TYPE application_ready_time_seconds gauge
application_ready_time_seconds{application="coladay",main_application_class="com.sy.coladay.metrics.MetricsControllerIT",} 1.681
# HELP executor_queued_tasks The approximate number of tasks that are queued for execution
# TYPE executor_queued_tasks gauge
executor_queued_tasks{application="coladay",name="applicationTaskExecutor",} 0.0
# HELP jdbc_connections_idle Number of established but idle connections.
# TYPE jdbc_connections_idle gauge
jdbc_connections_idle{application="coladay",name="dataSource",} 9.0
# HELP spring_data_repository_invocations_seconds_max
# TYPE spring_data_repository_invocations_seconds_max gauge
spring_data_repository_invocations_seconds_max{application="coladay",exception="None",method="countByOrganizerCompany",repository="ReservationRepository",state="SUCCESS",} 0.012301891
# HELP spring_data_repository_invocations_seconds
# TYPE spring_data_repository_invocations_seconds summary
spring_data_repository_invocations_seconds_count{application="coladay",exception="None",method="countByOrganizerCompany",repository="ReservationRepository",state="SUCCESS",} 2.0
spring_data_repository_invocations_seconds_sum{application="coladay",exception="None",method="countByOrganizerCompany",repository="ReservationRepository",state="SUCCESS",} 0.014202774
# HELP disk_free_bytes Usable space for path
# TYPE disk_free_bytes gauge
disk_free_bytes{application="coladay",path="/home/runner/work/cola-day/cola-day/.",} 3.261073408E10
# HELP hikaricp_connections Total connections
# TYPE hikaricp_connections gauge
hikaricp_connections{application="coladay",pool="HikariPool-2",} 10.0
# HELP jdbc_connections_max Maximum number of active connections that can be allocated at the same time.
# TYPE jdbc_connections_max gauge
jdbc_connections_max{application="coladay",name="dataSource",} 10.0
# HELP jvm_classes_loaded_classes The number of classes that are currently loaded in the Java virtual machine
# TYPE jvm_classes_loaded_classes gauge
jvm_classes_loaded_classes{application="coladay",} 20885.0
# HELP jvm_threads_daemon_threads The current number of live daemon threads
# TYPE jvm_threads_daemon_threads gauge
jvm_threads_daemon_threads{application="coladay",} 12.0
# HELP executor_pool_size_threads The current number of threads in the pool
# TYPE executor_pool_size_threads gauge
executor_pool_size_threads{application="coladay",name="applicationTaskExecutor",} 0.0