{% extends "base.html" %} {% load static %} {% load custom_tags %} {% load humanize %} {% block title %} Service Status {% endblock title %} {% block description %} Check the status of various services including Bitcoin Node, SendGrid API, and GitHub API. Stay informed about their current operational status and block information. {% endblock description %} {% block keywords %} Service Status, Bitcoin Node, SendGrid API, GitHub API, Operational Status, Block Information {% endblock keywords %} {% block og_title %} Service Status - Monitor Operational Status {% endblock og_title %} {% block og_description %} View the current status of services such as Bitcoin Node, SendGrid API, and GitHub API. Stay updated on their operational status and block information. {% endblock og_description %} {% block content %} {% include "includes/sidenav.html" %}

Service Status

Management Commands

Bitcoin Node

{% if status.bitcoin == None %} Status Unknown {% elif status.bitcoin %}
Operational

Block Height: {{ status.bitcoin_block }}

View on Mempool
{% else %} Not Operational {% endif %}

SendGrid API

{% if status.sendgrid == None %} Status Unknown {% elif status.sendgrid %} Operational {% else %} Not Operational {% endif %}

OpenAI API

{% if status.openai == None %} Status Unknown {% elif status.openai %} Operational {% else %} Not Operational {% endif %}

GitHub API

{% if status.github == None %} Status Unknown {% elif status.github %} Operational {% else %} Not Operational {% endif %}
{% if status.github_rate_limit %}

Rate Limits

Core API
Remaining: {{ status.github_rate_limit.core.remaining }} / {{ status.github_rate_limit.core.limit }}
Used: {{ status.github_rate_limit.core.used }}
{% with remaining=status.github_rate_limit.core.remaining|default:0 limit=status.github_rate_limit.core.limit|default:1 %} {% with percentage=remaining|div:limit|multiply:100|floatformat:0 %}
Reset in: {% if status.github_rate_limit.core.reset %} {% with reset_time=status.github_rate_limit.core.reset|timestamp_to_datetime %}{{ reset_time|timeuntil }}{% endwith %} {% else %} Unknown {% endif %}
{% endwith %} {% endwith %}
Search API
Remaining: {{ status.github_rate_limit.search.remaining }} / {{ status.github_rate_limit.search.limit }}
Used: {{ status.github_rate_limit.search.used }}
{% with remaining=status.github_rate_limit.search.remaining|default:0 limit=status.github_rate_limit.search.limit|default:1 %} {% with percentage=remaining|div:limit|multiply:100|floatformat:0 %}
{% endwith %} {% endwith %}
GraphQL API
Remaining: {{ status.github_rate_limit.graphql.remaining }} / {{ status.github_rate_limit.graphql.limit }}
Used: {{ status.github_rate_limit.graphql.used }}
{% with remaining=status.github_rate_limit.graphql.remaining|default:0 limit=status.github_rate_limit.graphql.limit|default:1 %} {% with percentage=remaining|div:limit|multiply:100|floatformat:0 %}
{% endwith %} {% endwith %}
{% if status.github_api_history %}

API Usage History

{% endif %} {% endif %}

Top Memory Consumers

    {% for proc in status.top_memory_consumers %}
  • {{ proc.name }} (PID: {{ proc.pid }}): {{ proc.memory_info.rss|filesizeformat }}
  • {% endfor %}

Database Connection Count

{{ status.db_connection_count }}

Redis Stats

Status: {{ status.redis_stats.status }}

{% if status.redis_stats.error %}

Error: {{ status.redis_stats.error }}

{% endif %} {% if status.redis_stats.status == 'Connected' %}
  • Version: {{ status.redis_stats.version }}
  • Connected Clients: {{ status.redis_stats.connected_clients }}
  • Memory Usage: {{ status.redis_stats.used_memory_human }}
  • Uptime (days): {{ status.redis_stats.uptime_days }}
{% endif %}

Slack Bot Activity

Total Activities:

{{ status.slack_bot.total_activities }}

Last 24h Activities:

{{ status.slack_bot.last_24h_activities }}

Success Rate:

{{ status.slack_bot.success_rate|floatformat:1 }}%

Active Workspaces:

{{ status.slack_bot.workspace_count }}

{% if status.slack_bot.last_activity %}
Last Activity:

{{ status.slack_bot.last_activity|timesince }} ago

{% endif %}

Activity Distribution

{% for type, count in status.slack_bot.activity_types.items %}
{{ type|title }}: {{ count }}
{% endfor %}

Recent Activities

{% for activity in status.slack_bot.recent_activities %} {% endfor %}
Type Time Status
{{ activity.activity_type|title }} {{ activity.created|date:"M d, H:i" }}
{{ activity.success|yesno:"Success,Failed" }}
{% endblock content %} {% block extra_js %} {% endblock extra_js %}