grafana.com Open in urlscan Pro
2600:1901:0:b3ea::  Public Scan

Submitted URL: https://go.grafana.com/dc/gQs7-s99Kr7GlKTAVUezPUFBMknGFfsTzu-4l30sYvt43-vf8F2SwfSQ6GZie-eumO1cPlrXDwMe8An41qHiMKeCB5Pg4...
Effective URL: https://grafana.com/go/webinar/getting-started-with-logging-and-grafana-loki/?src=email&cnt=webinar-invite&camp=webi...
Submission: On November 21 via api from RU — Scanned from CA

Form analysis 8 forms found in the DOM

<form class="chat-feedback">
  <div><label for="">
      <p class="body-default text-gray-8 mb-half"><strong>Comments</strong> <span class="f-14 text-gray-6 fw-400">(required)</span></p>
    </label><textarea class="bg-white input-no-focus h-150" placeholder="Let us know about your experience with Grot" x-model="summary.feedback.comments" id="modalChatFeedback" :disabled="summary.feedback.success === true"></textarea></div>
  <div class="text-center mx-auto maxw-200"><button class="btn btn--primary w-100" @click.prevent="submitSummaryFeedback" x-show="!summary.feedback.success" :disabled="!summary.feedback.comments || !summary.feedback.rating">
      <span x-show="!summary.feedback.loading &amp;&amp; !summary.feedback.success">Send </span><span x-show="summary.feedback.loading">Sending...</span></button>
    <div class="d-flex justify-content-space-evenly maxw-75 mx-auto" x-show="summary.feedback.success"><span><svg width="27" height="26" viewBox="0 0 27 26" fill="none" xmlns="http://www.w3.org/2000/svg">
          <path d="M8.94922 12.6283 12.4033 16l6.1459-6" stroke="#1a7f4b" stroke-width="2" stroke-linecap="square"></path>
          <circle opacity=".2" cx="13.75" cy="13" r="12" stroke="#1a7f4b" stroke-width="2"></circle>
        </svg></span><span>Sent</span></div>
  </div>
  <div class="text-center mb-2 mx-auto maxw-500">
    <p x-show="summary.feedback.success">Thank you! Your message has been received!</p>
    <p x-show="summary.feedback.error !== ''" x-text="summary.feedback.error"></p>
  </div>
</form>

<form class="chat-feedback">
  <div><label for="modalChatFeedback">
      <p class="body-default text-gray-8 mb-half"><strong>Comments</strong> <span class="f-14 text-gray-6 fw-400">(required)</span></p>
    </label><textarea class="bg-white input-no-focus h-150" placeholder="Let us know about your experience with Grot" x-model="conversation_feedback.comments" id="modalChatFeedback" :disabled="conversation_feedback.success === true"></textarea></div>
  <div class="text-center mx-auto maxw-200"><button class="btn btn--primary w-100" @click.prevent="submitChatFeedback(conversation_feedback.conversation_index)" x-show="!conversation_feedback.success"
      :disabled="!conversation_feedback.comments || !conversation_feedback.rating">
      <span x-show="!conversation_feedback.loading &amp;&amp; !conversation_feedback.success">Send</span>
      <span x-show="conversation_feedback.loading"></span></button>
    <div class="d-flex justify-content-space-evenly maxw-75 mx-auto" x-show="conversation_feedback.success"><span><svg width="27" height="26" viewBox="0 0 27 26" fill="none" xmlns="http://www.w3.org/2000/svg">
          <path d="M8.94922 12.6283 12.4033 16l6.1459-6" stroke="#1a7f4b" stroke-width="2" stroke-linecap="square"></path>
          <circle opacity=".2" cx="13.75" cy="13" r="12" stroke="#1a7f4b" stroke-width="2"></circle>
        </svg></span><span>Sent</span></div>
  </div>
  <div class="text-center mb-2 mx-auto maxw-500">
    <p x-show="conversation_feedback.success">Thank you! Your message has been received!</p>
    <p x-show="conversation_feedback.error !== ''" x-text="conversation_feedback.error"></p>
  </div>
</form>

<form @submit.prevent="submit()">
  <div class="form-fields"><template x-if="!response &amp;&amp; !email_error">
      <div class="d-flex column-gap-10 row-gap-10 form-fields-wrapper"><template x-for="(field, index) in form.fields" :key="index">
          <div class="w-100p maxw-550"><template x-if="field.element === 'input' &amp;&amp; field.type === 'email'">
              <div :class="field.wrapperClass || 'form-input'"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true"></label>
                <template x-if="email !== ''"><input :name="field.name" :value="email" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                    :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
                </template><template x-if="email === ''"><input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                    :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern"></template>
              </div>
            </template><template x-if="field.element === 'input' &amp;&amp; field.type !== 'email'">
              <div :class="field.wrapperClass || 'form-input'"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true"></label>
                <input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                  :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
              </div>
            </template></div>
        </template>
        <div id="register-btn" class="form-submit mt-0"><button class="btn box-shadow btn--primary" type="submit">Register</button></div>
      </div>
    </template>
    <div class="d-flex column-gap-10 row-gap-10 form-fields-wrapper"><template x-for="(field, index) in form.fields" :key="index">
        <div class="w-100p maxw-550"><template x-if="field.element === 'input' &amp;&amp; field.type === 'email'">
            <div :class="field.wrapperClass || 'form-input'"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true"></label>
              <template x-if="email !== ''"><input :name="field.name" :value="email" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                  :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
              </template><template x-if="email === ''"><input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                  :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern"></template>
            </div>
          </template><template x-if="field.element === 'input' &amp;&amp; field.type !== 'email'">
            <div :class="field.wrapperClass || 'form-input'"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true"></label>
              <input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
            </div>
          </template></div>
      </template>
      <div class="w-100p maxw-550"><template x-if="field.element === 'input' &amp;&amp; field.type === 'email'">
          <div :class="field.wrapperClass || 'form-input'"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true"></label>
            <template x-if="email !== ''"><input :name="field.name" :value="email" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
            </template><template x-if="email === ''"><input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern"></template>
          </div>
        </template>
        <div :class="field.wrapperClass || 'form-input'" class="form-input"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true">Email*</label>
          <template x-if="email !== ''"><input :name="field.name" :value="email" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
              :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
          </template><template x-if="email === ''"><input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
              :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern"></template><input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type"
            @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label" :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern" name="email"
            placeholder="Email" type="email" class="" aria-label="Email" required="required">
        </div><template x-if="field.element === 'input' &amp;&amp; field.type !== 'email'">
          <div :class="field.wrapperClass || 'form-input'"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true"></label>
            <input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
              :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
          </div>
        </template>
      </div>
      <div id="register-btn" class="form-submit mt-0"><button class="btn box-shadow btn--primary" type="submit">Register</button></div>
    </div>
  </div>
</form>

<form @submit.prevent="submit()">
  <div class="form-fields"><template x-if="!response &amp;&amp; !email_error">
      <div class="d-flex column-gap-10 row-gap-10 form-fields-wrapper"><template x-for="(field, index) in form.fields" :key="index">
          <div class="w-100p maxw-550"><template x-if="field.element === 'input' &amp;&amp; field.type === 'email'">
              <div :class="field.wrapperClass || 'form-input'"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true"></label>
                <template x-if="email !== ''"><input :name="field.name" :value="email" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                    :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
                </template><template x-if="email === ''"><input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                    :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern"></template>
              </div>
            </template><template x-if="field.element === 'input' &amp;&amp; field.type !== 'email'">
              <div :class="field.wrapperClass || 'form-input'"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true"></label>
                <input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                  :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
              </div>
            </template></div>
        </template>
        <div id="register-btn" class="form-submit mt-0"><button class="btn box-shadow btn--primary" type="submit">Register</button></div>
      </div>
    </template>
    <div class="d-flex column-gap-10 row-gap-10 form-fields-wrapper"><template x-for="(field, index) in form.fields" :key="index">
        <div class="w-100p maxw-550"><template x-if="field.element === 'input' &amp;&amp; field.type === 'email'">
            <div :class="field.wrapperClass || 'form-input'"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true"></label>
              <template x-if="email !== ''"><input :name="field.name" :value="email" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                  :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
              </template><template x-if="email === ''"><input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                  :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern"></template>
            </div>
          </template><template x-if="field.element === 'input' &amp;&amp; field.type !== 'email'">
            <div :class="field.wrapperClass || 'form-input'"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true"></label>
              <input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
            </div>
          </template></div>
      </template>
      <div class="w-100p maxw-550"><template x-if="field.element === 'input' &amp;&amp; field.type === 'email'">
          <div :class="field.wrapperClass || 'form-input'"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true"></label>
            <template x-if="email !== ''"><input :name="field.name" :value="email" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
            </template><template x-if="email === ''"><input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern"></template>
          </div>
        </template>
        <div :class="field.wrapperClass || 'form-input'" class="form-input"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true">Email*</label>
          <template x-if="email !== ''"><input :name="field.name" :value="email" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
              :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
          </template><template x-if="email === ''"><input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
              :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern"></template><input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type"
            @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label" :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern" name="email"
            placeholder="Email" type="email" class="" aria-label="Email" required="required">
        </div><template x-if="field.element === 'input' &amp;&amp; field.type !== 'email'">
          <div :class="field.wrapperClass || 'form-input'"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true"></label>
            <input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
              :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
          </div>
        </template>
      </div>
      <div id="register-btn" class="form-submit mt-0"><button class="btn box-shadow btn--primary" type="submit">Register</button></div>
    </div>
  </div>
</form>

<form @submit.prevent="submit()">
  <div class="form-fields"><template x-if="!response &amp;&amp; !email_error">
      <div class="d-flex column-gap-10 row-gap-10 form-fields-wrapper"><template x-for="(field, index) in form.fields" :key="index">
          <div class="w-100p maxw-550"><template x-if="field.element === 'input' &amp;&amp; field.type === 'email'">
              <div :class="field.wrapperClass || 'form-input'"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true"></label>
                <template x-if="email !== ''"><input :name="field.name" :value="email" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                    :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
                </template><template x-if="email === ''"><input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                    :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern"></template>
              </div>
            </template><template x-if="field.element === 'input' &amp;&amp; field.type !== 'email'">
              <div :class="field.wrapperClass || 'form-input'"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true"></label>
                <input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                  :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
              </div>
            </template></div>
        </template>
        <div id="register-btn" class="form-submit mt-0"><button class="btn box-shadow btn--primary" type="submit">Join now</button></div>
      </div>
    </template>
    <div class="d-flex column-gap-10 row-gap-10 form-fields-wrapper"><template x-for="(field, index) in form.fields" :key="index">
        <div class="w-100p maxw-550"><template x-if="field.element === 'input' &amp;&amp; field.type === 'email'">
            <div :class="field.wrapperClass || 'form-input'"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true"></label>
              <template x-if="email !== ''"><input :name="field.name" :value="email" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                  :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
              </template><template x-if="email === ''"><input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                  :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern"></template>
            </div>
          </template><template x-if="field.element === 'input' &amp;&amp; field.type !== 'email'">
            <div :class="field.wrapperClass || 'form-input'"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true"></label>
              <input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
            </div>
          </template></div>
      </template>
      <div class="w-100p maxw-550"><template x-if="field.element === 'input' &amp;&amp; field.type === 'email'">
          <div :class="field.wrapperClass || 'form-input'"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true"></label>
            <template x-if="email !== ''"><input :name="field.name" :value="email" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
            </template><template x-if="email === ''"><input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern"></template>
          </div>
        </template>
        <div :class="field.wrapperClass || 'form-input'" class="form-input"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true">Email*</label>
          <template x-if="email !== ''"><input :name="field.name" :value="email" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
              :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
          </template><template x-if="email === ''"><input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
              :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern"></template><input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type"
            @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label" :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern" name="email"
            placeholder="Email" type="email" class="" aria-label="Email" required="required">
        </div><template x-if="field.element === 'input' &amp;&amp; field.type !== 'email'">
          <div :class="field.wrapperClass || 'form-input'"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true"></label>
            <input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
              :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
          </div>
        </template>
      </div>
      <div id="register-btn" class="form-submit mt-0"><button class="btn box-shadow btn--primary" type="submit">Join now</button></div>
    </div>
  </div>
</form>

<form @submit.prevent="submit()">
  <div class="form-fields"><template x-if="!response &amp;&amp; !email_error">
      <div class="d-flex column-gap-10 row-gap-10 form-fields-wrapper"><template x-for="(field, index) in form.fields" :key="index">
          <div class="w-100p maxw-550"><template x-if="field.element === 'input' &amp;&amp; field.type === 'email'">
              <div :class="field.wrapperClass || 'form-input'"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true"></label>
                <template x-if="email !== ''"><input :name="field.name" :value="email" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                    :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
                </template><template x-if="email === ''"><input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                    :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern"></template>
              </div>
            </template><template x-if="field.element === 'input' &amp;&amp; field.type !== 'email'">
              <div :class="field.wrapperClass || 'form-input'"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true"></label>
                <input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                  :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
              </div>
            </template></div>
        </template>
        <div id="register-btn" class="form-submit mt-0"><button class="btn box-shadow btn--primary" type="submit">Register</button></div>
      </div>
    </template>
    <div class="d-flex column-gap-10 row-gap-10 form-fields-wrapper"><template x-for="(field, index) in form.fields" :key="index">
        <div class="w-100p maxw-550"><template x-if="field.element === 'input' &amp;&amp; field.type === 'email'">
            <div :class="field.wrapperClass || 'form-input'"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true"></label>
              <template x-if="email !== ''"><input :name="field.name" :value="email" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                  :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
              </template><template x-if="email === ''"><input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                  :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern"></template>
            </div>
          </template><template x-if="field.element === 'input' &amp;&amp; field.type !== 'email'">
            <div :class="field.wrapperClass || 'form-input'"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true"></label>
              <input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
            </div>
          </template></div>
      </template>
      <div class="w-100p maxw-550"><template x-if="field.element === 'input' &amp;&amp; field.type === 'email'">
          <div :class="field.wrapperClass || 'form-input'"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true"></label>
            <template x-if="email !== ''"><input :name="field.name" :value="email" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
            </template><template x-if="email === ''"><input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern"></template>
          </div>
        </template>
        <div :class="field.wrapperClass || 'form-input'" class="form-input"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true">Email*</label>
          <template x-if="email !== ''"><input :name="field.name" :value="email" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
              :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
          </template><template x-if="email === ''"><input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
              :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern"></template><input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type"
            @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label" :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern" name="email"
            placeholder="Email" type="email" class="" aria-label="Email" required="required">
        </div><template x-if="field.element === 'input' &amp;&amp; field.type !== 'email'">
          <div :class="field.wrapperClass || 'form-input'"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true"></label>
            <input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
              :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
          </div>
        </template>
      </div>
      <div id="register-btn" class="form-submit mt-0"><button class="btn box-shadow btn--primary" type="submit">Register</button></div>
    </div>
  </div>
</form>

<form @submit.prevent="submit()">
  <div class="form-fields"><template x-if="!response &amp;&amp; !email_error">
      <div class="d-flex column-gap-10 row-gap-10 form-fields-wrapper"><template x-for="(field, index) in form.fields" :key="index">
          <div class="w-100p maxw-550"><template x-if="field.element === 'input' &amp;&amp; field.type === 'email'">
              <div :class="field.wrapperClass || 'form-input'"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true"></label>
                <template x-if="email !== ''"><input :name="field.name" :value="email" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                    :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
                </template><template x-if="email === ''"><input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                    :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern"></template>
              </div>
            </template><template x-if="field.element === 'input' &amp;&amp; field.type !== 'email'">
              <div :class="field.wrapperClass || 'form-input'"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true"></label>
                <input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                  :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
              </div>
            </template></div>
        </template>
        <div id="register-btn" class="form-submit mt-0"><button class="btn box-shadow btn--primary" type="submit">Register</button></div>
      </div>
    </template>
    <div class="d-flex column-gap-10 row-gap-10 form-fields-wrapper"><template x-for="(field, index) in form.fields" :key="index">
        <div class="w-100p maxw-550"><template x-if="field.element === 'input' &amp;&amp; field.type === 'email'">
            <div :class="field.wrapperClass || 'form-input'"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true"></label>
              <template x-if="email !== ''"><input :name="field.name" :value="email" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                  :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
              </template><template x-if="email === ''"><input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                  :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern"></template>
            </div>
          </template><template x-if="field.element === 'input' &amp;&amp; field.type !== 'email'">
            <div :class="field.wrapperClass || 'form-input'"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true"></label>
              <input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
            </div>
          </template></div>
      </template>
      <div class="w-100p maxw-550"><template x-if="field.element === 'input' &amp;&amp; field.type === 'email'">
          <div :class="field.wrapperClass || 'form-input'"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true"></label>
            <template x-if="email !== ''"><input :name="field.name" :value="email" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
            </template><template x-if="email === ''"><input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern"></template>
          </div>
        </template>
        <div :class="field.wrapperClass || 'form-input'" class="form-input"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true">Email*</label>
          <template x-if="email !== ''"><input :name="field.name" :value="email" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
              :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
          </template><template x-if="email === ''"><input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
              :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern"></template><input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type"
            @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label" :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern" name="email"
            placeholder="Email" type="email" class="" aria-label="Email" required="required">
        </div><template x-if="field.element === 'input' &amp;&amp; field.type !== 'email'">
          <div :class="field.wrapperClass || 'form-input'"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true"></label>
            <input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
              :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
          </div>
        </template>
      </div>
      <div id="register-btn" class="form-submit mt-0"><button class="btn box-shadow btn--primary" type="submit">Register</button></div>
    </div>
  </div>
</form>

<form @submit.prevent="submit()"><template x-if="!response">
    <div><template x-for="field in form.fields" :key="field">
        <div class="alpine-form__wrap"><template x-if="field.element === 'input' &amp;&amp; field.type === 'email'">
            <div :class="field.wrapperClass || 'form-input'"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true"></label>
              <template x-if="email !== ''"><input :name="field.name" :value="email" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                  :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
              </template><template x-if="email === ''"><input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                  :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern"></template>
            </div>
          </template><template x-if="field.element === 'input' &amp;&amp; field.type !== 'email'">
            <div :class="field.wrapperClass || 'form-input'"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true"></label>
              <input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
            </div>
          </template>
          <div class="form-submit"><template x-if="form.submit_btn"><button class="btn" :class="form.submit_btn" type="submit" x-text="form.submit"></button>
            </template><template x-if="!form.submit_btn"><button class="btn btn--outline-white btn--form" type="submit">Subscribe</button></template></div>
        </div>
      </template></div>
  </template>
  <div><template x-for="field in form.fields" :key="field">
      <div class="alpine-form__wrap"><template x-if="field.element === 'input' &amp;&amp; field.type === 'email'">
          <div :class="field.wrapperClass || 'form-input'"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true"></label>
            <template x-if="email !== ''"><input :name="field.name" :value="email" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
            </template><template x-if="email === ''"><input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
                :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern"></template>
          </div>
        </template><template x-if="field.element === 'input' &amp;&amp; field.type !== 'email'">
          <div :class="field.wrapperClass || 'form-input'"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true"></label>
            <input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
              :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
          </div>
        </template>
        <div class="form-submit"><template x-if="form.submit_btn"><button class="btn" :class="form.submit_btn" type="submit" x-text="form.submit"></button>
          </template><template x-if="!form.submit_btn"><button class="btn btn--outline-white btn--form" type="submit">Subscribe</button></template></div>
      </div>
    </template>
    <div class="alpine-form__wrap"><template x-if="field.element === 'input' &amp;&amp; field.type === 'email'">
        <div :class="field.wrapperClass || 'form-input'"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true"></label>
          <template x-if="email !== ''"><input :name="field.name" :value="email" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
              :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
          </template><template x-if="email === ''"><input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
              :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern"></template>
        </div>
      </template>
      <div :class="field.wrapperClass || 'form-input'" class="form-input"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true">Email*</label>
        <template x-if="email !== ''"><input :name="field.name" :value="email" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
            :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern">
        </template><template x-if="email === ''"><input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label"
            :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern"></template><input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type"
          @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label" :required="field.required === false ? undefined : true" maxlength="255" :title="field.title" :pattern="field.pattern" name="email"
          placeholder="Email" type="email" class="" aria-label="Email" required="required">
      </div><template x-if="field.element === 'input' &amp;&amp; field.type !== 'email'">
        <div :class="field.wrapperClass || 'form-input'"><label x-text="field.required !== false ? field.label + '*' : field.label" x-show="field.hideLabel === true ? false : true"></label>
          <input :name="field.name" :placeholder="field.placeholder || field.label" :type="field.type" @input="set_value($event, field.name)" :class="field.inputClass" :aria-label="field.label" :required="field.required === false ? undefined : true"
            maxlength="255" :title="field.title" :pattern="field.pattern">
        </div>
      </template>
      <div class="form-submit"><template x-if="form.submit_btn"><button class="btn" :class="form.submit_btn" type="submit" x-text="form.submit"></button>
        </template><template x-if="!form.submit_btn"><button class="btn btn--outline-white btn--form" type="submit">Subscribe</button></template><button class="btn btn--outline-white btn--form" type="submit">Subscribe</button></div>
    </div>
  </div><template x-if="response === true &amp;&amp; form.success">
    <div>
      <p class="h5 form-response form-response__success inter m-0" x-text="form.success"></p>
    </div>
  </template><template x-if="response === true &amp;&amp; !form.success">
    <div>
      <p class="h5 form-response form-response__success inter m-0"></p>
    </div>
  </template><template class="form-response form-response--error mt-1" x-if="response === false">
    <p class="form-response form-response--success text-white mt-1">Sorry, an error occurred. Email <a class="text-white text-underline" href="mailto:update@grafana.com">update@grafana.com</a> for help.</p>
  </template>
</form>

Text Content

Path:

Copied!
 * Products Open Source Solutions Learn Docs Company

 * 
   Downloads Contact us Sign in

Create free account Contact us
Products

All

Products

LGTM+ Stack

Logs

powered by Grafana Loki

Grafana

for visualization

Traces

powered by Grafana Tempo

Metrics

powered by Grafana Mimir and Prometheus

Profiles

powered by Grafana Pyroscope

Key Capabilities

AI/ML insights

Identify anomalies and reduce toil

Contextual root cause analysis

Automated anomaly correlation

SLO management

Create SLOs and error budget alerts

Alerting

Trigger alerts from any data source

Plugins

Connect Grafana to data sources, apps, and more

Observability Solutions

Frontend Observability

Gain real user monitoring insights

Application Observability

Monitor application performance

Infrastructure observability

Ensure infrastructure health and performance

Testing

Performance & load testing

powered by Grafana k6

Synthetic Monitoring

powered by Grafana k6

IRM

OnCall

Observability native incident response

Incident

Observability native incident management

Deploy The Stack

Grafana Cloud

Fully managed

Grafana Enterprise

Self-managed

Pricing

Hint: It starts at FREE

Open Source

All

Open Source

Grafana Loki

Multi-tenant log aggregation system

Grafana

Query, visualize, and alert on data

Grafana Tempo

High-scale distributed tracing backend

Grafana Mimir

Scalable and performant metrics backend

Grafana Pyroscope

Scalable continuous profiling backend

Grafana Beyla

eBPF auto-instrumentation

Grafana Faro

Frontend application observability web SDK

Grafana Alloy

OpenTelemetry Collector distribution with Prometheus pipelines

Grafana OnCall

On-call management

Grafana k6

Load testing for engineering teams

Prometheus

Monitor Kubernetes and cloud native

OpenTelemetry

Instrument and collect telemetry data

Graphite

Scalable monitoring for time series data

All



Community resources

Dashboard templates

Try out and share prebuilt visualizations

Prometheus exporters

Get your metrics into Prometheus quickly

Solutions

All

end-to-end solutions

Opinionated solutions that help you get there easier and faster

Kubernetes Monitoring

Get K8s health, performance, and cost monitoring from cluster to container

Application Observability

Monitor application performance

Frontend Observability

Gain real user monitoring insights

Incident Response & Management

Detect and respond to incidents with a simplified workflow

All monitoring and visualization solutions

monitor infrastructure

Out-of-the-box KPIs, dashboards, and alerts for observability


Linux

Windows

Docker

Postgres

MySQL

AWS

Kafka

Jenkins

RabbitMQ

MongoDB
All monitoring solutions

visualize any data

Instantly connect all your data sources to Grafana


MongoDB

AppDynamics

Oracle

GitLab

Jira

Salesforce

Splunk

Datadog

New Relic

Snowflake
All visualization solutions
Learn

All

Learn

Stay up to date

ObservabilityCON

Annual flagship observability conference

ObservabilityCON on the Road

Observability roadshow series

Blog

News, releases, cool stories, and more

Observability Survey 2024

Key findings and results

New

Story of Grafana

10 years of Grafana

Events

Upcoming in-person and virtual events

Success stories

By use case, product, and industry

Technical learning

Documentation

All the docs

Webinars and videos

Demos, webinars, and feature tours

Tutorials

Step-by-step guides

Workshops

Free, in-person or online

Writers' Toolkit

Contribute to technical documentation provided by Grafana Labs

Plugin development

Visit the Grafana developer portal for tools and resources for extending Grafana
with plugins.

new

Join the community

Community

Join the Grafana community

new

Community forums

Ask the community for help

Community Slack

Real-time engagement

Grafana Champions

Contribute to the community

new

Community organizers

Host local meetups

new
Docs

All

Docs

Grafana

Grafana Mimir

Grafana Tempo

Grafana Loki

Grafana Pyroscope

Grafana Alloy

Grafana Beyla

Grafana Faro

Grafana k6

Prometheus

Writers’ Toolkit

Grafana Cloud

Grafana Cloud k6

Synthetic Monitoring

Grafana Kubernetes Monitoring

Grafana OnCall

Grafana Incident

Grafana SLO

Grafana Alerting

Grafana Machine Learning

Application Observability

Grafana Enterprise

Grafana Enterprise Logs

Grafana Enterprise Metrics

Grafana Enterprise Traces

Grafana plugins

Community plugins

Visit documentation

Get started

Get started with Grafana

Build your first dashboard

Get started with Grafana Cloud

What's new / Release notes

Grafana: 11.3
Grafana k6: 0.54


Grafana Loki: 3.3
Grafana Mimir: 2.14
Grafana Pyroscope: 1.9
Grafana Tempo: 2.6

Company

All

Company

Our team
Careers We're hiring
Events
Partnerships
Newsroom
Contact us
Merch

Help build the future of open source observability software Open positions

Check out the open source projects we support Downloads

Sign in

LGTM+ Stack

Logs

powered by Grafana Loki

Grafana

for visualization

Traces

powered by Grafana Tempo

Metrics

powered by Grafana Mimir and Prometheus

Profiles

powered by Grafana Pyroscope



Key Capabilities

AI/ML insights

Identify anomalies and reduce toil

Contextual root cause analysis

Automated anomaly correlation

SLO management

Create SLOs and error budget alerts

Alerting

Trigger alerts from any data source

Plugins

Connect Grafana to data sources, apps, and more



Observability Solutions

Frontend Observability

Gain real user monitoring insights

Application Observability

Monitor application performance

Infrastructure observability

Ensure infrastructure health and performance



Testing

Performance & load testing

powered by Grafana k6

Synthetic Monitoring

powered by Grafana k6



IRM

OnCall

Observability native incident response

Incident

Observability native incident management



Deploy The Stack

Grafana Cloud

Fully managed

Grafana Enterprise

Self-managed

Pricing

Hint: It starts at FREE


The actually useful free plan
 * Grafana, of course
 * 14 day retention
 * 10k series Prometheus metrics
 * 500 VUh k6 testing
 * 50 GB logs, traces, and profiles
 * 50k frontend sessions
 * 2,232 app o11y host hours
 * 2,232 k8s monitoring host hours
 * 37,944 k8s monitoring container hours
 * and more cool stuff

Create free account No credit card needed, ever.

Grafana Loki

Multi-tenant log aggregation system

Grafana

Query, visualize, and alert on data

Grafana Tempo

High-scale distributed tracing backend

Grafana Mimir

Scalable and performant metrics backend



Grafana Pyroscope

Scalable continuous profiling backend

Grafana Beyla

eBPF auto-instrumentation

Grafana Faro

Frontend application observability web SDK

Grafana Alloy

OpenTelemetry Collector distribution with Prometheus pipelines

Grafana OnCall

On-call management



Grafana k6

Load testing for engineering teams

Prometheus

Monitor Kubernetes and cloud native

OpenTelemetry

Instrument and collect telemetry data

Graphite

Scalable monitoring for time series data

All


Community resources

Dashboard templates
Try out and share prebuilt visualizations
Prometheus exporters
Get your metrics into Prometheus quickly

end-to-end solutions

Opinionated solutions that help you get there easier and faster

Kubernetes Monitoring

Get K8s health, performance, and cost monitoring from cluster to container

Application Observability

Monitor application performance

Frontend Observability

Gain real user monitoring insights

Incident Response & Management

Detect and respond to incidents with a simplified workflow



monitor infrastructure

Out-of-the-box KPIs, dashboards, and alerts for observability

Linux
Windows
Docker
Postgres
MySQL
AWS
Kafka
Jenkins
RabbitMQ
MongoDB

visualize any data

Instantly connect all your data sources to Grafana

MongoDB
AppDynamics
Oracle
GitLab
Jira
Salesforce
Splunk
Datadog
New Relic
Snowflake
All monitoring and visualization solutions

Stay up to date

ObservabilityCON

Annual flagship observability conference

ObservabilityCON on the Road

Observability roadshow series

Blog

News, releases, cool stories, and more

Observability Survey 2024

Key findings and results

New

Story of Grafana

10 years of Grafana

Events

Upcoming in-person and virtual events

Success stories

By use case, product, and industry



Technical learning

Documentation

All the docs

Webinars and videos

Demos, webinars, and feature tours

Tutorials

Step-by-step guides

Workshops

Free, in-person or online

Writers' Toolkit

Contribute to technical documentation provided by Grafana Labs

Plugin development

Visit the Grafana developer portal for tools and resources for extending Grafana
with plugins.

new


Join the community

Community

Join the Grafana community

new

Community forums

Ask the community for help

Community Slack

Real-time engagement

Grafana Champions

Contribute to the community

new

Community organizers

Host local meetups

new


Featured



Getting started with the Grafana LGTM Stack

We’ll demo how to get started using the LGTM Stack: Loki for logs, Grafana for
visualization, Tempo for traces, and Mimir for metrics.

Watch now →

Open source

Grafana

Grafana Mimir

Grafana Tempo

Grafana Loki

Grafana Pyroscope

Grafana Alloy

Grafana Beyla

Grafana Faro

Grafana k6

Prometheus

Writers’ Toolkit



Cloud

Grafana Cloud

Grafana Cloud k6

Synthetic Monitoring

Grafana Kubernetes Monitoring

Grafana OnCall

Grafana Incident

Grafana SLO

Grafana Alerting

Grafana Machine Learning

Application Observability



Enterprise

Grafana Enterprise

Grafana Enterprise Logs

Grafana Enterprise Metrics

Grafana Enterprise Traces

Grafana plugins

Community plugins

Visit documentation


Get started

Get started with Grafana

Build your first dashboard

Get started with Grafana Cloud

What's new / Release notes

Grafana: 11.3
Grafana k6: 0.54


Grafana Loki: 3.3
Grafana Mimir: 2.14
Grafana Pyroscope: 1.9
Grafana Tempo: 2.6

Our team
Careers We're hiring
Events
Partnerships
Newsroom
Contact us
Merch

Grot good

Grot bad Feedback




Grot good

Grot bad Feedback


I’m a beta, not like one of those pretty fighting fish, but like an early test
version. Our lawyers want you to know that my answers may be wrong or not fully
up to date, so please provide feedback to help me improve.

← Go back


FEEDBACK

Write a short description about your experience with Grot, our AI Beta.

Rate your experience (required)




Comments (required)

Send Sending...
Sent

Thank you! Your message has been received!



Would you like an AI-generated summary of this page in your language?

Select language
GermanEnglishSpanishFrenchItalianJapaneseKoreanBrazilian
PortugueseRussianChinese
Yes No, thanks

We cannot remember your choice unless you click the consent notice at the
bottom.

I am Grot, your AI helper. Ask me anything.

Grot good

Grot bad Feedback


RELEVANT SOURCES:


I’m a beta, not like one of those pretty fighting fish, but like an early test
version. Our lawyers want you to know that my answers may be wrong or not fully
up to date, so please provide feedback to help me improve.


I am Grot, your AI helper. Ask me anything.

Grot good

Grot bad Feedback


RELEVANT SOURCES:


I’m a beta, not like one of those pretty fighting fish, but like an early test
version. Our lawyers want you to know that my answers may be wrong or not fully
up to date, so please provide feedback to help me improve.


← Go back


FEEDBACK

Write a short description about your experience with Grot, our AI Beta.

Rate your experience (required)




Comments (required)

Send
Sent

Thank you! Your message has been received!




Webinar


HOW TO GET STARTED WITH LOGGING USING GRAFANA LOKI

Jan 7, 2025
Happening now!
09:30 PT, 12:30 ET, 17:30UTCAETCTCETISTSGT
On-demand
This webinar has concluded
English EnglishPortuguese (Brazil)
 * Portuguese (Brazil)

Sign up for this webinar
Register
Email*

Register

Sorry, an error occurred. For help, email us at update@grafana.com

Sorry, this event is only open to select companies.

Note: By registering, you agree to be emailed information about this event
recording and related product-level information.
Sign up for this webinar
Register
Email*

Register

Sorry, an error occurred. For help, email us at update@grafana.com

Sorry, this event is only open to select companies.

Note: By registering, you agree to be emailed information about this event
recording and related product-level information.
Join the webinar
Join now
Email*

Join now

Sorry, an error occurred. For help, email us at update@grafana.com

Sorry, this event is only open to select companies.

Note: By registering, you agree to be emailed information about this event
recording and related product-level information.
Get notified about the on-demand recording
Register
Email*

Register

Sorry, an error occurred. For help, email us at update@grafana.com

Sorry, this event is only open to select companies.

Note: By registering, you agree to be emailed information about this event
recording and related product-level information.
Register to watch the on-demand recording
Register
Email*

Register

Sorry, an error occurred. For help, email us at update@grafana.com

Sorry, this event is only open to select companies.

Note: By registering, you agree to be emailed information about this event
recording and related product-level information.
You are registered for this webinar Thanks for registering
You'll receive an email confirmation, and a reminder on the day of the event.
You'll receive an email when the on-demand video is available.
Share this:
Join the webinar
Sorry, an error occurred. For help, email us at update@grafana.com



WHAT YOU'LL LEARN

 1. Learn what is Grafana Loki and what it does
 2. Get a high level overview of how Loki works, what makes it different, and
    what it’s good at
 3. See a demo of new and updated Loki 3.0 features so you can learn how to
    create metrics from logs and alert on your logs with powerful
    Prometheus-style alerting rules


LOKI IS A HORIZONTALLY SCALABLE, HIGHLY AVAILABLE, MULTI-TENANT LOG AGGREGATION
SYSTEM INSPIRED BY PROMETHEUS. 

Grafana’s Loki open source project for logging aggregation has seen a great
uptick in adoption by users benefiting from its small index, ease of use, and
cost-effectiveness. Enterprises like Grofers and Paytm Insider are using Loki in
both Grafana Labs’ hosted offering and on premise. And with recent Grafana Loki
releases, we’ve made big gains for improving performance through parallelization
and query optimization.

In this webinar you’ll hear about the key benefits of Loki 3.0 and get a live
demo of the set of query language features that lets you extract more labels at
query time to allow for query possibilities only limited by your imagination!
You’ll also learn how to create metrics from logs and alert on your logs with
powerful Prometheus-style alerting rules.

--------------------------------------------------------------------------------


YOUR GUIDE

Aldhair Martinez
Associate Solutions Engineer

--------------------------------------------------------------------------------


TAGS

Grafana Loki Grafana Cloud Logs Logs

--------------------------------------------------------------------------------

Resources
Get started quickly with the Grafana Cloud free tier
 * 10k metrics
 * 50GB logs
 * 50GB traces
 * 50GB profiles
 * And more

--------------------------------------------------------------------------------

Scaling and securing your logs with Grafana LokiVideo

--------------------------------------------------------------------------------

Loki 3.0 release: Bloom filters, native OpenTelemetry support, and more!Post

--------------------------------------------------------------------------------

Grafana Loki on GitHub


MORE GREAT VIDEOS AND WEBINARS

On-demand video


SCALING AND SECURING YOUR LOGS WITH GRAFANA LOKI

This webinar covers the challenges of scaling and securing logs, and how Grafana
Enterprise Logs powered by Grafana Loki can help, cost-effectively.
On-demand video


HOW BOOKING.COM REDEFINED AGNOSTIC OBSERVABILITY WITH GRAFANA LABS

Join Booking.Com's Murugesan Ramaiah and Ahmadali Shafiee to learn how the
company uses Grafana Labs observability to make it easier for engineering...
On-demand video


BUILDING SCALABLE OSS OBSERVABILITY WITH MIMIR, LOKI, TEMPO, AND PYROSCOPE

Get the latest news about the scalability and performance of the open source
telemetry backends that make up the Grafana LGTM Stack: Grafana Mimir for...

Sign up for Grafana stack updates
Subscribe
Subscribe
Email*

SubscribeSubscribe





Sorry, an error occurred. Email update@grafana.com for help.

Note: By signing up, you agree to be emailed related product-level information.

--------------------------------------------------------------------------------



--------------------------------------------------------------------------------

 * Grafana
 * Overview
 * Deployment options
 * Plugins
 * Dashboards

 * Products
 * Grafana Cloud
 * Grafana Cloud Status
 * Grafana Enterprise Stack
 * AI/ML tools for observability
 * Contextual root cause analysis | Grafana Cloud Asserts
 * Grafana Cloud Application Observability
 * Grafana Cloud Frontend Observability
 * Grafana Cloud k6
 * Grafana Cloud Logs
 * Grafana Cloud Metrics
 * Grafana Cloud Profiles
 * Grafana Cloud Synthetic Monitoring
 * Grafana Cloud Traces
 * Grafana IRM
 * Grafana SLO

 * Open Source
 * Grafana
 * Grafana Loki
 * Grafana Mimir
 * Grafana OnCall
 * Grafana Tempo
 * Grafana Agent
 * Grafana Alloy
 * Grafana k6
 * Prometheus
 * Grafana Faro
 * Grafana Pyroscope
 * Grafana Beyla
 * OpenTelemetry
 * Grafana Tanka
 * Graphite
 * GitHub

 * Learn
 * Grafana Labs blog
 * Documentation
 * Downloads
 * Community
 * Community forums
 * Community Slack
 * Grafana Champions
 * Community organizers
 * ObservabilityCON
 * GrafanaCON
 * The Golden Grot Awards
 * Successes
 * Workshops
 * Videos
 * OSS vs Cloud
 * Load testing
 * Log monitoring
 * Authors

 * Company
 * 
 * The team
 * Press
 * Careers
 * 
 * Partnerships
 * Contact Us | Grafana Labs
 * Getting help
 * Merch

 * Localized content
 * Japanese pages
 * German pages
 * French pages
 * Spanish pages
 * Portuguese pages

--------------------------------------------------------------------------------

Grafana Cloud Status
Legal and Security
Terms of Service
Privacy Policy
Trademark Policy
Copyright 2024 © Grafana Labs
Grafana Labs uses cookies for the normal operation of this website. Learn more.
Got it!

word word word word word word word word word word word word word word word word
word word word word word word word word word word word word word word word word
word word word word word word word word word word word word word word word word
word word word word word word word word word word word word word word word word
word word word word word word word word word word word word word word word word
word word word word word word word word word word word word word word word word
word word word word word word word word word word word word word word word word
word word word word word word word word word word word word word word word word
word word word word word word word word word word word word word word word word
word word word word word word word word word word word word word word word word
word word word word word word word word word word word word word word word word
word word word word word word word word word word word word word word word word
word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1