<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Cradicle Explorer</title>
    <link href="/css/bootstrap/bootstrap.min.css" rel="stylesheet">
    <style>
      .form-control-dark::placeholder {
          color: #aaa;
          opacity: 1;
      }
    </style>
    <link rel="stylesheet" href="/assets/fontawesome/css/all.min.css">
    <link rel="icon" type="image/png" href="/favicon.png">


                <link href="/css/dashboard.css" rel="stylesheet">
                </head>
                <body>
                <header class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0 shadow">
                  <a class="navbar-brand col-md-3 col-lg-2 me-0 px-3 fs-6" href="/">Cradicle Explorer</a>
                  <button class="navbar-toggler position-absolute d-md-none collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#sidebarMenu" aria-controls="sidebarMenu" aria-expanded="false" aria-label="Toggle navigation">
                    <span class="navbar-toggler-icon"></span>
                  </button>
                  <form method="get" action="/cgi-bin/main" style="width:100%;"><input class="form-control form-control-dark w-100 rounded-0 border-0" type="text" name="q" placeholder="Search repos" aria-label="Search"></form>
                  <div class="navbar-nav flex-row">
                    <div class="nav-item text-nowrap">
                      <a class="nav-link px-3 active" href="/cgi-bin/repo?id=z3R1rDNmPrgZ8evCLRnYZha18rijd">infra-role-cortex</a>
                    </div>
                  </div>
                </header>
                <div class="container-fluid">
                  <div class="row">
                    <nav id="sidebarMenu" class="col-md-3 col-lg-2 d-md-block bg-dark sidebar collapse">
                      <div class="position-sticky pt-3 sidebar-sticky">
                        <ul class="nav flex-column">
                          <li class="nav-item">
                            <a class="nav-link" href="/cgi-bin/repo?id=z3R1rDNmPrgZ8evCLRnYZha18rijd">
                              <i class="align-text-bottom fa-solid fa-info"></i>
                              Info
                            </a>
                          </li>
                          <li class="nav-item">
                            <a class="nav-link" href="/cgi-bin/repo?id=z3R1rDNmPrgZ8evCLRnYZha18rijd&issue=list">
                              <i class="align-text-bottom fa-solid fa-layer-group"></i>
                              Issues
                            </a>
                          </li>
                          <li class="nav-item">
                            <a class="nav-link" href="/cgi-bin/repo?id=z3R1rDNmPrgZ8evCLRnYZha18rijd&patch=list">
                              <i class="align-text-bottom fa-solid fa-vest-patches"></i>
                              Patches
                            </a>
                          </li>
                          <li class="nav-item">
                            <a class="nav-link" href="/cgi-bin/repo?id=z3R1rDNmPrgZ8evCLRnYZha18rijd&wallet=list">
                              <i class="align-text-bottom fa-solid fa-wallet"></i>
                              Wallets
                            </a>
                          </li>
                          <li class="nav-item">
                            <a class="nav-link active" href="/cgi-bin/repo?id=z3R1rDNmPrgZ8evCLRnYZha18rijd&source=.">
                              <i class="align-text-bottom fa-solid fa-code"></i>
                              Source
                            </a>
                          </li>
                        <h6 class="sidebar-heading d-flex justify-content-between align-items-center px-3 mt-4 mb-1 text-muted text-uppercase">
                          <span></span>
                        </h6>
                        <ul class="nav flex-column mb-2">
                        
    <h6 class="sidebar-heading d-flex justify-content-between align-items-center px-3 mt-1 mb-1 text-muted text-uppercase">
      <span>Source</span>
    </h6>
    <li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z3R1rDNmPrgZ8evCLRnYZha18rijd&source=defaults"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> defaults</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z3R1rDNmPrgZ8evCLRnYZha18rijd&source=meta"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> meta</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z3R1rDNmPrgZ8evCLRnYZha18rijd&source=tasks"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> tasks</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z3R1rDNmPrgZ8evCLRnYZha18rijd&source=templates"><i class="fa-solid fa-folder-open" style="color:#f0c040;"></i> templates</a></li><li><a class="nav-link py-0 active" style="padding-left:32px;" href="/cgi-bin/repo?id=z3R1rDNmPrgZ8evCLRnYZha18rijd&file=templates%2Fconfig.yml.j2"><i class="fa-solid fa-file" style="color:#888;"></i> config.yml.j2</a></li><li><a class="nav-link py-0" style="padding-left:32px;" href="/cgi-bin/repo?id=z3R1rDNmPrgZ8evCLRnYZha18rijd&file=templates%2Fcortex.service.j2"><i class="fa-solid fa-file" style="color:#888;"></i> cortex.service.j2</a></li><li><a class="nav-link py-0" style="padding-left:32px;" href="/cgi-bin/repo?id=z3R1rDNmPrgZ8evCLRnYZha18rijd&file=templates%2Fkvstore.conf.j2"><i class="fa-solid fa-file" style="color:#888;"></i> kvstore.conf.j2</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z3R1rDNmPrgZ8evCLRnYZha18rijd&file=LICENSE"><i class="fa-solid fa-file" style="color:#888;"></i> LICENSE</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z3R1rDNmPrgZ8evCLRnYZha18rijd&file=README.md"><i class="fa-solid fa-file" style="color:#888;"></i> README.md</a></li>
    
                        </ul>
                      </div>
                    </nav>
                <main class="col-md-9 ms-sm-auto col-lg-10">
                  <div class="container px-1 py-3">
        
<div class="mb-2" style="font-size:1.1rem;"><a href="/cgi-bin/repo?id=z3R1rDNmPrgZ8evCLRnYZha18rijd&source=.">/</a> <a href="/cgi-bin/repo?id=z3R1rDNmPrgZ8evCLRnYZha18rijd&source=templates">templates</a> / config.yml.j2</div>
        <div class="list-group">
        <div class="list-group-item">
        <div class="mb-2" style="font-weight:bold;"><i class="fa-solid fa-file"></i> config.yml.j2</div>
        <pre style="margin:0; font-size:0.85rem; overflow-x:auto; color:#fafafa;"><span style="color:#666; user-select:none;">  1</span>  
<span style="color:#666; user-select:none;">  2</span>  target: &#x27;{{ cortex_target_modules | join(&quot;,&quot;) }}&#x27;
<span style="color:#666; user-select:none;">  3</span>  auth_enabled: false
<span style="color:#666; user-select:none;">  4</span>  
<span style="color:#666; user-select:none;">  5</span>  # ---------------------- Configs --------------------------
<span style="color:#666; user-select:none;">  6</span>  configs:
<span style="color:#666; user-select:none;">  7</span>    database:
<span style="color:#666; user-select:none;">  8</span>      uri: &#x27;memory://&#x27;
<span style="color:#666; user-select:none;">  9</span>  
<span style="color:#666; user-select:none;"> 10</span>  # ---------------------- Limits ---------------------------
<span style="color:#666; user-select:none;"> 11</span>  limits:
<span style="color:#666; user-select:none;"> 12</span>    ingestion_rate: 1000000
<span style="color:#666; user-select:none;"> 13</span>    ingestion_burst_size: 2000000
<span style="color:#666; user-select:none;"> 14</span>    # Max active metrics with meta per user, per ingester.
<span style="color:#666; user-select:none;"> 15</span>    max_metadata_per_user: {{ cortex_max_metadata_per_user }}
<span style="color:#666; user-select:none;"> 16</span>    # Limit impact from high cardinality.
<span style="color:#666; user-select:none;"> 17</span>    max_series_per_metric: {{ cortex_max_series_per_metric }}
<span style="color:#666; user-select:none;"> 18</span>    max_series_per_user: {{ cortex_max_series_per_user }}
<span style="color:#666; user-select:none;"> 19</span>    max_label_names_per_series: 30
<span style="color:#666; user-select:none;"> 20</span>    max_label_value_length: {{ cortex_max_label_value_length }}
<span style="color:#666; user-select:none;"> 21</span>    # Delete blocks containing samples older than this.
<span style="color:#666; user-select:none;"> 22</span>    compactor_blocks_retention_period: {{ cortex_blocks_storage_retention }}
<span style="color:#666; user-select:none;"> 23</span>    # Maximum accepted sample age before rejecting.
<span style="color:#666; user-select:none;"> 24</span>    reject_old_samples: true
<span style="color:#666; user-select:none;"> 25</span>    reject_old_samples_max_age: {{ cortex_old_samples_max_age }}
<span style="color:#666; user-select:none;"> 26</span>    # Allowed time window for ingestion of out-of-order samples.
<span style="color:#666; user-select:none;"> 27</span>    out_of_order_time_window: {{ cortex_out_of_order_time_window }}
<span style="color:#666; user-select:none;"> 28</span>  
<span style="color:#666; user-select:none;"> 29</span>  # ---------------------- Memberlist -----------------------
<span style="color:#666; user-select:none;"> 30</span>  memberlist:
<span style="color:#666; user-select:none;"> 31</span>    node_name: {{ inventory_hostname }}
<span style="color:#666; user-select:none;"> 32</span>    advertise_addr: {{ ansible_local.wireguard.address }}
<span style="color:#666; user-select:none;"> 33</span>  
<span style="color:#666; user-select:none;"> 34</span>  # ---------------------- Server ---------------------------
<span style="color:#666; user-select:none;"> 35</span>  server:
<span style="color:#666; user-select:none;"> 36</span>    http_listen_address: &#x27;0.0.0.0&#x27;
<span style="color:#666; user-select:none;"> 37</span>    http_listen_port: {{ cortex_listen_port | mandatory }}
<span style="color:#666; user-select:none;"> 38</span>    grpc_listen_address: &#x27;0.0.0.0&#x27;
<span style="color:#666; user-select:none;"> 39</span>    grpc_listen_port: {{ cortex_grpc_port | mandatory }}
<span style="color:#666; user-select:none;"> 40</span>    log_level: &#x27;{{ cortex_log_level }}&#x27;
<span style="color:#666; user-select:none;"> 41</span>  
<span style="color:#666; user-select:none;"> 42</span>    # Big queries need bigger message size.
<span style="color:#666; user-select:none;"> 43</span>    grpc_server_max_recv_msg_size: 104857600
<span style="color:#666; user-select:none;"> 44</span>    grpc_server_max_send_msg_size: 104857600
<span style="color:#666; user-select:none;"> 45</span>    # Bump gRPC concurrency to avoid delays.
<span style="color:#666; user-select:none;"> 46</span>    grpc_server_max_concurrent_streams: 1000
<span style="color:#666; user-select:none;"> 47</span>  {% if &#x27;distributor&#x27; in cortex_target_modules or [&#x27;all&#x27;] == cortex_target_modules %}
<span style="color:#666; user-select:none;"> 48</span>    grpc_server_max_connection_age: 2m
<span style="color:#666; user-select:none;"> 49</span>    grpc_server_max_connection_age_grace: 5m
<span style="color:#666; user-select:none;"> 50</span>    grpc_server_max_connection_idle: 1m
<span style="color:#666; user-select:none;"> 51</span>  {% endif %}
<span style="color:#666; user-select:none;"> 52</span>  
<span style="color:#666; user-select:none;"> 53</span>  # ---------------------- Storage --------------------------
<span style="color:#666; user-select:none;"> 54</span>  storage:
<span style="color:#666; user-select:none;"> 55</span>    engine: &#x27;blocks&#x27;
<span style="color:#666; user-select:none;"> 56</span>  
<span style="color:#666; user-select:none;"> 57</span>  {% if &#x27;ingester&#x27;      in cortex_target_modules
<span style="color:#666; user-select:none;"> 58</span>     or &#x27;querier&#x27;       in cortex_target_modules
<span style="color:#666; user-select:none;"> 59</span>     or &#x27;store-gateway&#x27; in cortex_target_modules
<span style="color:#666; user-select:none;"> 60</span>     or &#x27;compactor&#x27;     in cortex_target_modules
<span style="color:#666; user-select:none;"> 61</span>     or &#x27;all&#x27;           in cortex_target_modules %}
<span style="color:#666; user-select:none;"> 62</span>  blocks_storage:
<span style="color:#666; user-select:none;"> 63</span>    tsdb:
<span style="color:#666; user-select:none;"> 64</span>      # Should be equal or bigger than querier.query_store_after setting.
<span style="color:#666; user-select:none;"> 65</span>      retention_period: &#x27;{{ cortex_ingester_retention_period }}&#x27;
<span style="color:#666; user-select:none;"> 66</span>  
<span style="color:#666; user-select:none;"> 67</span>    backend: &#x27;s3&#x27;
<span style="color:#666; user-select:none;"> 68</span>    s3:
<span style="color:#666; user-select:none;"> 69</span>      endpoint: &#x27;{{ cortex_blocks_storage_endpoint }}&#x27;
<span style="color:#666; user-select:none;"> 70</span>      bucket_name: &#x27;{{ cortex_blocks_storage_bucket | mandatory }}&#x27;
<span style="color:#666; user-select:none;"> 71</span>      access_key_id: &#x27;{{ cortex_blocks_storage_key_id | mandatory }}&#x27;
<span style="color:#666; user-select:none;"> 72</span>      secret_access_key: &#x27;{{ cortex_blocks_storage_secret | mandatory }}&#x27;
<span style="color:#666; user-select:none;"> 73</span>  {% if &#x27;querier&#x27;       in cortex_target_modules
<span style="color:#666; user-select:none;"> 74</span>     or &#x27;store-gateway&#x27; in cortex_target_modules %}
<span style="color:#666; user-select:none;"> 75</span>    bucket_store:
<span style="color:#666; user-select:none;"> 76</span>      bucket_index:
<span style="color:#666; user-select:none;"> 77</span>        enabled: true
<span style="color:#666; user-select:none;"> 78</span>      chunks_cache:
<span style="color:#666; user-select:none;"> 79</span>        backend: &#x27;memcached&#x27;
<span style="color:#666; user-select:none;"> 80</span>        memcached:
<span style="color:#666; user-select:none;"> 81</span>          addresses: &#x27;{{ cortex_memcached_addresses | join(&#x27;,&#x27;) }}&#x27;
<span style="color:#666; user-select:none;"> 82</span>          timeout:                   {{ cortex_block_storage_cache_timeout }}
<span style="color:#666; user-select:none;"> 83</span>          max_get_multi_batch_size:  {{ cortex_block_storage_cache_max_get_multi_batch_size }}
<span style="color:#666; user-select:none;"> 84</span>          max_idle_connections:      {{ cortex_block_storage_cache_max_idle_connections }}
<span style="color:#666; user-select:none;"> 85</span>          max_async_concurrency:     {{ cortex_block_storage_cache_max_async_concurrency }}
<span style="color:#666; user-select:none;"> 86</span>          max_async_buffer_size:     {{ cortex_block_storage_cache_max_async_buffer_size }}
<span style="color:#666; user-select:none;"> 87</span>          max_get_multi_concurrency: {{ cortex_block_storage_cache_max_get_multi_concurrency }}
<span style="color:#666; user-select:none;"> 88</span>  {% endif %}
<span style="color:#666; user-select:none;"> 89</span>  
<span style="color:#666; user-select:none;"> 90</span>  {% endif %}
<span style="color:#666; user-select:none;"> 91</span>  {% if &#x27;querier&#x27; in cortex_target_modules or [&#x27;all&#x27;] == cortex_target_modules %}
<span style="color:#666; user-select:none;"> 92</span>  # ---------------------- Querier --------------------------
<span style="color:#666; user-select:none;"> 93</span>  querier:
<span style="color:#666; user-select:none;"> 94</span>    max_samples: 1000000000
<span style="color:#666; user-select:none;"> 95</span>    max_concurrent: 100
<span style="color:#666; user-select:none;"> 96</span>    timeout: &#x27;2m&#x27;
<span style="color:#666; user-select:none;"> 97</span>    # WARNING: This decides what time-range is requested from ingesters.
<span style="color:#666; user-select:none;"> 98</span>    query_store_after: &#x27;{{ cortex_ingester_retention_period }}&#x27;
<span style="color:#666; user-select:none;"> 99</span>    store_gateway_client:
<span style="color:#666; user-select:none;">100</span>      grpc_compression: &#x27;{{ cortex_compression }}&#x27;
<span style="color:#666; user-select:none;">101</span>  
<span style="color:#666; user-select:none;">102</span>  # ---------------------- Frontend Worker ------------------
<span style="color:#666; user-select:none;">103</span>  frontend_worker:
<span style="color:#666; user-select:none;">104</span>    frontend_address: &#x27;{{ cortex_query_frontend_addr }}:{{ cortex_query_frontend_port }}&#x27;
<span style="color:#666; user-select:none;">105</span>    match_max_concurrent: true
<span style="color:#666; user-select:none;">106</span>  
<span style="color:#666; user-select:none;">107</span>  {% endif %}
<span style="color:#666; user-select:none;">108</span>  {% if &#x27;querier&#x27; in cortex_target_modules or [&#x27;all&#x27;] == cortex_target_modules %}
<span style="color:#666; user-select:none;">109</span>  # ---------------------- Store Gateway --------------------
<span style="color:#666; user-select:none;">110</span>  store_gateway:
<span style="color:#666; user-select:none;">111</span>    sharding_enabled: true
<span style="color:#666; user-select:none;">112</span>    sharding_ring:
<span style="color:#666; user-select:none;">113</span>      instance_interface_names: {{ cortex_listen_interfaces | to_yaml }}
<span style="color:#666; user-select:none;">114</span>  {% filter indent(4, True) %}{% include &quot;kvstore.conf.j2&quot; %}{% endfilter %}
<span style="color:#666; user-select:none;">115</span>  
<span style="color:#666; user-select:none;">116</span>  {% endif %}
<span style="color:#666; user-select:none;">117</span>  {% if &#x27;query-frontend&#x27; in cortex_target_modules or [&#x27;all&#x27;] == cortex_target_modules %}
<span style="color:#666; user-select:none;">118</span>  # ---------------------- Query Frontend -------------------
<span style="color:#666; user-select:none;">119</span>  frontend:
<span style="color:#666; user-select:none;">120</span>    instance_interface_names: {{ cortex_listen_interfaces | to_yaml }}
<span style="color:#666; user-select:none;">121</span>    max_outstanding_per_tenant: 400
<span style="color:#666; user-select:none;">122</span>    log_queries_longer_than: 5s
<span style="color:#666; user-select:none;">123</span>    query_stats_enabled: true
<span style="color:#666; user-select:none;">124</span>  
<span style="color:#666; user-select:none;">125</span>    grpc_client_config:
<span style="color:#666; user-select:none;">126</span>      grpc_compression: &#x27;{{ cortex_compression }}&#x27;
<span style="color:#666; user-select:none;">127</span>      max_recv_msg_size: 104857600
<span style="color:#666; user-select:none;">128</span>      max_send_msg_size: 16777216
<span style="color:#666; user-select:none;">129</span>  
<span style="color:#666; user-select:none;">130</span>  # ---------------------- Querier --------------------------
<span style="color:#666; user-select:none;">131</span>  query_range:
<span style="color:#666; user-select:none;">132</span>    split_queries_by_interval: &#x27;24h&#x27;
<span style="color:#666; user-select:none;">133</span>    align_queries_with_step: true
<span style="color:#666; user-select:none;">134</span>    cache_results: true
<span style="color:#666; user-select:none;">135</span>    results_cache:
<span style="color:#666; user-select:none;">136</span>      cache:
<span style="color:#666; user-select:none;">137</span>        memcached:
<span style="color:#666; user-select:none;">138</span>          expiration: &#x27;12h&#x27;
<span style="color:#666; user-select:none;">139</span>          batch_size: 32768
<span style="color:#666; user-select:none;">140</span>          parallelism: 100
<span style="color:#666; user-select:none;">141</span>        memcached_client:
<span style="color:#666; user-select:none;">142</span>          addresses: &#x27;{{ cortex_memcached_addresses | join(&#x27;,&#x27;) }}&#x27;
<span style="color:#666; user-select:none;">143</span>  
<span style="color:#666; user-select:none;">144</span>  {% endif %}
<span style="color:#666; user-select:none;">145</span>  {% if &#x27;distributor&#x27; in cortex_target_modules or [&#x27;all&#x27;] == cortex_target_modules %}
<span style="color:#666; user-select:none;">146</span>  # ---------------------- Distributor ----------------------
<span style="color:#666; user-select:none;">147</span>  distributor:
<span style="color:#666; user-select:none;">148</span>    # This causes `context deadline exceeded` on push to ingesters.
<span style="color:#666; user-select:none;">149</span>    remote_timeout: &#x27;{{ cortex_dist_remote_timeout }}&#x27;
<span style="color:#666; user-select:none;">150</span>  
<span style="color:#666; user-select:none;">151</span>    ring:
<span style="color:#666; user-select:none;">152</span>  {% filter indent(4, True) %}{% include &quot;kvstore.conf.j2&quot; %}{% endfilter %}
<span style="color:#666; user-select:none;">153</span>  
<span style="color:#666; user-select:none;">154</span>  {% endif %}
<span style="color:#666; user-select:none;">155</span>  {% if &#x27;distributor&#x27; in cortex_target_modules
<span style="color:#666; user-select:none;">156</span>     or &#x27;querier&#x27;     in cortex_target_modules %}
<span style="color:#666; user-select:none;">157</span>  ingester_client:
<span style="color:#666; user-select:none;">158</span>    grpc_client_config:
<span style="color:#666; user-select:none;">159</span>      grpc_compression: &#x27;{{ cortex_compression }}&#x27;
<span style="color:#666; user-select:none;">160</span>  
<span style="color:#666; user-select:none;">161</span>  {% endif %}
<span style="color:#666; user-select:none;">162</span>  {% if &#x27;ingester&#x27;    in cortex_target_modules
<span style="color:#666; user-select:none;">163</span>     or &#x27;distributor&#x27; in cortex_target_modules
<span style="color:#666; user-select:none;">164</span>     or &#x27;querier&#x27;     in cortex_target_modules
<span style="color:#666; user-select:none;">165</span>     or [&#x27;all&#x27;]       == cortex_target_modules %}
<span style="color:#666; user-select:none;">166</span>  # ---------------------- Ingester -------------------------
<span style="color:#666; user-select:none;">167</span>  ingester:
<span style="color:#666; user-select:none;">168</span>    lifecycler:
<span style="color:#666; user-select:none;">169</span>      tokens_file_path: &#x27;{{ cortex_wal_dir }}/tokens&#x27;
<span style="color:#666; user-select:none;">170</span>      interface_names: {{ cortex_listen_interfaces | to_yaml }}
<span style="color:#666; user-select:none;">171</span>      ring:
<span style="color:#666; user-select:none;">172</span>  {% filter indent(6, True) %}{% include &quot;kvstore.conf.j2&quot; %}{% endfilter %}
<span style="color:#666; user-select:none;">173</span>  
<span style="color:#666; user-select:none;">174</span>  {% endif %}
<span style="color:#666; user-select:none;">175</span>  {% if &#x27;purger&#x27; in cortex_target_modules or [&#x27;all&#x27;] == cortex_target_modules %}
<span style="color:#666; user-select:none;">176</span>  # ---------------------- Purger ---------------------------
<span style="color:#666; user-select:none;">177</span>  purger:
<span style="color:#666; user-select:none;">178</span>    enable: true
<span style="color:#666; user-select:none;">179</span>    num_workers: 2
<span style="color:#666; user-select:none;">180</span>    object_store_type: &#x27;inmemory&#x27;
<span style="color:#666; user-select:none;">181</span>    delete_request_cancel_period: &#x27;5m&#x27;
<span style="color:#666; user-select:none;">182</span>  {% endif %}
</pre>
        </div>
        </div>

</div>
</main>
</div>
</div>


</body>
</html>

