গ্রাফাইট সমস্ত ডেটা পয়েন্টের জন্য "কিছুই নয়" দেখায় যদিও আমি এটি ডেটা প্রেরণ করি


8

আমি পিনপেটের মাধ্যমে গ্রাফাইট ইনস্টল করেছি ( https://forge.puppetlabs.com/dwerder/ographicite ) nginx এবং PostgresSQL এর মাধ্যমে। আমি যখন এটি ম্যানুয়ালি ডেটা প্রেরণ করি, এটি মেট্রিক তৈরি করে তবে এর সমস্ত ডেটা পয়েন্টগুলি "কিছুই নয়" (ওরফে নাল)। আমি গ্রাফাইটের সাথে চালিত উদাহরণ -client.py চালানোর পরেও এটি ঘটে।

echo "jakub.test 42 $(date +%s)" | nc 0.0.0.0 2003 # Carbon listens at 2003
# A minute or so later:
$ whisper-fetch.py --pretty /opt/graphite/storage/whisper/jakub/test.wsp | head -n1
Sun May  4 12:19:00 2014    None
$ whisper-fetch.py --pretty /opt/graphite/storage/whisper/jakub/test.wsp | tail -n1
Mon May  5 12:09:00 2014    None
$ whisper-fetch.py --pretty /opt/graphite/storage/whisper/jakub/test.wsp | grep -v None | wc -l
0

এবং:

$ python /opt/graphite/examples/example-client.py 
# Wait until it sends two batches of data ...
$ whisper-fetch.py /opt/graphite/storage/whisper/system/loadavg_15min.wsp | grep -v None | wc -l
0

এটি এনগ্রিপ অনুসারে, বন্দরে পৌঁছে যাওয়া ডেটা [পরবর্তী প্রচেষ্টা থেকে] (লাইন 3):

####
T 127.0.0.1:34696 -> 127.0.0.1:2003 [AP]
  jakub.test  45 1399362193. 
####^Cexit
23 received, 0 dropped

এটি সম্পর্কিত অংশ /opt/graphite/conf/storage-schemas.conf:

[default]
pattern = .*
retentions = 1s:30m,1m:1d,5m:2y

কোন ধারণা কি ভুল? কার্বনের নিজস্ব মেট্রিক্স এবং ডেটা ইউআইতে প্রদর্শিত হয়। ধন্যবাদ!

পরিবেশ: উবুন্টু 13.10 সৌস, গ্রাফাইট 0.9.12 (পাইপের মাধ্যমে)।

PS: আমি এখানে আমার সমস্যা সমাধানের চেষ্টা সম্পর্কে লিখেছি - গ্রাফাইট মেট্রিকগুলি দেখায় তবে কোনও ডেটা নেই - সমস্যা সমাধান

আপডেট :

  1. ঝাঁকুনির ফাইলগুলিতে ডেটা পয়েন্টগুলি কেবল প্রতি 1 মিনিট অন্তর পুনরুদ্ধার করা হয় এমনকি যদি রিটেনশন নীতি একটি উচ্চতর নির্ভুলতা যেমন "1s" বা "10s" নির্দিষ্ট করে।
  2. ডেটা উপেক্ষা করার জন্য কার্যক্ষম: হয় xFilesFactor = 0.1(০.০ এর পরিবর্তে) সহ একত্রিতকরণ স্কিমা ব্যবহার করুন বা <সংখ্যা 1-49> এর মধ্যে পরিবর্তে 1 মিতে সর্বনিম্ন নির্ভুলতা সেট করুন। - গৃহীত উত্তর বা গ্রাফাইট উত্তরসমূহের নীচের মন্তব্যগুলি দেখুন। দস্তাবেজের মতে : " xFilesFactor0 এবং 1 এর মধ্যে একটি ভাসমান বিন্দু সংখ্যা হওয়া উচিত এবং এটি নির্ধারণ করে যে পূর্ববর্তী রিটেনশন স্তরের স্লটগুলির কোন ভগ্নাংশের নন-নাল মান থাকতে হবে। ডিফল্টটি 0.5 হয়। " সুতরাং মনে হয় যে 1 সেকেন্ডের নির্দিষ্ট নির্ভুলতা না রেখে, ডেটা এক মিনিটে একত্রিত হয়ে শেষ হয় না কারণ মিনিটের সময়কালে 50% এরও কম মান অ-নয়।

সমাধান

সুতরাং @ জ্লোরি আমাকে সমাধানের দিকে নিয়ে যান। এটি প্রমাণ করে যে তথ্যগুলি আসলে সেখানে রয়েছে তবে কিছুই মিলিত হয় না, কারণ দ্বিগুণ:

  1. ইউআই এবং ফিসফিস-ফ্যাচ উভয়ই ডেটা একত্রিত করে সর্বোচ্চ সুনির্দিষ্ট করে যা পুরো ক্যোয়ারির সময়কালকে বিস্তৃত করে, যা 24 ঘন্টার ডিফল্ট হয়। অর্থাত্‍ <1 ডি ধরে রাখার মতো কোনও কিছুই কখনও ইউআইতে প্রদর্শন করবে না বা আনতে হবে না যদি না আপনি একটি ছোট সময়কাল বেছে নেন। যেহেতু 1 সেকেন্ডের জন্য আমার ধরে রাখার সময়কাল 30 মিনিট ছিল, তাই উচ্চতর নির্ভুলতায় সংগ্রহ করা হচ্ছে কাঁচা তথ্যটি দেখার জন্য আমাকে <= শেষ 30 মিনিট সময় বেছে নিতে হবে।
  2. ডেটা একত্রিত করার সময় (আমার ক্ষেত্রে 1s থেকে 1 মিনিট পর্যন্ত), গ্রাফাইটের ডিফল্টরূপে পিরিয়ডের ডেটা পয়েন্টের 50% (xFilesFactor = 0.5) এর মান থাকতে হবে। যদি তা না হয় তবে এটি বিদ্যমান মানগুলিকে অগ্রাহ্য করবে এবং এটিকে কোনওটিতেই সংহত করবে। সুতরাং আমার ক্ষেত্রে আমাকে একত্রিত 1-মিনিটের মানটি দেখানোর জন্য এক মিনিটের মধ্যে কমপক্ষে 30 বার ডেটা প্রেরণ করতে হবে (60s = 1 মিনিটের 30% হ'ল)। তবে আমার অ্যাপ্লিকেশন কেবল প্রতি 10 সেকেন্ডে ডেটা প্রেরণ করে তাই আমার 60 টি সম্ভাব্য মানের মধ্যে 6 টি রয়েছে।

=> সমাধানটি হ'ল প্রথম যথার্থতাটি 1s থেকে 10s এ পরিবর্তন করা এবং যখন আমি কাঁচা ডেটা দেখতে চাই (বা ডিফল্টরূপে এটি দেখানোর জন্য এটির ধরে রাখা 24 ঘন্টা পর্যন্ত প্রসারিত করি) তখন একটি স্বল্প সময়ের নির্বাচন করা মনে রাখবেন।


গ্রাফাইট উত্তর প্রশ্ন নোট দিয়ে পূর্ণ ডেটাসেট? এই প্রসঙ্গে আকর্ষণীয় (শুধুমাত্র প্রতি 60s নালকে ডিফল্ট সংযোজনের উল্লেখ করা হয়েছে, কেবলমাত্র 24 ঘন্টা শেষ) এবং খ / সি এর সমস্যা সমাধানের জন্য এনগ্রিপের সুপারিশ।
জাকুব হলি

আমি গ্রাফাইট উত্তরগুলিতেও সাহায্যের জন্য জিজ্ঞাসা করেছি - উত্তর.লাঞ্চপ্যাড.এন.গ্রাফিট
সেকশন / 248242

আপনি লগগুলি পরীক্ষা করেছেন? যদি প্রাপ্ত মেট্রিকের সাথে সমস্যা থাকে (পরিবর্তে no n বা use r \ n ব্যবহার করুন না) আপনার কনসোল.লগ বা create.log এ কিছু দেখতে হবে। এই লগগুলি / অপ্ট / গ্রাফাইট / স্টোরেজ / লগ / কার্বন-ক্যাশে / কার্বন-ক্যাশে-এ / আপনি যদি ডিফল্ট ইনস্টল করার পথ ব্যবহার করেন তবে সংরক্ষণ করা হয়।
mattsn0w

হ্যাঁ, আমি লগগুলি চেক করেছি। আগ্রহের কিছুই ছিল না। কনসোল লগটিতে মূলত কেবল "[..] সার্ভারফ্যাক্টরি 7002 থেকে শুরু হয় [..] কারখানা <twisted.internet.protocol.ServerF কার্নি ইনস্ট্যান্স 0x1bc4248> এ শুরু হয়েছে" এবং এতে প্রত্যাশিত মেট্রিক তৈরির রেকর্ড রয়েছে তবে তথ্যটির কোনও উল্লেখ নেই - এফ। প্রাক্তন। (অন্য কোনও ডেটা-কম মেট্রিকের জন্য) "[..] ডাটাবেস ফাইল তৈরি করছে / ওপ্ট /গ্রাফিট / স্টোরেজ / হুইস্পার / রাইং / হ্যান্ডলিং -টাইম / পোস্ট / ১৫ মিনিটরেট.ওএসপি (সংরক্ষণাগার = [(1, 1800), (60, 1440 ), (300, 210240)] xff = 0.5 আগ্রাসন = গড়) "
জাকুব হল ý

@ জাকুবহোলý আপনি কি জ্লারির উত্তর আপডেট করতে পারবেন বা অন্য উত্তর পোস্ট করতে পারবেন কারণ প্রশ্নটিতে এখন একটি উত্তর রয়েছে
030

উত্তর:


8

সেই একই পুতুল মডিউলটি ব্যবহার করে আমি একই সমস্যার মুখোমুখি হয়েছি। কেন আমি ঠিক তা নিশ্চিত নই, তবে ডিফল্ট ধারণক্ষমতা নীতি পরিবর্তন করলে এটি ঠিক হয়ে যায়, যেমন

class { 'graphite':
  gr_storage_schemas => [
    {
      name       => 'carbon',
      pattern    => '^carbon\.',
      retentions => '1m:90d'
    },
    {
      name       => 'default',
      pattern    => '.*',
      retentions => '1m:14d'
    }
  ],
}

অনেক ধন্যবাদ! এই রহস্যময় পরিবর্তন সত্যিই সাহায্য করেছে। আকর্ষণীয় যে "1s: 30 মি, 1 মি: 1 ডি, 5 মি: 2 এ" থেকে "1 মি: 14 ডি" তে ধারণাকে পরিবর্তন করে এটি "স্থির" করে। আমি এটির সাথে আরও খেলতে চেষ্টা করব। 1s গ্রানুলারিটি নিয়ে কোনও সমস্যা হতে পারে?
জাকুব হলি

এটি সত্যিকার অর্থে পিরিয়ড নিয়ে সমস্যা বলে মনে হচ্ছে - যখন '1m:1d,5m:2yকাজ করে (ডেটা রেকর্ড করা হয়) 10s:30m,1m:1d,5m:2yতবে তা হয় না। আসলে, ডাব্লুএসএসপি ফাইল থেকে মনে হয় যে 10 দশকের টাইমস্ট্যাম্পগুলি থেকে গ্রানুলারিটি <1m উপেক্ষা করা হচ্ছে: ... কনফিগারেশনটি এখনও 1 মিনিটের বিরতিতে রয়েছে - "08:17:00, 08:18:00, ইত্যাদি" "
জাকুব হল ý

ঠিক আছে, সুতরাং সমস্যাটি একীকরণ নীতি এবং xFilesFactor, (ডিফল্ট) যা এখানে প্রয়োগ হয় গড় এবং xFilesFactor=0.5(দেখুন /opt/graphite/conf/storage-aggregation.conf) এর সাথে সম্পর্কিত। আমি যখন নামটি পরিবর্তন করে sumএবং 0.1পরিবর্তনের মাধ্যমে ডেটা সঞ্চয় করি (যদিও পয়েন্টটি এখনও 1 মিটার ফ্রিকের উপরে রয়েছে):echo -e "jakub.test.10s30m+1m1d+5m2y.count 42 $(date +%s)" | nc 0.0.0.0 2003
জাকব হল ý

আমি বিভিন্ন সাথে খেলেছি। aggreg। স্কিমাস, ডেটা রেকর্ড করা হয় (1 মিটার বিরতিতে) যখন আমি সেট করি xFilesFactor = 0.1, আগ্রাসন। পদ্ধতিটি গুরুত্বপূর্ণ নয় (কমপক্ষে গড়, সর্বশেষ, যোগফল)।
জাকুব হল ý

মতে এই , অ্যাগ্রিগেশন স্কিমের শুধুমাত্র একাধিক ধারণ নীতি খেলার মধ্যে আসা। যদি আমার কেবলমাত্র একটি ধারণার নীতি থাকে, এমনকি 10 সেকেন্ডের রেজোলিউশনে (যা আমি প্রায়শই ডেটা পাঠাচ্ছি), এটি প্রতিটি স্বতন্ত্র ডেটা পয়েন্ট সংগ্রহ করে। একাধিক ধরে রাখার নীতিমালা সহ, এটি ক্যোয়ারির সময়সীমার উপর ভিত্তি করে একটি বেছে নেয়, যা শেষ দিনটির সাথে ফিসফ্যাচ.পিপি ডিফল্ট, যা আমি মনে করি কেন আপনি প্রতি 1 মিনিটে কেবল ডেটা পয়েন্ট দেখছেন? তারা এখনও সম্মিলিত মানের পরিবর্তে কেন কিছুই দেখায় না তা এখনও নিশ্চিত নয়।
jlawrie

1

গ্রাফাইট ডেটা শিথিল করবে এমন অনেকগুলি উপায় রয়েছে, এজন্যই আমি সত্যিই এটি ব্যবহার না করার চেষ্টা করি try আমাকে একটি সাধারণ সাথে শুরু করতে দাও - আপনার অ্যাপ্লিকেশনটি সংযুক্ত করার চেষ্টা করুন, একটি সেকেন্ড অপেক্ষা করুন (আক্ষরিকভাবে এক সেকেন্ড) এবং তারপরে টাইমস্ট্যাম্পড ডেটা আউটপুট করুন। আমি অনেক পরিস্থিতিতে খুঁজে পেয়েছি এটি সঠিক সমস্যাটি ঠিক করবে। আর একটি জিনিস যা আপনার চেষ্টা করা উচিত তা হ'ল ফ্রিকোয়েন্সিতে ডেটা জমা দেওয়া যা গ্রাফাইট ডেটা লক করে এমন ফ্রিকোয়েন্সি থেকে অনেক বেশি। আমি আরও কিছুটা .ুকবো। আর একটি ঘন ঘন ভুল হ'ল ফিসফিসার-সাইজ.পি.পি ইউটিলিটিটি ব্যবহার করে যা সত্যই আমার পক্ষে কার্যকর হয় নি। যদি আপনার ডেটা এখনও গুরুত্বপূর্ণ না হয়ে থাকে তবে কেবল হুইস্পার ফাইলগুলি মুছুন এবং তাদের নতুন ধরে রাখার সেটিংস দিয়ে তৈরি হতে দিন।

গ্রাফাইটের স্টোরেজ ফাইলগুলি, ফিসফিস ফাইলগুলি একটি মান এবং একটি সময় (যেমন আপনি প্রোগ্রামটি সরবরাহ করেছিলেন) দিয়ে ডেটা সংরক্ষণ করার পরিবর্তে এটি স্লটগুলির একটি সিরিজ হিসাবে সংরক্ষণ করে যা মানটি সংরক্ষণ করে। প্রোগ্রামটি তখন চেষ্টা করে ধরে রাখুন ডেটা ফাইল ব্যবহার করে স্লট কোন সময়ের সাথে সামঞ্জস্য করে। যদি এটি এমন কোনও ডেটা পায় যা ঠিক কোনও স্লটে ফিট করে না, তবে আমি মনে করিকী হয় তা ধরে রাখা ফাইল হিসাবে একই ডিরেক্টরিতে থাকা অন্য কোনও ফাইলের উপর নির্ভর করে গড়ে গড়ে, মিনিট বা সর্বোচ্চ ব্যবহার করে max আমি খুঁজে পেয়েছি যে সমস্ত কিছু গোলমাল করা থেকে রক্ষা করার সর্বোত্তম উপায় হ'ল একটি ফ্রিকোয়েন্সিতে ডেটা জমা দেওয়া যা গ্রাফাইটের ডেটা সংরক্ষণের ফ্রিকোয়েন্সি থেকে অনেক বেশি। এটি সত্যিই অত্যন্ত জটিল হয়ে ওঠে - কেবল গ্রাফাইটের জন্য ধরে রাখার সময়সীমা নেই, এবং পয়েন্টগুলি পূরণ করার জন্য গড় আলগোরিদিমগুলি (আমার মনে হয়), তবে এই মানগুলি হুইস্পার ফাইলগুলিতে প্রয়োগ করা হয়। এগুলি না মিললে খুব অদ্ভুত জিনিসগুলি ঘটবে, সুতরাং আপনার কনফিগারটি কাজ না করা পর্যন্ত আমি বারবার আপনার ফিস ফিস ফাইলগুলি মুছে ফেলার এবং গ্রাফাইটগুলিকে পুনরায় তৈরি করার পরামর্শ দেব।

এই প্রোগ্রামটি আমাকে মোটামুটি বগী অভিনয় হিসাবে সত্যই আঘাত করেছে, সুতরাং আপনি যদি এরকম কিছু মুখোমুখি হন তবে এটি আপনার ভুল বলে মনে করবেন না।


আপনাকে ধন্যবাদ, আমি অনুমান করি যে ডেটা পুনরুদ্ধার এবং একত্রিতকরণ কীভাবে কাজ করে সে সম্পর্কে আমার আরও কিছু করা উচিত, সম্ভবত এটি সমস্যাটির কারণ। তবে আমি মনে করি যে " গ্রাফাইট যে পরিমাণ ফ্রিকোয়েন্সি ডেটা সংরক্ষণ করছিল তার চেয়ে অনেক বেশি ফ্রিকোয়েন্সিতে ডেটা জমা দিন " একটি সাবঅপটিমাল সমাধান যা প্রতিটি গ্রাফাইটের সময়কালে প্রাপ্ত শেষ ডাটা পয়েন্টটি রেকর্ড করা হয়, অন্যরা উপেক্ষা করে - তাই এফ.এক্স । statsD ফ্লাশ সময়কাল = গ্রাফাইট সময়কাল
জাকুব হলি

1
বিটিডাব্লু, গ্রাফাইট / কার্বন "হারানো" ডেটা কার্বন সেটিংসের সাথে সম্পর্কিত হতে পারে যেমন MAX_UPDATES_PER_SECOND = 500, MAX_CREATES_PER_MINUTE = 50 (আমার ধারণা সীমা ছাড়িয়ে ডেটা পয়েন্ট / মেট্রিকগুলি বাদ পড়ে)।
জাকুব হলি

দেখে মনে হচ্ছে আমি ভুল ছিলাম, ডকুমেন্টেশন - যদি আমি এটি সঠিকভাবে ব্যাখ্যা করি - বলছে ডিস্ক অ্যাক্সেসের উপরে থাকা সেটিংস কিন্তু ডেটা / ম্যাট্রিকগুলি এখনও মেমরিতে ধারণ করে (যদিও আমি সত্যিই এটি প্রথম যাচাই করতে চাই)।
জাকুব হল

এইগুলির মধ্যে কয়েকটি স্পষ্টভাবে সেই অ্যাপ্লিকেশনটির সাথে কিছু সমস্যা ব্যাখ্যা করতে পারে।
কিছু লিনাক্স Nerd
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.