Architecture Decision Record

Active theme: Light

← నిర్ణయ రికార్డు ఉదాహరణలు

టైమ్స్టాంప్ ఫార్మాట్

విషయసూచిక:

సారాంశం

సమస్య

మేము టైమ్స్టాంప్లను వాడటం ద్వారా, మా అన్ని వ్యవస్థలు, మూడవ పక్ష వ్యవస్థలలో బాగా పనిచేసే స్థిరమైన టైమ్స్టాంప్ ఫార్మాట్ను వాడటం ద్వారా విషయాలు ఎప్పుడు జరుగుతాయో ట్రాక్ చేయగలగాలి.

మేము వేర్వేరు టైమ్స్టాంప్ ఫార్మాట్లు ఉన్న వ్యవస్థలతో పరస్పర చర్య చేస్తాం:

  • JSON సందేశాలకు స్థానిక టైమ్స్టాంప్ ఫార్మాట్ లేదు, కాబట్టి టైమ్స్టాంప్ను స్ట్రింగ్గా ఎలా మార్చాలో, స్ట్రింగ్ను టైమ్స్టాంప్గా ఎలా మార్చాలో, అంటే సీరియలైజ్/డీసీరియలైజ్ ఎలా చేయాలో మనం ఎంచుకోవాలి.

  • కొన్ని అప్లికేషన్లు UTC సమయానికి బదులు స్థానిక సమయాన్ని వాడేలా సెట్ చేయబడ్డాయి. స్థానిక సమయం ఆధారంగా ఈవెంట్లను ప్రేరేపించే ప్రాజెక్టుల వంటి స్థానిక సమయానికి సర్దుబాటు కావాల్సిన ప్రాజెక్టులకు ఇది సౌకర్యవంతంగా ఉంటుంది.

  • కొన్ని వ్యవస్థలకు సెకన్లు, మిల్లీసెకన్లు, నానోసెకన్ల సమయ రిజల్యూషన్ వాడటం వంటి వేర్వేరు సమయ ఖచ్చితత్వ అవసరాలు, సామర్థ్యాలు ఉంటాయి. ఉదాహరణకు, Linux ఆపరేటింగ్ సిస్టమ్ date కమాండ్ డిఫాల్ట్ సమయ ఖచ్చితత్వంగా సెకన్లను వాడుతుంది, అయితే Nasdaq స్టాక్ ఎక్స్ఛేంజ్ డిఫాల్ట్ సమయ ఖచ్చితత్వంగా నానోసెకన్లను కోరుకుంటుంది.

నిర్ణయం

మేము నానోసెకన్ ఖచ్చితత్వంతో ISO 8601 ప్రామాణిక టైమ్స్టాంప్ ఫార్మాట్ను, ప్రత్యేకంగా "YYYY-MM-DDTHH:MM:SS.NNNNNNNNNZ"ను ఎంచుకుంటాం.

ఈ ఫార్మాట్ సంవత్సరం, నెల, రోజు, గంట, నిమిషం, సెకను, నానోసెకన్లు, జులూ టైమ్ జోన్ అంటే UTC, GMTని చూపుతుంది.

స్థితి

నిర్ణయించబడింది.

వివరాలు

ఊహలు

టైమ్స్టాంప్ నుండి స్ట్రింగ్కు మార్చడానికి (అంటే సీరియలైజ్), స్ట్రింగ్ నుండి టైమ్స్టాంప్కు మార్చడానికి (అంటే డీసీరియలైజ్) ఈ టైమ్స్టాంప్ టెక్స్ట్ స్ట్రింగ్లను మనం నిర్వహించాలి.

సాధారణంగా వాడటానికి సులభమైన, మార్చడానికి సులభమైన, ఒక వ్యక్తి చదవడానికి సులభమైన ఫార్మాట్ మాకు కావాలి.

అనలిటిక్స్ వ్యవస్థలు, డేటాబేస్ వ్యవస్థలు, ఆర్థిక వ్యవస్థల వంటి మేము నియంత్రించలేని విస్తృత శ్రేణి బాహ్య వ్యవస్థలతో అనుకూలత మాకు కావాలి.

పరిమితులు

కొన్ని వ్యవస్థలకు సమయ ఖచ్చితత్వ పరిమితులు ఉన్నాయి. ఉదాహరణకు, macOS ఆపరేటింగ్ సిస్టమ్ date కమాండ్ సెకన్లలో సమయ ఖచ్చితత్వాన్ని ప్రింట్ చేయగలదు, కానీ నానోసెకన్లలో కాదు.

వైఖరులు

మేము విస్తృత శ్రేణి ఎంపికలను పరిగణించాం:

  • Unix ఎపోక్, అంటే ఒకే పెరుగుతున్న సంఖ్య.

  • సంక్షిప్త టెక్స్ట్ ఫార్మాట్ "YYYYMMDDTHHMMSSNNNNNNNNN".

  • స్థానిక టైమ్ జోన్ వర్సెస్ UTC టైమ్ జోన్ వాడటం.

వాదన

సాధారణ వాడకానికి, ముడి వేగం/పరిమాణం కంటే మనుషులు చదవడానికి/రాయడానికి సులభంగా ఉండటానికి మేము విలువ ఇస్తాం.

సాధారణ వాడకానికి, యంత్ర వ్యవస్థలలో చక్కగా పనిచేసే, అలాగే నమూనా డేటా రాయడం, JSON అవుట్పుట్ చదవడం, లాగ్ ఫైల్ను grep చేయడం వంటి మాన్యువల్గా కూడా బాగా పనిచేసే ఫార్మాట్ మాకు కావాలి.

అధిక పనితీరు కంప్యూటింగ్ వంటి అసాధారణ వాడకానికి, మేము ఎంచుకునే ఏ టెక్స్ట్ ఫార్మాట్నైనా ప్రోగ్రామింగ్ భాష అంతర్నిర్మిత తేదీ ఆబ్జెక్ట్ రకం వంటి వేగవంతమైన ఫార్మాట్కు టెక్స్ట్ను మార్చడం ద్వారా ఆప్టిమైజ్ చేయాలనుకుంటామని ఆశిస్తున్నాం. కాబట్టి HPCకి టెక్స్ట్ ఫార్మాట్ ఎక్కువ ముఖ్యం కాదు.

పర్యవసానాలు

మా వివిధ టెక్స్ట్ వ్యవస్థలు, సమయ వ్యవస్థలు ఈ ఫార్మాట్పై కలుస్తాయి.

సంబంధితాలు

సంబంధిత నిర్ణయాలు

సమయ డెల్టాలను, అంటే వ్యవధులను ట్రాక్ చేయడానికి కూడా మేము వేగవంతమైన/సులభమైన మార్గాన్ని కోరుకోవచ్చు. Unix ఎపోక్ టైమ్స్టాంప్లతో ఇవి సులభం.

సంబంధిత అవసరాలు

Splunk, Sumo, ELK మొదలైన వాటికి వంటి నిర్దిష్ట రకం లాగింగ్ సందేశ స్టాంప్ కోసం సంబంధిత అవసరం ఉంటే, మేము మా నిర్ణయాన్ని సర్దుబాటు చేయాలనుకోవచ్చు.

సంబంధిత రచనలు

భాష ఫార్మాటర్లు, పార్సర్లు:

Rosetta Code ఉదాహరణలు:

SixArm ఉదాహరణలు:

సంబంధిత సూత్రాలు

సులభంగా వెనక్కి తీసుకోగలగడం. మనం Unix ఎపోక్ వంటి వేరే ఫార్మాట్కు చాలా సులభంగా మారవచ్చు.

అకాల ఆప్టిమైజేషన్ను వాయిదా వేయి. సాధారణ వాడకానికి, డాష్లు, కోలన్లను వాడే ఫార్మాట్ వంటి కొన్ని అదనపు అక్షరాల గురించి మేము పెద్దగా పట్టించుకోము.

గమనికలు

ఇక్కడ గమనికలు జోడించండి.