Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2015 Attribyte, LLC
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   * http://www.apache.org/licenses/LICENSE-2.0
   *
  * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and limitations under the License.
  *
  */
 
 package org.attribyte.essem.sysmon.linux;
 
 
 import java.util.Map;

Establish metrics for filesystems.
 
 public class Storage {

   
A filesystem: '/dev/sd1', 'tmpfs' etc.
 
    public static class Filesystem implements MetricSet {
 
       private Filesystem(final FileStore store) {
          this. = cleanName(store.name());
          this. = store.type();
          ImmutableMap.Builder<StringMetricbuilder = ImmutableMap.builder();
 
          builder.put("total"new Gauge<Long>() {
             public Long getValue() {
                try {
                   return store.getTotalSpace();
                } catch(IOException ioe) {
                   return 0L;
                }
             }
          });
 
          builder.put("usable"new Gauge<Long>() {
             public Long getValue() {
                try {
                   return store.getUsableSpace();
                } catch(IOException ioe) {
                   return 0L;
                }
             }
          });
 
          builder.put("unallocated"new Gauge<Long>() {
             public Long getValue() {
                try {
                   return store.getUnallocatedSpace();
                } catch(IOException ioe) {
                   return 0L;
                }
             }
          });
 
          this. = builder.build();
       }
 
       @Override
       public Map<StringMetricgetMetrics() {
          return ;
       }

      
The filesystem name.
 
       public final String name;

      
The filesystem type (ext4, tmpfs, etc).
 
       public final String type;
 
       private final ImmutableMap<StringMetricmetrics;
 
       private String cleanName(final String name) {
          return name.startsWith("/") ? name.substring(1) : name;
       }
    }

   
Enumerate all filesystems.

   public Storage() throws IOException {
      FileSystem fileSystem = FileSystems.getDefault();
      ImmutableList.Builder<Filesystembuilder = ImmutableList.builder();
      for(FileStore store : fileSystem.getFileStores()) {
         Filesystem system = new Filesystem(store);
         builder.add(system);
      }
      this. = builder.build();
   }

   
An immutable map of all filesystems (vs name).
   public final ImmutableList<Filesystemfilesystems;
New to GrepCode? Check out our FAQ X