diff --git a/templates/fluentbit-metrics/service.yaml b/templates/fluentbit-metrics/service.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..194a6840423a8e1160df6e21b84311d4a734202e
--- /dev/null
+++ b/templates/fluentbit-metrics/service.yaml
@@ -0,0 +1,16 @@
+{{- if and .Values.metrics.enabled -}}
+apiVersion: v1
+kind: Service
+metadata:
+  name: it-monit-metrics-fluentbit
+  namespace: {{ .Release.Namespace }}
+  labels:
+    name: it-monit-metrics-collector-fluentbit
+spec:
+  clusterIP: None
+  ports:
+  - name: http
+    port: {{ .Values.metrics.fluentbit.prometheusRemoteWriteInputConfig.port }}
+  selector:
+    name: it-monit-metrics-collector-fluentbit
+{{- end -}}
diff --git a/templates/fluentbit-metrics/statefulset.yaml b/templates/fluentbit-metrics/statefulset.yaml
index 15f0f23277d3426311962f8de73bff617d17800f..32eff7768621b8aa3820ba87033168870b4bb4ae 100644
--- a/templates/fluentbit-metrics/statefulset.yaml
+++ b/templates/fluentbit-metrics/statefulset.yaml
@@ -8,7 +8,7 @@ spec:
   selector:
       matchLabels:
         name: it-monit-metrics-collector-fluentbit
-  replicas: 1
+  replicas: {{ .Values.metrics.fluentbit.replicas }}
   template:
     metadata:
       name: it-monit-metrics-collector-fluentbit
diff --git a/templates/prometheus/prometheus.yaml b/templates/prometheus/prometheus.yaml
index 65382e98fe08bafe15861071b002f685a4de4ec9..10b257359018fa5aa50c8565898d42d92291dc0a 100644
--- a/templates/prometheus/prometheus.yaml
+++ b/templates/prometheus/prometheus.yaml
@@ -37,24 +37,31 @@ spec:
   scrapeConfigNamespaceSelector: {}
   ruleSelector: {}
   ruleNamespaceSelector: {}
-  {{if .Values.metrics.prometheus.server.remoteWrite.endpoint }}
   remoteWrite:
-  - url: {{ .Values.metrics.prometheus.server.remoteWrite.endpoint }}
-    tlsConfig:
-      insecureSkipVerify: true
-    basicAuth:
-      username:
-        name: it-monit-metrics-collector-prometheus
-        key: username
-      password:
-        name: it-monit-metrics-collector-prometheus
-        key: password
-  {{ end }}
-  {{- if .Values.metrics.alertmanager.enabled }}
-  alerting:
-    alertmanagers:
-      - namespace: {{ .Release.Namespace }}
-        name: it-monit-alertmanager
-        port: http
-  {{- end }}
+    - url: "http://it-monit-metrics-fluentbit:8080/api/prom/push"
+      protobuf_message: io.prometheus.write.v2.Request
+      queue_config:
+        capacity: 5000
+        max_samples_per_send: 1000
+        batch_send_deadline: 5s
+      write_relabel_configs:
+        - source_labels: [__name__]
+          regex: 'temp.*'
+          action: drop
+        - regex: '(id|uuid)'
+          action: labeldrop
+      metadata_config:
+        send: false
+    {{if .Values.metrics.prometheus.server.remoteWrite.endpoint }}
+    - url: {{ .Values.metrics.prometheus.server.remoteWrite.endpoint }}
+      tlsConfig:
+        insecureSkipVerify: true
+      basicAuth:
+        username:
+          name: it-monit-metrics-collector-prometheus
+          key: username
+        password:
+          name: it-monit-metrics-collector-prometheus
+          key: password
+    {{ end }}
 {{- end -}}
diff --git a/values.yaml b/values.yaml
index a49c9ee776674a827f814d774eaf3d87693c6f89..c5e5dd6618c5530da7712291146100bf0c089cc3 100644
--- a/values.yaml
+++ b/values.yaml
@@ -125,6 +125,7 @@ metrics:
   fluentbit:
     # -- if true fluentbit metrics forwarder will be installed
     enabled: true
+    replicas: 2
     # If set it will override the metrics.defaultNodeSelector.
     nodeSelector: {}
     resources:
@@ -134,12 +135,16 @@ metrics:
       limits:
         cpu: "1"
         memory: "1Gi"
-
-    matchQuery: "match[]={job!=\"\"}"
-    # -- interval used by fluentbit to scrape metrics from prometheus
-    prometheusScrapeInterval: "60s"
-    # -- fluentbit buffer size. The more metrics to send the bigger needs to be
-    prometheusScrapeBufferMaxSize: "100M"
+    prometheusRemoteWriteInputConfig:
+      listen: 0.0.0.0
+      port: 8080
+      bufferMaxSize: 2G
+      bufferChunkSize: 128M
+      successfulResponseCode: 201
+      tagFromUri: false
+      tag: monit.prom.k8s
+      uri: /api/prom/push
+      threaded: false
 
     # -- max size for in-disk storage for fluent-bit
     diskMaxCache: "5G"
@@ -163,14 +168,16 @@ metrics:
 
     # -- fluentbit inputs as a yaml list in a multiline string
     inputs: |
-      - name: prometheus_scrape
-        tag: monit.prom.k8s
-        host: prometheus-operated.{{ .Release.Namespace }}.svc.cluster.local
-        port: 9090
-        storage.type: filesystem
-        scrape_interval: {{ .Values.metrics.fluentbit.prometheusScrapeInterval }}
-        metrics_path: /federate?{{ .Values.metrics.fluentbit.matchQuery }}
-        buffer_max_size: {{ .Values.metrics.fluentbit.prometheusScrapeBufferMaxSize }}
+      - name: prometheus_remote_write
+        tag: {{ .Values.metrics.fluentbit.prometheusRemoteWriteInputConfig.tag }}
+        listen: {{ .Values.metrics.fluentbit.prometheusRemoteWriteInputConfig.listen }}
+        port: {{ .Values.metrics.fluentbit.prometheusRemoteWriteInputConfig.port }}
+        uri: {{ .Values.metrics.fluentbit.prometheusRemoteWriteInputConfig.uri }}
+        buffer_max_size: {{ .Values.metrics.fluentbit.prometheusRemoteWriteInputConfig.bufferMaxSize }}
+        buffer_chunk_size: {{ .Values.metrics.fluentbit.prometheusRemoteWriteInputConfig.bufferChunkSize }}
+        successful_response_code: {{ .Values.metrics.fluentbit.prometheusRemoteWriteInputConfig.successfulResponseCode }}
+        tag_from_uri: {{ .Values.metrics.fluentbit.prometheusRemoteWriteInputConfig.tagFromUri }}
+        threaded: {{ .Values.metrics.fluentbit.prometheusRemoteWriteInputConfig.threaded }}
 
     # -- fluentbit filters as a yaml list in a multiline string
     filters: |