Question #269965 on Graphite changed: https://answers.launchpad.net/graphite/+question/269965
Status: Needs information => Open Yue Zhang gave more information on the question: Actually I have tried a lot of times but can not regenerate the "Protocol wrong type for socket" but again got this every time: [03/Aug/2015 21:07:06]"GET /render/?width=1041&height=542&_salt=1438661217.502 HTTP/1.1" 200 4 - Broken pipe from ('127.0.0.1', 52538) There are nothing special about my setup, I use a Mac 10.10 and totally follow the documentation to follow the initialization, everything is default except the "CARBONLINK_HASHING_KEYFUNC" in local_settings.py, which I set it to "None". And I followed this link to get started: http://graphite.wikidot.com/quickstart-guide. Below is my whole local_settings.py: ## Graphite local_settings.py # Edit this file to customize the default Graphite webapp settings # # Additional customizations to Django settings can be added to this file as well ##################################### # General Configuration # ##################################### # Set this to a long, random unique string to use as a secret key for this # install. This key is used for salting of hashes used in auth tokens, # CRSF middleware, cookie storage, etc. This should be set identically among # instances if used behind a load balancer. SECRET_KEY = 'UNSAFE_DEFAULT' # In Django 1.5+ set this to the list of hosts your graphite instances is # accessible as. See: # https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-ALLOWED_HOSTS ALLOWED_HOSTS = [ '*' ] # Set your local timezone (Django's default is America/Chicago) # If your graphs appear to be offset by a couple hours then this probably # needs to be explicitly set to your local timezone. TIME_ZONE = 'America/Los_Angeles' # Override this to provide documentation specific to your Graphite deployment DOCUMENTATION_URL = "http://graphite.readthedocs.org/" # Metric data and graphs are cached for one minute by default DEFAULT_CACHE_DURATION = 60 # Logging LOG_RENDERING_PERFORMANCE = True LOG_CACHE_PERFORMANCE = True LOG_METRIC_ACCESS = True # Enable full debug page display on exceptions (Internal Server Error pages) DEBUG = True # If using RRD files and rrdcached, set to the address or socket of the daemon FLUSHRRDCACHED = 'unix:/var/run/rrdcached.sock' # This lists the memcached servers that will be used by this webapp. # If you have a cluster of webapps you should ensure all of them # have the *exact* same value for this setting. That will maximize cache # efficiency. Setting MEMCACHE_HOSTS to be empty will turn off use of # memcached entirely. # # You should not use the loopback address (127.0.0.1) here if using clustering # as every webapp in the cluster should use the exact same values to prevent # unneeded cache misses. Set to [] to disable caching of images and fetched data MEMCACHE_HOSTS = ['10.10.10.10:11211', '10.10.10.11:11211', '10.10.10.12:11211'] DEFAULT_CACHE_DURATION = 60 # Cache images and data for 1 minute MEMCACHE_KEY_PREFIX = 'graphite' # Set URL_PREFIX when deploying graphite-web to a non-root location URL_PREFIX = '/graphite' ##################################### # Filesystem Paths # ##################################### # Change only GRAPHITE_ROOT if your install is merely shifted from /opt/graphite # to somewhere else GRAPHITE_ROOT = '/opt/graphite' # Most installs done outside of a separate tree such as /opt/graphite will only # need to change these three settings. Note that the default settings for each # of these is relative to GRAPHITE_ROOT CONF_DIR = '/opt/graphite/conf' STORAGE_DIR = '/opt/graphite/storage' STATIC_ROOT = '/opt/graphite/static' # To further or fully customize the paths, modify the following. Note that the # default settings for each of these are relative to CONF_DIR and STORAGE_DIR # ## Webapp config files DASHBOARD_CONF = '/opt/graphite/conf/dashboard.conf' GRAPHTEMPLATES_CONF = '/opt/graphite/conf/graphTemplates.conf' ## Data directories # NOTE: If any directory is unreadable in STANDARD_DIRS it will break metric browsing CERES_DIR = '/opt/graphite/storage/ceres' WHISPER_DIR = '/opt/graphite/storage/whisper' RRD_DIR = '/opt/graphite/storage/rrd' # Data directories using the "Standard" finder (i.e. not Ceres) STANDARD_DIRS = [WHISPER_DIR, RRD_DIR] # Default: set from the above variables LOG_DIR = '/opt/graphite/storage/log/webapp' INDEX_FILE = '/opt/graphite/storage/index' # Search index file ##################################### # Email Configuration # ##################################### # This is used for emailing rendered Graphs # Default backend is SMTP EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = 'localhost' EMAIL_PORT = 25 EMAIL_HOST_USER = '' EMAIL_HOST_PASSWORD = '' EMAIL_USE_TLS = False # To drop emails on the floor, enable the Dummy backend: EMAIL_BACKEND = 'django.core.mail.backends.dummy.EmailBackend' ##################################### # Authentication Configuration # ##################################### ## LDAP / ActiveDirectory authentication setup USE_LDAP_AUTH = True LDAP_SERVER = "ldap.mycompany.com" LDAP_PORT = 389 LDAP_USE_TLS = False # OR LDAP_URI = "ldaps://ldap.mycompany.com:636" LDAP_SEARCH_BASE = "OU=users,DC=mycompany,DC=com" LDAP_BASE_USER = "CN=some_readonly_account,DC=mycompany,DC=com" LDAP_BASE_PASS = "readonly_account_password" LDAP_USER_QUERY = "(username=%s)" #For Active Directory use "(sAMAccountName=%s)" # # If you want to further customize the ldap connection options you should # directly use ldap.set_option to set the ldap module's global options. # For example: # #import ldap #ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_ALLOW) # Use ldap.OPT_X_TLS_DEMAND to force TLS #ldap.set_option(ldap.OPT_REFERRALS, 0) # Enable for Active Directory #ldap.set_option(ldap.OPT_X_TLS_CACERTDIR, "/etc/ssl/ca") #ldap.set_option(ldap.OPT_X_TLS_CERTFILE, "/etc/ssl/mycert.pem") #ldap.set_option(ldap.OPT_X_TLS_KEYFILE, "/etc/ssl/mykey.pem") #ldap.set_option(ldap.OPT_DEBUG_LEVEL, 65535) # To enable verbose debugging # See http://www.python-ldap.org/ for further details on these options. ## REMOTE_USER authentication. See: https://docs.djangoproject.com/en/dev/howto/auth-remote-user/ USE_REMOTE_USER_AUTHENTICATION = True # Override the URL for the login link (e.g. for django_openid_auth) LOGIN_URL = '/account/login' ############################### # Authorization for Dashboard # ############################### # By default, there is no security on dashboards - any user can add, change or delete them. # This section provides 3 different authorization models, of varying strictness. # If set to True, users must be logged in to save or delete dashboards. Defaults to False DASHBOARD_REQUIRE_AUTHENTICATION = True # If set to the name of a user group, dashboards can be saved and deleted by any user in this # group. Groups can be set in the Django Admin app, or in LDAP. Defaults to None. # NOTE: Ignored if DASHBOARD_REQUIRE_AUTHENTICATION is not set DASHBOARD_REQUIRE_EDIT_GROUP = 'dashboard-editors-group' # If set to True, dashboards can be saved or deleted by any user having the appropriate # (change or delete) permission (as set in the Django Admin app). Defaults to False # NOTE: Ignored if DASHBOARD_REQUIRE_AUTHENTICATION is not set DASHBOARD_REQUIRE_PERMISSIONS = True ########################## # Database Configuration # ########################## # By default sqlite is used. If you cluster multiple webapps you will need # to setup an external database (such as MySQL) and configure all of the webapp # instances to use the same database. Note that this database is only used to store # Django models such as saved graphs, dashboards, user preferences, etc. # Metric data is not stored here. # # DO NOT FORGET TO RUN 'django-admin.py syncdb' AFTER SETTING UP A NEW DATABASE # # The following built-in database engines are available: # django.db.backends.postgresql_psycopg2 # django.db.backends.mysql # django.db.backends.sqlite3 # django.db.backends.oracle # # The default is 'django.db.backends.sqlite3' with file 'graphite.db' # located in STORAGE_DIR # DATABASES = { 'default': { 'NAME': '/opt/graphite/storage/graphite.db', 'ENGINE': 'django.db.backends.sqlite3', 'USER': '', 'PASSWORD': '', 'HOST': '', 'PORT': '' } } # ######################### # Cluster Configuration # ######################### # (To avoid excessive DNS lookups you want to stick to using IP addresses only in this entire section) # # This should list the IP address (and optionally port) of the webapp on each # remote server in the cluster. These servers must each have local access to # metric data. Note that the first server to return a match for a query will be # used. CLUSTER_SERVERS = ["10.0.2.2:80", "10.0.2.3:80"] # These are timeout values (in seconds) for requests to remote webapps REMOTE_FIND_TIMEOUT = 3.0 # Timeout for metric find requests REMOTE_FETCH_TIMEOUT = 6.0 # Timeout to fetch series data REMOTE_RETRY_DELAY = 60.0 # Time before retrying a failed remote webapp REMOTE_EXCLUDE_LOCAL = False # Try to detect when a cluster server is localhost and don't forward queries REMOTE_READER_CACHE_SIZE_LIMIT = 1000 # Maximum number of remote URL queries to cache FIND_CACHE_DURATION = 300 # Time to cache remote metric find results # If the query doesn't fall entirely within the FIND_TOLERANCE window # we disregard the window. This prevents unnecessary remote fetches # caused when carbon's cache skews node.intervals, giving the appearance # remote systems have data we don't have locally, which we probably do. FIND_TOLERANCE = 2 * FIND_CACHE_DURATION ## Remote rendering settings # Set to True to enable rendering of Graphs on a remote webapp REMOTE_RENDERING = True # List of IP (and optionally port) of the webapp on each remote server that # will be used for rendering. Note that each rendering host should have local # access to metric data or should have CLUSTER_SERVERS configured RENDERING_HOSTS = [] REMOTE_RENDER_CONNECT_TIMEOUT = 1.0 # If you are running multiple carbon-caches on this machine (typically behind a relay using # consistent hashing), you'll need to list the ip address, cache query port, and instance name of each carbon-cache # instance on the local machine (NOT every carbon-cache in the entire cluster). The default cache query port is 7002 # and a common scheme is to use 7102 for instance b, 7202 for instance c, etc. # # You *should* use 127.0.0.1 here in most cases CARBONLINK_HOSTS = ["127.0.0.1:7002:a", "127.0.0.1:7102:b", "127.0.0.1:7202:c"] CARBONLINK_TIMEOUT = 1.0 CARBONLINK_RETRY_DELAY = 15 # Seconds to blacklist a failed remote server # A "keyfunc" is a user-defined python function that is given a metric name # and returns a string that should be used when hashing the metric name. # This is important when your hashing has to respect certain metric groupings. # CARBONLINK_HASHING_KEYFUNC = "/opt/graphite/bin/keyfuncs.py:my_keyfunc" CARBONLINK_HASHING_KEYFUNC = None # Prefix set in carbon for the carbon specific metrics. Default in carbon is 'carbon' CARBON_METRIC_PREFIX='carbon' # The replication factor to use with consistent hashing # This should usually match the value configured in Carbon REPLICATION_FACTOR = 1 # How often should render.datalib.fetch() retry to get remote data MAX_FETCH_RETRIES = 2 ##################################### # Additional Django Settings # ##################################### # Uncomment the following line for direct access to Django settings such as # MIDDLEWARE_CLASSES or APPS #from graphite.app_settings import * -- You received this question notification because you are a member of graphite-dev, which is an answer contact for Graphite. _______________________________________________ Mailing list: https://launchpad.net/~graphite-dev Post to : graphite-dev@lists.launchpad.net Unsubscribe : https://launchpad.net/~graphite-dev More help : https://help.launchpad.net/ListHelp