Filtering Enabled Collectors










0















The Prometheus node exporter does not have a simple way to disable all default metrics without passing 20 flags to the process. In the documentation it looks like there might be an easier way to fetch only the relevant metrics:




Filtering enabled collectors



...



For advanced use the node_exporter can be passed an optional list of collectors to filter metrics. The collect parameter may be used multiple times. In Prometheus configuration you can use this syntax under the scrape config.



params:
collect:
- foo
- bar


This can be useful for having different Prometheus servers collect specific metrics from nodes.




My assumption is you put the params directly under your scrape_config because there's a matching params field. However, what exactly is supposed to go under collect? The examples foo and bar couldn't be any less descriptive. Is it the command-line argument (e.g., "--collector.cpu"), the collector name (e.g., "cpu"), the collector metric name (e.g., "node_cpu"), the actual metric (e.g., "node_cpu_seconds_total"), or something else?










share|improve this question


























    0















    The Prometheus node exporter does not have a simple way to disable all default metrics without passing 20 flags to the process. In the documentation it looks like there might be an easier way to fetch only the relevant metrics:




    Filtering enabled collectors



    ...



    For advanced use the node_exporter can be passed an optional list of collectors to filter metrics. The collect parameter may be used multiple times. In Prometheus configuration you can use this syntax under the scrape config.



    params:
    collect:
    - foo
    - bar


    This can be useful for having different Prometheus servers collect specific metrics from nodes.




    My assumption is you put the params directly under your scrape_config because there's a matching params field. However, what exactly is supposed to go under collect? The examples foo and bar couldn't be any less descriptive. Is it the command-line argument (e.g., "--collector.cpu"), the collector name (e.g., "cpu"), the collector metric name (e.g., "node_cpu"), the actual metric (e.g., "node_cpu_seconds_total"), or something else?










    share|improve this question
























      0












      0








      0








      The Prometheus node exporter does not have a simple way to disable all default metrics without passing 20 flags to the process. In the documentation it looks like there might be an easier way to fetch only the relevant metrics:




      Filtering enabled collectors



      ...



      For advanced use the node_exporter can be passed an optional list of collectors to filter metrics. The collect parameter may be used multiple times. In Prometheus configuration you can use this syntax under the scrape config.



      params:
      collect:
      - foo
      - bar


      This can be useful for having different Prometheus servers collect specific metrics from nodes.




      My assumption is you put the params directly under your scrape_config because there's a matching params field. However, what exactly is supposed to go under collect? The examples foo and bar couldn't be any less descriptive. Is it the command-line argument (e.g., "--collector.cpu"), the collector name (e.g., "cpu"), the collector metric name (e.g., "node_cpu"), the actual metric (e.g., "node_cpu_seconds_total"), or something else?










      share|improve this question














      The Prometheus node exporter does not have a simple way to disable all default metrics without passing 20 flags to the process. In the documentation it looks like there might be an easier way to fetch only the relevant metrics:




      Filtering enabled collectors



      ...



      For advanced use the node_exporter can be passed an optional list of collectors to filter metrics. The collect parameter may be used multiple times. In Prometheus configuration you can use this syntax under the scrape config.



      params:
      collect:
      - foo
      - bar


      This can be useful for having different Prometheus servers collect specific metrics from nodes.




      My assumption is you put the params directly under your scrape_config because there's a matching params field. However, what exactly is supposed to go under collect? The examples foo and bar couldn't be any less descriptive. Is it the command-line argument (e.g., "--collector.cpu"), the collector name (e.g., "cpu"), the collector metric name (e.g., "node_cpu"), the actual metric (e.g., "node_cpu_seconds_total"), or something else?







      prometheus prometheus-node-exporter






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 15 '18 at 18:06









      cpburnzcpburnz

      9,1542077106




      9,1542077106






















          2 Answers
          2






          active

          oldest

          votes


















          1














          There is another solution that is generic and can work with all exporters. relabel_map_config is a configuration option that can be set inside the prometheus config file. As specified in the documentation:




          One use for this is to blacklist time series that are too expensive to
          ingest.




          Thus you can drop or keep metrics that match a regex. For instance, to only store the cpu metrics collected by the node exporter, you can use the following inside the prometheus.yml file:



          scrape_configs:
          - job_name: node
          static_configs:
          - targets:
          - localhost:9100
          metric_relabel_configs:
          - source_labels: [__name__]
          regex: node_cpu_.*
          action: keep





          share|improve this answer


















          • 1





            That feature looks more useful.

            – cpburnz
            Nov 17 '18 at 15:17


















          0














          From testing the node collector the collect parameter must be the collector name. E.g., the name from --collector.cpu is cpu.



          If you specify an invalid collector such as foo, you'll receive the following HTTP "400 Bad Request" message:



          Couldn't create missing collector: foo





          share|improve this answer






















            Your Answer






            StackExchange.ifUsing("editor", function ()
            StackExchange.using("externalEditor", function ()
            StackExchange.using("snippets", function ()
            StackExchange.snippets.init();
            );
            );
            , "code-snippets");

            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "1"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53325478%2ffiltering-enabled-collectors%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            1














            There is another solution that is generic and can work with all exporters. relabel_map_config is a configuration option that can be set inside the prometheus config file. As specified in the documentation:




            One use for this is to blacklist time series that are too expensive to
            ingest.




            Thus you can drop or keep metrics that match a regex. For instance, to only store the cpu metrics collected by the node exporter, you can use the following inside the prometheus.yml file:



            scrape_configs:
            - job_name: node
            static_configs:
            - targets:
            - localhost:9100
            metric_relabel_configs:
            - source_labels: [__name__]
            regex: node_cpu_.*
            action: keep





            share|improve this answer


















            • 1





              That feature looks more useful.

              – cpburnz
              Nov 17 '18 at 15:17















            1














            There is another solution that is generic and can work with all exporters. relabel_map_config is a configuration option that can be set inside the prometheus config file. As specified in the documentation:




            One use for this is to blacklist time series that are too expensive to
            ingest.




            Thus you can drop or keep metrics that match a regex. For instance, to only store the cpu metrics collected by the node exporter, you can use the following inside the prometheus.yml file:



            scrape_configs:
            - job_name: node
            static_configs:
            - targets:
            - localhost:9100
            metric_relabel_configs:
            - source_labels: [__name__]
            regex: node_cpu_.*
            action: keep





            share|improve this answer


















            • 1





              That feature looks more useful.

              – cpburnz
              Nov 17 '18 at 15:17













            1












            1








            1







            There is another solution that is generic and can work with all exporters. relabel_map_config is a configuration option that can be set inside the prometheus config file. As specified in the documentation:




            One use for this is to blacklist time series that are too expensive to
            ingest.




            Thus you can drop or keep metrics that match a regex. For instance, to only store the cpu metrics collected by the node exporter, you can use the following inside the prometheus.yml file:



            scrape_configs:
            - job_name: node
            static_configs:
            - targets:
            - localhost:9100
            metric_relabel_configs:
            - source_labels: [__name__]
            regex: node_cpu_.*
            action: keep





            share|improve this answer













            There is another solution that is generic and can work with all exporters. relabel_map_config is a configuration option that can be set inside the prometheus config file. As specified in the documentation:




            One use for this is to blacklist time series that are too expensive to
            ingest.




            Thus you can drop or keep metrics that match a regex. For instance, to only store the cpu metrics collected by the node exporter, you can use the following inside the prometheus.yml file:



            scrape_configs:
            - job_name: node
            static_configs:
            - targets:
            - localhost:9100
            metric_relabel_configs:
            - source_labels: [__name__]
            regex: node_cpu_.*
            action: keep






            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Nov 17 '18 at 15:03









            yamenkyamenk

            13.9k31733




            13.9k31733







            • 1





              That feature looks more useful.

              – cpburnz
              Nov 17 '18 at 15:17












            • 1





              That feature looks more useful.

              – cpburnz
              Nov 17 '18 at 15:17







            1




            1





            That feature looks more useful.

            – cpburnz
            Nov 17 '18 at 15:17





            That feature looks more useful.

            – cpburnz
            Nov 17 '18 at 15:17













            0














            From testing the node collector the collect parameter must be the collector name. E.g., the name from --collector.cpu is cpu.



            If you specify an invalid collector such as foo, you'll receive the following HTTP "400 Bad Request" message:



            Couldn't create missing collector: foo





            share|improve this answer



























              0














              From testing the node collector the collect parameter must be the collector name. E.g., the name from --collector.cpu is cpu.



              If you specify an invalid collector such as foo, you'll receive the following HTTP "400 Bad Request" message:



              Couldn't create missing collector: foo





              share|improve this answer

























                0












                0








                0







                From testing the node collector the collect parameter must be the collector name. E.g., the name from --collector.cpu is cpu.



                If you specify an invalid collector such as foo, you'll receive the following HTTP "400 Bad Request" message:



                Couldn't create missing collector: foo





                share|improve this answer













                From testing the node collector the collect parameter must be the collector name. E.g., the name from --collector.cpu is cpu.



                If you specify an invalid collector such as foo, you'll receive the following HTTP "400 Bad Request" message:



                Couldn't create missing collector: foo






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 16 '18 at 14:56









                cpburnzcpburnz

                9,1542077106




                9,1542077106



























                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53325478%2ffiltering-enabled-collectors%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    這個網誌中的熱門文章

                    How to read a connectionString WITH PROVIDER in .NET Core?

                    Node.js Script on GitHub Pages or Amazon S3

                    Museum of Modern and Contemporary Art of Trento and Rovereto